src/share/vm/prims/jvmtiEnv.cpp

Print this page
rev 9430 : [mq]: 8140485_open_updated

2560     jclass result_jnihandle = (jclass) jni_reference(result_handle);
2561     *classloader_ptr = result_jnihandle;
2562   }
2563   return JVMTI_ERROR_NONE;
2564 } /* end GetClassLoader */
2565 
2566 
2567 // k_mirror - may be primitive, this must be checked
2568 // source_debug_extension_ptr - pre-checked for NULL
2569 jvmtiError
2570 JvmtiEnv::GetSourceDebugExtension(oop k_mirror, char** source_debug_extension_ptr) {
2571   {
2572     if (java_lang_Class::is_primitive(k_mirror)) {
2573       return JVMTI_ERROR_ABSENT_INFORMATION;
2574     }
2575     Klass* k = java_lang_Class::as_Klass(k_mirror);
2576     NULL_CHECK(k, JVMTI_ERROR_INVALID_CLASS);
2577     if (!k->is_instance_klass()) {
2578       return JVMTI_ERROR_ABSENT_INFORMATION;
2579     }
2580     char* sde = InstanceKlass::cast(k)->source_debug_extension();
2581     NULL_CHECK(sde, JVMTI_ERROR_ABSENT_INFORMATION);
2582 
2583     {
2584       *source_debug_extension_ptr = (char *) jvmtiMalloc(strlen(sde)+1);
2585       strcpy(*source_debug_extension_ptr, sde);
2586     }
2587   }
2588 
2589   return JVMTI_ERROR_NONE;
2590 } /* end GetSourceDebugExtension */
2591 
2592   //
2593   // Object functions
2594   //
2595 
2596 // hash_code_ptr - pre-checked for NULL
2597 jvmtiError
2598 JvmtiEnv::GetObjectHashCode(jobject object, jint* hash_code_ptr) {
2599   oop mirror = JNIHandles::resolve_external_guard(object);
2600   NULL_CHECK(mirror, JVMTI_ERROR_INVALID_OBJECT);



2560     jclass result_jnihandle = (jclass) jni_reference(result_handle);
2561     *classloader_ptr = result_jnihandle;
2562   }
2563   return JVMTI_ERROR_NONE;
2564 } /* end GetClassLoader */
2565 
2566 
2567 // k_mirror - may be primitive, this must be checked
2568 // source_debug_extension_ptr - pre-checked for NULL
2569 jvmtiError
2570 JvmtiEnv::GetSourceDebugExtension(oop k_mirror, char** source_debug_extension_ptr) {
2571   {
2572     if (java_lang_Class::is_primitive(k_mirror)) {
2573       return JVMTI_ERROR_ABSENT_INFORMATION;
2574     }
2575     Klass* k = java_lang_Class::as_Klass(k_mirror);
2576     NULL_CHECK(k, JVMTI_ERROR_INVALID_CLASS);
2577     if (!k->is_instance_klass()) {
2578       return JVMTI_ERROR_ABSENT_INFORMATION;
2579     }
2580     const char* sde = InstanceKlass::cast(k)->source_debug_extension();
2581     NULL_CHECK(sde, JVMTI_ERROR_ABSENT_INFORMATION);
2582 
2583     {
2584       *source_debug_extension_ptr = (char *) jvmtiMalloc(strlen(sde)+1);
2585       strcpy(*source_debug_extension_ptr, sde);
2586     }
2587   }
2588 
2589   return JVMTI_ERROR_NONE;
2590 } /* end GetSourceDebugExtension */
2591 
2592   //
2593   // Object functions
2594   //
2595 
2596 // hash_code_ptr - pre-checked for NULL
2597 jvmtiError
2598 JvmtiEnv::GetObjectHashCode(jobject object, jint* hash_code_ptr) {
2599   oop mirror = JNIHandles::resolve_external_guard(object);
2600   NULL_CHECK(mirror, JVMTI_ERROR_INVALID_OBJECT);