Mercurial > hg > truffle
comparison src/share/vm/prims/jni.cpp @ 657:715dceaa89b7
6603316: Improve instrumentation for classes loaded at startup
Reviewed-by: xlu, mchung
author | acorn |
---|---|
date | Wed, 25 Mar 2009 13:09:28 -0400 |
parents | 0fbdb4381b99 |
children | ad6585fd4087 |
comparison
equal
deleted
inserted
replaced
655:60bfce711da4 | 657:715dceaa89b7 |
---|---|
299 } | 299 } |
300 } | 300 } |
301 klassOop k = SystemDictionary::resolve_from_stream(class_name, class_loader, | 301 klassOop k = SystemDictionary::resolve_from_stream(class_name, class_loader, |
302 Handle(), &st, CHECK_NULL); | 302 Handle(), &st, CHECK_NULL); |
303 | 303 |
304 if (TraceClassResolution && k != NULL) { | |
305 trace_class_resolution(k); | |
306 } | |
307 | |
304 cls = (jclass)JNIHandles::make_local( | 308 cls = (jclass)JNIHandles::make_local( |
305 env, Klass::cast(k)->java_mirror()); | 309 env, Klass::cast(k)->java_mirror()); |
306 return cls; | 310 return cls; |
307 JNI_END | 311 JNI_END |
308 | 312 |
362 } | 366 } |
363 | 367 |
364 symbolHandle sym = oopFactory::new_symbol_handle(name, CHECK_NULL); | 368 symbolHandle sym = oopFactory::new_symbol_handle(name, CHECK_NULL); |
365 result = find_class_from_class_loader(env, sym, true, loader, | 369 result = find_class_from_class_loader(env, sym, true, loader, |
366 protection_domain, true, thread); | 370 protection_domain, true, thread); |
371 | |
372 if (TraceClassResolution && result != NULL) { | |
373 trace_class_resolution(java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(result))); | |
374 } | |
367 | 375 |
368 // If we were the first invocation of jni_FindClass, we enable compilation again | 376 // If we were the first invocation of jni_FindClass, we enable compilation again |
369 // rather than just allowing invocation counter to overflow and decay. | 377 // rather than just allowing invocation counter to overflow and decay. |
370 // Controlled by flag DelayCompilationDuringStartup. | 378 // Controlled by flag DelayCompilationDuringStartup. |
371 if (first_time && !CompileTheWorld) | 379 if (first_time && !CompileTheWorld) |
2644 static jclass lookupOne(JNIEnv* env, const char* name, TRAPS) { | 2652 static jclass lookupOne(JNIEnv* env, const char* name, TRAPS) { |
2645 Handle loader; // null (bootstrap) loader | 2653 Handle loader; // null (bootstrap) loader |
2646 Handle protection_domain; // null protection domain | 2654 Handle protection_domain; // null protection domain |
2647 | 2655 |
2648 symbolHandle sym = oopFactory::new_symbol_handle(name, CHECK_NULL); | 2656 symbolHandle sym = oopFactory::new_symbol_handle(name, CHECK_NULL); |
2649 return find_class_from_class_loader(env, sym, true, loader, protection_domain, true, CHECK_NULL); | 2657 jclass result = find_class_from_class_loader(env, sym, true, loader, protection_domain, true, CHECK_NULL); |
2658 | |
2659 if (TraceClassResolution && result != NULL) { | |
2660 trace_class_resolution(java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(result))); | |
2661 } | |
2662 return result; | |
2650 } | 2663 } |
2651 | 2664 |
2652 // These lookups are done with the NULL (bootstrap) ClassLoader to | 2665 // These lookups are done with the NULL (bootstrap) ClassLoader to |
2653 // circumvent any security checks that would be done by jni_FindClass. | 2666 // circumvent any security checks that would be done by jni_FindClass. |
2654 JNI_ENTRY(bool, lookupDirectBufferClasses(JNIEnv* env)) | 2667 JNI_ENTRY(bool, lookupDirectBufferClasses(JNIEnv* env)) |