hotspot/src/share/vm/runtime/deoptimization.cpp
changeset 26436 f565c16d5513
parent 25920 6f9fa66be5df
child 27408 9a8090dd6ec3
--- a/hotspot/src/share/vm/runtime/deoptimization.cpp	Fri Aug 29 16:32:29 2014 +0200
+++ b/hotspot/src/share/vm/runtime/deoptimization.cpp	Wed Aug 27 17:37:18 2014 +0200
@@ -191,7 +191,8 @@
       // It is not guaranteed that we can get such information here only
       // by analyzing bytecode in deoptimized frames. This is why this flag
       // is set during method compilation (see Compile::Process_OopMap_Node()).
-      bool save_oop_result = chunk->at(0)->scope()->return_oop();
+      // If the previous frame was popped, we don't have a result.
+      bool save_oop_result = chunk->at(0)->scope()->return_oop() && !thread->popframe_forcing_deopt_reexecution();
       Handle return_value;
       if (save_oop_result) {
         // Reallocation may trigger GC. If deoptimization happened on return from