diff -r bd0d881cf1c5 -r df0a1573d5bd hotspot/src/share/vm/prims/jvm.cpp --- a/hotspot/src/share/vm/prims/jvm.cpp Thu Oct 04 14:55:57 2012 +0200 +++ b/hotspot/src/share/vm/prims/jvm.cpp Tue Nov 06 15:09:37 2012 -0500 @@ -125,7 +125,7 @@ int line_number = -1; const char * source_file = NULL; const char * trace = "explicit"; - Klass* caller = NULL; + InstanceKlass* caller = NULL; JavaThread* jthread = JavaThread::current(); if (jthread->has_last_Java_frame()) { vframeStream vfst(jthread); @@ -153,17 +153,17 @@ // that caller, otherwise keep quiet since this should be picked up elsewhere. bool found_it = false; if (!vfst.at_end() && - InstanceKlass::cast(vfst.method()->method_holder())->name() == vmSymbols::java_lang_Class() && + vfst.method()->method_holder()->name() == vmSymbols::java_lang_Class() && vfst.method()->name() == vmSymbols::forName0_name()) { vfst.next(); if (!vfst.at_end() && - InstanceKlass::cast(vfst.method()->method_holder())->name() == vmSymbols::java_lang_Class() && + vfst.method()->method_holder()->name() == vmSymbols::java_lang_Class() && vfst.method()->name() == vmSymbols::forName_name()) { vfst.next(); found_it = true; } } else if (last_caller != NULL && - InstanceKlass::cast(last_caller->method_holder())->name() == + last_caller->method_holder()->name() == vmSymbols::java_lang_ClassLoader() && (last_caller->name() == vmSymbols::loadClassInternal_name() || last_caller->name() == vmSymbols::loadClass_name())) { @@ -182,7 +182,7 @@ // show method name if it's a native method trace = vfst.method()->name_and_sig_as_C_string(); } - Symbol* s = InstanceKlass::cast(caller)->source_file_name(); + Symbol* s = caller->source_file_name(); if (s != NULL) { source_file = s->as_C_string(); } @@ -190,8 +190,8 @@ } if (caller != NULL) { if (to_class != caller) { - const char * from = Klass::cast(caller)->external_name(); - const char * to = Klass::cast(to_class)->external_name(); + const char * from = caller->external_name(); + const char * to = to_class->external_name(); // print in a single call to reduce interleaving between threads if (source_file != NULL) { tty->print("RESOLVE %s %s %s:%d (%s)\n", from, to, source_file, line_number, trace); @@ -1228,7 +1228,7 @@ privileged_context = Handle(thread, thread->privileged_stack_top()->privileged_context()); protection_domain = thread->privileged_stack_top()->protection_domain(); } else { - protection_domain = InstanceKlass::cast(method->method_holder())->protection_domain(); + protection_domain = method->method_holder()->protection_domain(); } if ((previous_protection_domain != protection_domain) && (protection_domain != NULL)) { @@ -3048,10 +3048,10 @@ Method* m = vfst.method(); if (!m->is_native()) { - Klass* holder = m->method_holder(); - oop loader = InstanceKlass::cast(holder)->class_loader(); + InstanceKlass* holder = m->method_holder(); + oop loader = holder->class_loader(); if (loader != NULL && !java_lang_ClassLoader::is_trusted_loader(loader)) { - return (jclass) JNIHandles::make_local(env, Klass::cast(holder)->java_mirror()); + return (jclass) JNIHandles::make_local(env, holder->java_mirror()); } } } @@ -3071,9 +3071,9 @@ Method* m = vfst.method(); if (!m->is_native()) { - Klass* holder = m->method_holder(); + InstanceKlass* holder = m->method_holder(); assert(holder->is_klass(), "just checking"); - oop loader = InstanceKlass::cast(holder)->class_loader(); + oop loader = holder->class_loader(); if (loader != NULL && !java_lang_ClassLoader::is_trusted_loader(loader)) { return JNIHandles::make_local(env, loader); } @@ -3148,9 +3148,9 @@ for(vframeStream vfst(thread); !vfst.at_end(); vfst.next()) { if (!vfst.method()->is_native()) { - Klass* holder = vfst.method()->method_holder(); + InstanceKlass* holder = vfst.method()->method_holder(); assert(holder->is_klass(), "just checking"); - if (InstanceKlass::cast(holder)->name() == class_name_sym) { + if (holder->name() == class_name_sym) { return depth; } depth++; @@ -3171,9 +3171,9 @@ Method* m = vfst.method(); if (!m->is_native()) { - Klass* holder = m->method_holder(); + InstanceKlass* holder = m->method_holder(); assert(holder->is_klass(), "just checking"); - oop loader = InstanceKlass::cast(holder)->class_loader(); + oop loader = holder->class_loader(); if (loader != NULL && !java_lang_ClassLoader::is_trusted_loader(loader)) { return depth; } @@ -3322,8 +3322,7 @@ for (vframeStream vfst(thread); !vfst.at_end(); vfst.next()) { // UseNewReflection vfst.skip_reflection_related_frames(); // Only needed for 1.4 reflection - Klass* holder = vfst.method()->method_holder(); - oop loader = InstanceKlass::cast(holder)->class_loader(); + oop loader = vfst.method()->method_holder()->class_loader(); if (loader != NULL) { return JNIHandles::make_local(env, loader); } @@ -3365,9 +3364,9 @@ !vfst.at_end() && loader == NULL; vfst.next()) { if (!vfst.method()->is_native()) { - Klass* holder = vfst.method()->method_holder(); - loader = InstanceKlass::cast(holder)->class_loader(); - protection_domain = InstanceKlass::cast(holder)->protection_domain(); + InstanceKlass* holder = vfst.method()->method_holder(); + loader = holder->class_loader(); + protection_domain = holder->protection_domain(); } } } else {