harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gshiman...@apache.org
Subject svn commit: r587466 - /harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp
Date Tue, 23 Oct 2007 12:03:53 GMT
Author: gshimansky
Date: Tue Oct 23 05:03:53 2007
New Revision: 587466

URL: http://svn.apache.org/viewvc?rev=587466&view=rev
Log:
Fixed bug HARMONY-4993
[drlvm][jvmti][regression] EUT v3.3 testStepping failed on r586707

When method is not yet resolved there is no way to find out what
invokevirtual calls. So nothing should be done until method is compiled


Modified:
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp?rev=587466&r1=587465&r2=587466&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_step.cpp Tue Oct 23 05:03:53 2007
@@ -541,9 +541,15 @@
             // Call through a register, it has to point to the address of a compiled method
             NativeCodePtr ip = disasm->get_target_address_from_context(&regs);
             CodeChunkInfo *cci = vm_env->vm_methods->find(ip);
-            assert(cci);
-            method = cci->get_method();
-            assert(method->get_state() == Method::ST_Compiled);
+            if (NULL != cci)
+            {
+                // Compiled method, set bytecode in it
+                method = cci->get_method();
+                assert(method->get_state() == Method::ST_Compiled);
+            }
+            else
+                // Method is not compiled, nothing to do
+                method = NULL;
         }
     }
     else if (bytecode == OPCODE_INVOKEINTERFACE)
@@ -584,7 +590,8 @@
     // The determined method is the one which is called by
     // invokevirtual or invokeinterface bytecodes. It should be
     // started to be single stepped from the beginning
-    jvmti_set_single_step_breakpoints_for_method(ti, jvmti_thread, method);
+    if (NULL != method)
+        jvmti_set_single_step_breakpoints_for_method(ti, jvmti_thread, method);
 #else
     NOT_IMPLEMENTED;
 #endif



Mime
View raw message