You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2007/04/25 16:41:31 UTC
svn commit: r532370 - in /harmony/enhanced/drlvm/trunk/vm/vmcore/src:
jvmti/jvmti_event.cpp jvmti/jvmti_stack.cpp object/object_handles.cpp
Author: gshimansky
Date: Wed Apr 25 07:41:29 2007
New Revision: 532370
URL: http://svn.apache.org/viewvc?view=rev&rev=532370
Log:
Applied HARMONY-3532 [drlvm][jvmti] wrong METHOD_EXIT events are generated before VM_DEATH
Modified:
harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp
harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_stack.cpp
harmony/enhanced/drlvm/trunk/vm/vmcore/src/object/object_handles.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp?view=diff&rev=532370&r1=532369&r2=532370
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_event.cpp Wed Apr 25 07:41:29 2007
@@ -1785,10 +1785,14 @@
return;
JNIEnv *jni_env = p_TLS_vmthread->jni_env;
- tmn_suspend_disable();
- ObjectHandle hLoader = oh_convert_to_local_handle((ManagedObject*)loader->GetLoader());
- if( !(hLoader->object) ) hLoader = NULL;
- tmn_suspend_enable();
+
+ ObjectHandle hLoader = NULL;
+ if (! loader->IsBootstrap()) {
+ tmn_suspend_disable();
+ hLoader = oh_convert_to_local_handle((ManagedObject*)loader->GetLoader());
+ tmn_suspend_enable();
+ }
+
jint input_len = classlen;
jint output_len = 0;
unsigned char* input_class = classbytes;
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_stack.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_stack.cpp?view=diff&rev=532370&r1=532369&r2=532370
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_stack.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/jvmti/jvmti_stack.cpp Wed Apr 25 07:41:29 2007
@@ -41,16 +41,10 @@
#define jvmti_test_jenv (p_TLS_vmthread->jni_env)
jthread getCurrentThread() {
- tmn_suspend_disable();
- ObjectHandle hThread = oh_allocate_local_handle();
- jthread thread = jthread_self();
- if(thread) {
- hThread->object = (Java_java_lang_Thread *)thread->object;
- } else {
- hThread->object = NULL;
- }
- tmn_suspend_enable();
- return (jthread) hThread;
+ jthread current_thread = jthread_self();
+ assert(current_thread);
+
+ return oh_copy_to_local_handle(current_thread);
}
jint get_thread_stack_depth(VM_thread *thread, jint* pskip)
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/object/object_handles.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/object/object_handles.cpp?view=diff&rev=532370&r1=532369&r2=532370
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/object/object_handles.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/object/object_handles.cpp Wed Apr 25 07:41:29 2007
@@ -392,6 +392,7 @@
ObjectHandle oh_convert_to_local_handle(ManagedObject* pointer) {
assert(!hythread_is_suspend_enabled());
+ assert(pointer);
ObjectHandle jobj = oh_allocate_local_handle();
TRACE2("oh", "oh_convert_to_local_handle() pointer = " << pointer << ", handle = " << jobj);
jobj->object = pointer;
@@ -401,6 +402,8 @@
ObjectHandle oh_copy_to_local_handle(ObjectHandle oh) {
tmn_suspend_disable();
+ assert(oh);
+ assert(oh->object);
ObjectHandle jobj = oh_allocate_local_handle();
TRACE2("oh", "oh_copy_to_local_handle() oh = " << oh << ", handle = " << jobj);
jobj->object = oh->object;