equal
deleted
inserted
replaced
215 Handle return_value; |
215 Handle return_value; |
216 if (save_oop_result) { |
216 if (save_oop_result) { |
217 // Reallocation may trigger GC. If deoptimization happened on return from |
217 // Reallocation may trigger GC. If deoptimization happened on return from |
218 // call which returns oop we need to save it since it is not in oopmap. |
218 // call which returns oop we need to save it since it is not in oopmap. |
219 oop result = deoptee.saved_oop_result(&map); |
219 oop result = deoptee.saved_oop_result(&map); |
220 assert(result == NULL || result->is_oop(), "must be oop"); |
220 assert(oopDesc::is_oop_or_null(result), "must be oop"); |
221 return_value = Handle(thread, result); |
221 return_value = Handle(thread, result); |
222 assert(Universe::heap()->is_in_or_null(result), "must be heap pointer"); |
222 assert(Universe::heap()->is_in_or_null(result), "must be heap pointer"); |
223 if (TraceDeoptimization) { |
223 if (TraceDeoptimization) { |
224 ttyLocker ttyl; |
224 ttyLocker ttyl; |
225 tty->print_cr("SAVED OOP RESULT " INTPTR_FORMAT " in thread " INTPTR_FORMAT, p2i(result), p2i(thread)); |
225 tty->print_cr("SAVED OOP RESULT " INTPTR_FORMAT " in thread " INTPTR_FORMAT, p2i(result), p2i(thread)); |