Commit af91f02d by Keith Seitz Committed by Keith Seitz

jvmti.cc (THREAD_DEFAULT_TO_CURRENT): Clarify parameter list.

        * 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.

From-SVN: r117064
parent d63e1389
2006-09-19 Keith Seitz <keiths@redhat.com>
* 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.
2006-09-19 Mark Wielaard <mark@klomp.org> 2006-09-19 Mark Wielaard <mark@klomp.org>
Fixes bug #29137 Fixes bug #29137
......
...@@ -56,26 +56,26 @@ static java::lang::Object *_envListLock = NULL; ...@@ -56,26 +56,26 @@ static java::lang::Object *_envListLock = NULL;
// Some commonly-used checks // Some commonly-used checks
#define THREAD_DEFAULT_TO_CURRENT(jthread) \ #define THREAD_DEFAULT_TO_CURRENT(Ajthread) \
do \ do \
{ \ { \
if (jthread == NULL) \ if (Ajthread == NULL) \
jthread = java::lang::Thread::currentThread (); \ Ajthread = java::lang::Thread::currentThread (); \
} \ } \
while (0) while (0)
#define THREAD_CHECK_VALID(jthread) \ #define THREAD_CHECK_VALID(Athread) \
do \ do \
{ \ { \
if (!java::lang::Thread::class$.isAssignableFrom (&(jthread->class$))) \ if (!java::lang::Thread::class$.isAssignableFrom (&(Athread->class$))) \
return JVMTI_ERROR_INVALID_THREAD; \ return JVMTI_ERROR_INVALID_THREAD; \
} \ } \
while (0) while (0)
#define THREAD_CHECK_IS_ALIVE(thread) \ #define THREAD_CHECK_IS_ALIVE(Athread) \
do \ do \
{ \ { \
if (!thread->isAlive ()) \ if (!Athread->isAlive ()) \
return JVMTI_ERROR_THREAD_NOT_ALIVE; \ return JVMTI_ERROR_THREAD_NOT_ALIVE; \
} \ } \
while (0) while (0)
...@@ -106,9 +106,9 @@ _Jv_JVMTI_SuspendThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread) ...@@ -106,9 +106,9 @@ _Jv_JVMTI_SuspendThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread)
using namespace java::lang; using namespace java::lang;
THREAD_DEFAULT_TO_CURRENT (thread); THREAD_DEFAULT_TO_CURRENT (thread);
THREAD_CHECK_VALID (thread);
Thread *t = reinterpret_cast<Thread *> (thread); Thread *t = reinterpret_cast<Thread *> (thread);
THREAD_CHECK_VALID (t);
THREAD_CHECK_IS_ALIVE (t); THREAD_CHECK_IS_ALIVE (t);
_Jv_Thread_t *data = _Jv_ThreadGetData (t); _Jv_Thread_t *data = _Jv_ThreadGetData (t);
...@@ -122,9 +122,9 @@ _Jv_JVMTI_ResumeThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread) ...@@ -122,9 +122,9 @@ _Jv_JVMTI_ResumeThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread)
using namespace java::lang; using namespace java::lang;
THREAD_DEFAULT_TO_CURRENT (thread); THREAD_DEFAULT_TO_CURRENT (thread);
THREAD_CHECK_VALID (thread);
Thread *t = reinterpret_cast<Thread *> (thread); Thread *t = reinterpret_cast<Thread *> (thread);
THREAD_CHECK_VALID (t);
THREAD_CHECK_IS_ALIVE (t); THREAD_CHECK_IS_ALIVE (t);
_Jv_Thread_t *data = _Jv_ThreadGetData (t); _Jv_Thread_t *data = _Jv_ThreadGetData (t);
...@@ -141,8 +141,9 @@ _Jv_JVMTI_InterruptThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread) ...@@ -141,8 +141,9 @@ _Jv_JVMTI_InterruptThread (MAYBE_UNUSED jvmtiEnv *env, jthread thread)
// FIXME: capability handling? 'can_signal_thread' // FIXME: capability handling? 'can_signal_thread'
if (thread == NULL) if (thread == NULL)
return JVMTI_ERROR_INVALID_THREAD; return JVMTI_ERROR_INVALID_THREAD;
THREAD_CHECK_VALID (thread);
Thread *real_thread = reinterpret_cast<Thread *> (thread); Thread *real_thread = reinterpret_cast<Thread *> (thread);
THREAD_CHECK_VALID (real_thread);
THREAD_CHECK_IS_ALIVE (real_thread); THREAD_CHECK_IS_ALIVE (real_thread);
real_thread->interrupt(); real_thread->interrupt();
return JVMTI_ERROR_NONE; return JVMTI_ERROR_NONE;
...@@ -487,8 +488,9 @@ _Jv_JVMTI_DisposeEnvironment (jvmtiEnv *env) ...@@ -487,8 +488,9 @@ _Jv_JVMTI_DisposeEnvironment (jvmtiEnv *env)
JvSynchronize dummy (_envListLock); JvSynchronize dummy (_envListLock);
if (_jvmtiEnvironments->env == env) if (_jvmtiEnvironments->env == env)
{ {
struct jvmti_env_list *next = _jvmtiEnvironments->next;
_Jv_Free (_jvmtiEnvironments); _Jv_Free (_jvmtiEnvironments);
_jvmtiEnvironments = _jvmtiEnvironments->next; _jvmtiEnvironments = next;
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment