harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ge...@apache.org
Subject svn commit: r449043 - /incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp
Date Fri, 22 Sep 2006 18:32:46 GMT
Author: geirm
Date: Fri Sep 22 11:32:45 2006
New Revision: 449043

URL: http://svn.apache.org/viewvc?view=rev&rev=449043
Log:
HARMONY-1526

Access violation error during NotifyFramePop event exit. VM tries to call variable using zero-pointer

(jvmti_event.cpp line 726).

FramePop has the same problem on the same place. 

Tested smoke, c-unit, some kernel on Ubuntu 6


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

Modified: incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp?view=diff&rev=449043&r1=449042&r2=449043
==============================================================================
--- incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp (original)
+++ incubator/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp Fri Sep 22
11:32:45 2006
@@ -717,23 +717,24 @@
 
     VM_thread *curr_thread = p_TLS_vmthread;
     jvmti_frame_pop_listener *fpl = curr_thread->frame_pop_listener;
-    jvmti_frame_pop_listener **prev_fpl = &curr_thread->frame_pop_listener;
     jint skip = 0;
     jint depth = get_thread_stack_depth(curr_thread, &skip);
 
     while (fpl)
     {
+        jvmti_frame_pop_listener *next_fpl = fpl->next;
         if (fpl->depth == depth + skip)
         {
             jvmti_process_frame_pop_event(
                 reinterpret_cast<jvmtiEnv *>(fpl->env),
                 method,
                 was_popped_by_exception);
-            *prev_fpl = fpl->next;
+            if( fpl == curr_thread->frame_pop_listener ) {
+                curr_thread->frame_pop_listener = fpl->next;
+            }
             STD_FREE(fpl);
         }
-        prev_fpl = &fpl->next;
-        fpl = fpl->next;
+        fpl = next_fpl;
     }
 
     tmn_suspend_disable();



Mime
View raw message