Mercurial > hg > graal-jvmci-8
comparison src/share/vm/prims/jvmtiEnv.cpp @ 1142:4ce7240d622c
6914300: ciEnv should export all well known classes
Reviewed-by: kvn, twisti
author | never |
---|---|
date | Wed, 06 Jan 2010 14:22:39 -0800 |
parents | ea20d7ce26b0 |
children | 9b9c1ee9b3f6 |
comparison
equal
deleted
inserted
replaced
1140:1f6d42899c3a | 1142:4ce7240d622c |
---|---|
131 | 131 |
132 oop thread_oop = JNIHandles::resolve_external_guard(thread); | 132 oop thread_oop = JNIHandles::resolve_external_guard(thread); |
133 if (thread_oop == NULL) { | 133 if (thread_oop == NULL) { |
134 return JVMTI_ERROR_INVALID_THREAD; | 134 return JVMTI_ERROR_INVALID_THREAD; |
135 } | 135 } |
136 if (!thread_oop->is_a(SystemDictionary::thread_klass())) { | 136 if (!thread_oop->is_a(SystemDictionary::Thread_klass())) { |
137 return JVMTI_ERROR_INVALID_THREAD; | 137 return JVMTI_ERROR_INVALID_THREAD; |
138 } | 138 } |
139 JavaThread* java_thread = java_lang_Thread::thread(thread_oop); | 139 JavaThread* java_thread = java_lang_Thread::thread(thread_oop); |
140 if (java_thread == NULL) { | 140 if (java_thread == NULL) { |
141 return JVMTI_ERROR_THREAD_NOT_ALIVE; | 141 return JVMTI_ERROR_THREAD_NOT_ALIVE; |
197 jclass jcls = classes[index]; | 197 jclass jcls = classes[index]; |
198 oop k_mirror = JNIHandles::resolve_external_guard(jcls); | 198 oop k_mirror = JNIHandles::resolve_external_guard(jcls); |
199 if (k_mirror == NULL) { | 199 if (k_mirror == NULL) { |
200 return JVMTI_ERROR_INVALID_CLASS; | 200 return JVMTI_ERROR_INVALID_CLASS; |
201 } | 201 } |
202 if (!k_mirror->is_a(SystemDictionary::class_klass())) { | 202 if (!k_mirror->is_a(SystemDictionary::Class_klass())) { |
203 return JVMTI_ERROR_INVALID_CLASS; | 203 return JVMTI_ERROR_INVALID_CLASS; |
204 } | 204 } |
205 | 205 |
206 if (java_lang_Class::is_primitive(k_mirror)) { | 206 if (java_lang_Class::is_primitive(k_mirror)) { |
207 return JVMTI_ERROR_UNMODIFIABLE_CLASS; | 207 return JVMTI_ERROR_UNMODIFIABLE_CLASS; |
264 jvmtiError | 264 jvmtiError |
265 JvmtiEnv::GetObjectSize(jobject object, jlong* size_ptr) { | 265 JvmtiEnv::GetObjectSize(jobject object, jlong* size_ptr) { |
266 oop mirror = JNIHandles::resolve_external_guard(object); | 266 oop mirror = JNIHandles::resolve_external_guard(object); |
267 NULL_CHECK(mirror, JVMTI_ERROR_INVALID_OBJECT); | 267 NULL_CHECK(mirror, JVMTI_ERROR_INVALID_OBJECT); |
268 | 268 |
269 if (mirror->klass() == SystemDictionary::class_klass()) { | 269 if (mirror->klass() == SystemDictionary::Class_klass()) { |
270 if (!java_lang_Class::is_primitive(mirror)) { | 270 if (!java_lang_Class::is_primitive(mirror)) { |
271 mirror = java_lang_Class::as_klassOop(mirror); | 271 mirror = java_lang_Class::as_klassOop(mirror); |
272 assert(mirror != NULL, "class for non-primitive mirror must exist"); | 272 assert(mirror != NULL, "class for non-primitive mirror must exist"); |
273 } | 273 } |
274 } | 274 } |
325 if (event_thread != NULL) { | 325 if (event_thread != NULL) { |
326 oop thread_oop = JNIHandles::resolve_external_guard(event_thread); | 326 oop thread_oop = JNIHandles::resolve_external_guard(event_thread); |
327 if (thread_oop == NULL) { | 327 if (thread_oop == NULL) { |
328 return JVMTI_ERROR_INVALID_THREAD; | 328 return JVMTI_ERROR_INVALID_THREAD; |
329 } | 329 } |
330 if (!thread_oop->is_a(SystemDictionary::thread_klass())) { | 330 if (!thread_oop->is_a(SystemDictionary::Thread_klass())) { |
331 return JVMTI_ERROR_INVALID_THREAD; | 331 return JVMTI_ERROR_INVALID_THREAD; |
332 } | 332 } |
333 java_thread = java_lang_Thread::thread(thread_oop); | 333 java_thread = java_lang_Thread::thread(thread_oop); |
334 if (java_thread == NULL) { | 334 if (java_thread == NULL) { |
335 return JVMTI_ERROR_THREAD_NOT_ALIVE; | 335 return JVMTI_ERROR_THREAD_NOT_ALIVE; |
618 thread_oop = JavaThread::current()->threadObj(); | 618 thread_oop = JavaThread::current()->threadObj(); |
619 } else { | 619 } else { |
620 thread_oop = JNIHandles::resolve_external_guard(thread); | 620 thread_oop = JNIHandles::resolve_external_guard(thread); |
621 } | 621 } |
622 | 622 |
623 if (thread_oop == NULL || !thread_oop->is_a(SystemDictionary::thread_klass())) { | 623 if (thread_oop == NULL || !thread_oop->is_a(SystemDictionary::Thread_klass())) { |
624 return JVMTI_ERROR_INVALID_THREAD; | 624 return JVMTI_ERROR_INVALID_THREAD; |
625 } | 625 } |
626 | 626 |
627 // get most state bits | 627 // get most state bits |
628 state = (jint)java_lang_Thread::get_thread_status(thread_oop); | 628 state = (jint)java_lang_Thread::get_thread_status(thread_oop); |
856 // Threads_lock NOT held | 856 // Threads_lock NOT held |
857 // thread - NOT pre-checked | 857 // thread - NOT pre-checked |
858 jvmtiError | 858 jvmtiError |
859 JvmtiEnv::InterruptThread(jthread thread) { | 859 JvmtiEnv::InterruptThread(jthread thread) { |
860 oop thread_oop = JNIHandles::resolve_external_guard(thread); | 860 oop thread_oop = JNIHandles::resolve_external_guard(thread); |
861 if (thread_oop == NULL || !thread_oop->is_a(SystemDictionary::thread_klass())) | 861 if (thread_oop == NULL || !thread_oop->is_a(SystemDictionary::Thread_klass())) |
862 return JVMTI_ERROR_INVALID_THREAD; | 862 return JVMTI_ERROR_INVALID_THREAD; |
863 | 863 |
864 JavaThread* current_thread = JavaThread::current(); | 864 JavaThread* current_thread = JavaThread::current(); |
865 | 865 |
866 // Todo: this is a duplicate of JVM_Interrupt; share code in future | 866 // Todo: this is a duplicate of JVM_Interrupt; share code in future |
893 if (thread == NULL) { | 893 if (thread == NULL) { |
894 thread_oop = current_thread->threadObj(); | 894 thread_oop = current_thread->threadObj(); |
895 } else { | 895 } else { |
896 thread_oop = JNIHandles::resolve_external_guard(thread); | 896 thread_oop = JNIHandles::resolve_external_guard(thread); |
897 } | 897 } |
898 if (thread_oop == NULL || !thread_oop->is_a(SystemDictionary::thread_klass())) | 898 if (thread_oop == NULL || !thread_oop->is_a(SystemDictionary::Thread_klass())) |
899 return JVMTI_ERROR_INVALID_THREAD; | 899 return JVMTI_ERROR_INVALID_THREAD; |
900 | 900 |
901 Handle thread_obj(current_thread, thread_oop); | 901 Handle thread_obj(current_thread, thread_oop); |
902 typeArrayHandle name; | 902 typeArrayHandle name; |
903 ThreadPriority priority; | 903 ThreadPriority priority; |
1059 // proc - pre-checked for NULL | 1059 // proc - pre-checked for NULL |
1060 // arg - NULL is a valid value, must be checked | 1060 // arg - NULL is a valid value, must be checked |
1061 jvmtiError | 1061 jvmtiError |
1062 JvmtiEnv::RunAgentThread(jthread thread, jvmtiStartFunction proc, const void* arg, jint priority) { | 1062 JvmtiEnv::RunAgentThread(jthread thread, jvmtiStartFunction proc, const void* arg, jint priority) { |
1063 oop thread_oop = JNIHandles::resolve_external_guard(thread); | 1063 oop thread_oop = JNIHandles::resolve_external_guard(thread); |
1064 if (thread_oop == NULL || !thread_oop->is_a(SystemDictionary::thread_klass())) { | 1064 if (thread_oop == NULL || !thread_oop->is_a(SystemDictionary::Thread_klass())) { |
1065 return JVMTI_ERROR_INVALID_THREAD; | 1065 return JVMTI_ERROR_INVALID_THREAD; |
1066 } | 1066 } |
1067 if (priority < JVMTI_THREAD_MIN_PRIORITY || priority > JVMTI_THREAD_MAX_PRIORITY) { | 1067 if (priority < JVMTI_THREAD_MIN_PRIORITY || priority > JVMTI_THREAD_MAX_PRIORITY) { |
1068 return JVMTI_ERROR_INVALID_PRIORITY; | 1068 return JVMTI_ERROR_INVALID_PRIORITY; |
1069 } | 1069 } |