diff src/share/vm/runtime/vframeArray.cpp @ 8328:6b6cbd8b8914

Support deoptimizing before the entry to a synchronized method.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sun, 17 Mar 2013 21:20:39 +0100
parents b8f261ba79c6
children 9f9aaa65294e
line wrap: on
line diff
--- a/src/share/vm/runtime/vframeArray.cpp	Sun Mar 17 21:14:35 2013 +0100
+++ b/src/share/vm/runtime/vframeArray.cpp	Sun Mar 17 21:20:39 2013 +0100
@@ -286,7 +286,7 @@
 
   _frame.patch_pc(thread, pc);
 
-  assert (!method()->is_synchronized() || locks > 0, "synchronized methods must have monitors");
+  assert (!method()->is_synchronized() || locks > 0 || raw_bci() == SynchronizationEntryBCI, "synchronized methods must have monitors");
 
   BasicObjectLock* top = iframe()->interpreter_frame_monitor_begin();
   for (int index = 0; index < locks; index++) {