1.1 --- a/src/share/vm/classfile/classFileParser.cpp Fri Jun 19 07:33:25 2009 -0700 1.2 +++ b/src/share/vm/classfile/classFileParser.cpp Fri Jul 10 11:10:00 2009 -0700 1.3 @@ -547,7 +547,6 @@ 1.4 int length, 1.5 Handle class_loader, 1.6 Handle protection_domain, 1.7 - PerfTraceTime* vmtimer, 1.8 symbolHandle class_name, 1.9 TRAPS) { 1.10 ClassFileStream* cfs = stream(); 1.11 @@ -575,13 +574,11 @@ 1.12 guarantee_property(unresolved_klass->byte_at(0) != JVM_SIGNATURE_ARRAY, 1.13 "Bad interface name in class file %s", CHECK_(nullHandle)); 1.14 1.15 - vmtimer->suspend(); // do not count recursive loading twice 1.16 // Call resolve_super so classcircularity is checked 1.17 klassOop k = SystemDictionary::resolve_super_or_fail(class_name, 1.18 unresolved_klass, class_loader, protection_domain, 1.19 false, CHECK_(nullHandle)); 1.20 interf = KlassHandle(THREAD, k); 1.21 - vmtimer->resume(); 1.22 1.23 if (LinkWellKnownClasses) // my super type is well known to me 1.24 cp->klass_at_put(interface_index, interf()); // eagerly resolve 1.25 @@ -2558,7 +2555,15 @@ 1.26 1.27 ClassFileStream* cfs = stream(); 1.28 // Timing 1.29 - PerfTraceTime vmtimer(ClassLoader::perf_accumulated_time()); 1.30 + assert(THREAD->is_Java_thread(), "must be a JavaThread"); 1.31 + JavaThread* jt = (JavaThread*) THREAD; 1.32 + 1.33 + PerfClassTraceTime ctimer(ClassLoader::perf_class_parse_time(), 1.34 + ClassLoader::perf_class_parse_selftime(), 1.35 + NULL, 1.36 + jt->get_thread_stat()->perf_recursion_counts_addr(), 1.37 + jt->get_thread_stat()->perf_timers_addr(), 1.38 + PerfClassTraceTime::PARSE_CLASS); 1.39 1.40 _has_finalizer = _has_empty_finalizer = _has_vanilla_constructor = false; 1.41 1.42 @@ -2738,7 +2743,7 @@ 1.43 if (itfs_len == 0) { 1.44 local_interfaces = objArrayHandle(THREAD, Universe::the_empty_system_obj_array()); 1.45 } else { 1.46 - local_interfaces = parse_interfaces(cp, itfs_len, class_loader, protection_domain, &vmtimer, _class_name, CHECK_(nullHandle)); 1.47 + local_interfaces = parse_interfaces(cp, itfs_len, class_loader, protection_domain, _class_name, CHECK_(nullHandle)); 1.48 } 1.49 1.50 // Fields (offsets are filled in later) 1.51 @@ -2782,6 +2787,7 @@ 1.52 protection_domain, 1.53 true, 1.54 CHECK_(nullHandle)); 1.55 + 1.56 KlassHandle kh (THREAD, k); 1.57 super_klass = instanceKlassHandle(THREAD, kh()); 1.58 if (LinkWellKnownClasses) // my super class is well known to me