diff options
author | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-09-19 23:12:17 +0000 |
---|---|---|
committer | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-09-19 23:12:17 +0000 |
commit | 308909af5be9623f8d17c47420c5b642aa85524a (patch) | |
tree | a572ed9215f45a6faf0994f02ec9c2aa1d4f4411 /libjava/jvmti.cc | |
parent | 1b575dc71d765379aa36d4de406c8da4b17c3a5c (diff) | |
download | ppe42-gcc-308909af5be9623f8d17c47420c5b642aa85524a.tar.gz ppe42-gcc-308909af5be9623f8d17c47420c5b642aa85524a.zip |
* jvmti.cc (THREAD_DEFAULT_TO_CURRENT): Clarify parameter list.
(THREAD_CHECK_VALID): Likewise.
(THREAD_CHECK_ALIVE): Likewise.
(_Jv_JVMTI_SuspendThread): Call THREAD_CHECK_VALID on a Thread not
jthread.
(_Jv_JVMTI_ResumeThread): Likewise.
(_Jv_JVMTI_InterruptThread): Likewise.
(_Jv_JVMTI_DisposeEnvironment): Probably unwise to dereference an object
that was just freed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117064 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/jvmti.cc')
-rw-r--r-- | libjava/jvmti.cc | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/libjava/jvmti.cc b/libjava/jvmti.cc index 37daa36dd45..a522374d7e2 100644 --- a/libjava/jvmti.cc +++ b/libjava/jvmti.cc @@ -56,26 +56,26 @@ static java::lang::Object *_envListLock = NULL; // Some commonly-used checks -#define THREAD_DEFAULT_TO_CURRENT(jthread) \ +#define THREAD_DEFAULT_TO_CURRENT(Ajthread) \ do \ { \ - if (jthread == NULL) \ - jthread = java::lang::Thread::currentThread (); \ + if (Ajthread == NULL) \ + Ajthread = java::lang::Thread::currentThread (); \ } \ while (0) -#define THREAD_CHECK_VALID(jthread) \ +#define THREAD_CHECK_VALID(Athread) \ do \ { \ - if (!java::lang::Thread::class$.isAssignableFrom (&(jthread->class$))) \ + if (!java::lang::Thread::class$.isAssignableFrom (&(Athread->class$))) \ return JVMTI_ERROR_INVALID_THREAD; \ } \ while (0) -#define THREAD_CHECK_IS_ALIVE(thread) \ +#define THREAD_CHECK_IS_ALIVE(Athread) \ do \ { \ - if (!thread->isAlive ()) \ + if (!Athread->isAlive ()) \ return JVMTI_ERROR_THREAD_NOT_ALIVE; \ } \ while (0) @@ -106,9 +106,9 @@ _Jv_JVMTI_SuspendThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread) using namespace java::lang; THREAD_DEFAULT_TO_CURRENT (thread); - THREAD_CHECK_VALID (thread); - + Thread *t = reinterpret_cast<Thread *> (thread); + THREAD_CHECK_VALID (t); THREAD_CHECK_IS_ALIVE (t); _Jv_Thread_t *data = _Jv_ThreadGetData (t); @@ -122,9 +122,9 @@ _Jv_JVMTI_ResumeThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread) using namespace java::lang; THREAD_DEFAULT_TO_CURRENT (thread); - THREAD_CHECK_VALID (thread); Thread *t = reinterpret_cast<Thread *> (thread); + THREAD_CHECK_VALID (t); THREAD_CHECK_IS_ALIVE (t); _Jv_Thread_t *data = _Jv_ThreadGetData (t); @@ -141,8 +141,9 @@ _Jv_JVMTI_InterruptThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread) // FIXME: capability handling? 'can_signal_thread' if (thread == NULL) return JVMTI_ERROR_INVALID_THREAD; - THREAD_CHECK_VALID (thread); + Thread *real_thread = reinterpret_cast<Thread *> (thread); + THREAD_CHECK_VALID (real_thread); THREAD_CHECK_IS_ALIVE (real_thread); real_thread->interrupt(); return JVMTI_ERROR_NONE; @@ -487,8 +488,9 @@ _Jv_JVMTI_DisposeEnvironment (jvmtiEnv *env) JvSynchronize dummy (_envListLock); if (_jvmtiEnvironments->env == env) { + struct jvmti_env_list *next = _jvmtiEnvironments->next; _Jv_Free (_jvmtiEnvironments); - _jvmtiEnvironments = _jvmtiEnvironments->next; + _jvmtiEnvironments = next; } else { |