< prev index next >
src/share/vm/oops/klassVtable.cpp
Print this page
rev 13113 : imported patch 8181917-refactor-ul-logstream
*** 25,34 ****
--- 25,35 ----
#include "precompiled.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/vmSymbols.hpp"
#include "gc/shared/gcLocker.hpp"
#include "logging/log.hpp"
+ #include "logging/logStream.hpp"
#include "memory/metaspaceShared.hpp"
#include "memory/resourceArea.hpp"
#include "memory/universe.inline.hpp"
#include "oops/instanceKlass.hpp"
#include "oops/klassVtable.hpp"
*** 299,317 ****
assert(super_method->name() == name && super_method->signature() == signature, "vtable entry name/sig mismatch");
#endif
if (supersuperklass->is_override(super_method, target_loader, target_classname, THREAD)) {
if (log_develop_is_enabled(Trace, vtables)) {
ResourceMark rm(THREAD);
! outputStream* logst = Log(vtables)::trace_stream();
char* sig = target_method()->name_and_sig_as_C_string();
! logst->print("transitive overriding superclass %s with %s index %d, original flags: ",
supersuperklass->internal_name(),
sig, vtable_index);
! super_method->print_linkage_flags(logst);
! logst->print("overriders flags: ");
! target_method->print_linkage_flags(logst);
! logst->cr();
}
break; // return found superk
}
} else {
--- 300,319 ----
assert(super_method->name() == name && super_method->signature() == signature, "vtable entry name/sig mismatch");
#endif
if (supersuperklass->is_override(super_method, target_loader, target_classname, THREAD)) {
if (log_develop_is_enabled(Trace, vtables)) {
ResourceMark rm(THREAD);
! LogTarget(Trace, vtables) lt;
! LogStream ls(lt);
char* sig = target_method()->name_and_sig_as_C_string();
! ls.print("transitive overriding superclass %s with %s index %d, original flags: ",
supersuperklass->internal_name(),
sig, vtable_index);
! super_method->print_linkage_flags(&ls);
! ls.print("overriders flags: ");
! target_method->print_linkage_flags(&ls);
! ls.cr();
}
break; // return found superk
}
} else {
*** 330,352 ****
Klass* target_klass, Method* super_method,
Thread* thread) {
#ifndef PRODUCT
if (log_develop_is_enabled(Trace, vtables)) {
ResourceMark rm(thread);
! outputStream* logst = Log(vtables)::trace_stream();
char* sig = target_method()->name_and_sig_as_C_string();
if (overrides) {
! logst->print("overriding with %s index %d, original flags: ",
sig, i);
} else {
! logst->print("NOT overriding with %s index %d, original flags: ",
sig, i);
}
! super_method->print_linkage_flags(logst);
! logst->print("overriders flags: ");
! target_method->print_linkage_flags(logst);
! logst->cr();
}
#endif
}
// Update child's copy of super vtable for overrides
--- 332,355 ----
Klass* target_klass, Method* super_method,
Thread* thread) {
#ifndef PRODUCT
if (log_develop_is_enabled(Trace, vtables)) {
ResourceMark rm(thread);
! LogTarget(Trace, vtables) lt;
! LogStream ls(lt);
char* sig = target_method()->name_and_sig_as_C_string();
if (overrides) {
! ls.print("overriding with %s index %d, original flags: ",
sig, i);
} else {
! ls.print("NOT overriding with %s index %d, original flags: ",
sig, i);
}
! super_method->print_linkage_flags(&ls);
! ls.print("overriders flags: ");
! target_method->print_linkage_flags(&ls);
! ls.cr();
}
#endif
}
// Update child's copy of super vtable for overrides
*** 548,564 ****
assert(table()[index].method() == m,
"archived method is different from the runtime method");
} else {
if (log_develop_is_enabled(Trace, vtables)) {
ResourceMark rm;
! outputStream* logst = Log(vtables)::trace_stream();
const char* sig = (m != NULL) ? m->name_and_sig_as_C_string() : "<NULL>";
! logst->print("adding %s at index %d, flags: ", sig, index);
if (m != NULL) {
! m->print_linkage_flags(logst);
}
! logst->cr();
}
table()[index].set(m);
}
}
--- 551,568 ----
assert(table()[index].method() == m,
"archived method is different from the runtime method");
} else {
if (log_develop_is_enabled(Trace, vtables)) {
ResourceMark rm;
! LogTarget(Trace, vtables) lt;
! LogStream ls(lt);
const char* sig = (m != NULL) ? m->name_and_sig_as_C_string() : "<NULL>";
! ls.print("adding %s at index %d, flags: ", sig, index);
if (m != NULL) {
! m->print_linkage_flags(&ls);
}
! ls.cr();
}
table()[index].set(m);
}
}
*** 882,898 ****
ik()->default_methods(), ik()->local_interfaces());
for (int i = 0; i < mirandas.length(); i++) {
if (log_develop_is_enabled(Trace, vtables)) {
Method* meth = mirandas.at(i);
ResourceMark rm(Thread::current());
! outputStream* logst = Log(vtables)::trace_stream();
if (meth != NULL) {
char* sig = meth->name_and_sig_as_C_string();
! logst->print("fill in mirandas with %s index %d, flags: ",
sig, initialized);
! meth->print_linkage_flags(logst);
! logst->cr();
}
}
put_method_at(mirandas.at(i), initialized);
++initialized;
}
--- 886,903 ----
ik()->default_methods(), ik()->local_interfaces());
for (int i = 0; i < mirandas.length(); i++) {
if (log_develop_is_enabled(Trace, vtables)) {
Method* meth = mirandas.at(i);
ResourceMark rm(Thread::current());
! LogTarget(Trace, vtables) lt;
! LogStream ls(lt);
if (meth != NULL) {
char* sig = meth->name_and_sig_as_C_string();
! ls.print("fill in mirandas with %s index %d, flags: ",
sig, initialized);
! meth->print_linkage_flags(&ls);
! ls.cr();
}
}
put_method_at(mirandas.at(i), initialized);
++initialized;
}
*** 1114,1133 ****
if (interface_method_needs_itable_index(m)) {
assert(!m->is_final_method(), "no final interface methods");
// If m is already assigned a vtable index, do not disturb it.
if (log_develop_is_enabled(Trace, itables)) {
ResourceMark rm;
! outputStream* logst = Log(itables)::trace_stream();
assert(m != NULL, "methods can never be null");
const char* sig = m->name_and_sig_as_C_string();
if (m->has_vtable_index()) {
! logst->print("vtable index %d for method: %s, flags: ", m->vtable_index(), sig);
} else {
! logst->print("itable index %d for method: %s, flags: ", ime_num, sig);
}
! m->print_linkage_flags(logst);
! logst->cr();
}
if (!m->has_vtable_index()) {
// A shared method could have an initialized itable_index that
// is < 0.
assert(m->vtable_index() == Method::pending_itable_index ||
--- 1119,1139 ----
if (interface_method_needs_itable_index(m)) {
assert(!m->is_final_method(), "no final interface methods");
// If m is already assigned a vtable index, do not disturb it.
if (log_develop_is_enabled(Trace, itables)) {
ResourceMark rm;
! LogTarget(Trace, itables) lt;
! LogStream ls(lt);
assert(m != NULL, "methods can never be null");
const char* sig = m->name_and_sig_as_C_string();
if (m->has_vtable_index()) {
! ls.print("vtable index %d for method: %s, flags: ", m->vtable_index(), sig);
} else {
! ls.print("itable index %d for method: %s, flags: ", ime_num, sig);
}
! m->print_linkage_flags(&ls);
! ls.cr();
}
if (!m->has_vtable_index()) {
// A shared method could have an initialized itable_index that
// is < 0.
assert(m->vtable_index() == Method::pending_itable_index ||
*** 1234,1251 ****
assert(ime_num < ime_count, "oob");
itableOffsetEntry::method_entry(_klass, method_table_offset)[ime_num].initialize(target());
if (log_develop_is_enabled(Trace, itables)) {
ResourceMark rm(THREAD);
if (target() != NULL) {
! outputStream* logst = Log(itables)::trace_stream();
char* sig = target()->name_and_sig_as_C_string();
! logst->print("interface: %s, ime_num: %d, target: %s, method_holder: %s ",
interf->internal_name(), ime_num, sig,
target()->method_holder()->internal_name());
! logst->print("target_method flags: ");
! target()->print_linkage_flags(logst);
! logst->cr();
}
}
}
}
}
--- 1240,1258 ----
assert(ime_num < ime_count, "oob");
itableOffsetEntry::method_entry(_klass, method_table_offset)[ime_num].initialize(target());
if (log_develop_is_enabled(Trace, itables)) {
ResourceMark rm(THREAD);
if (target() != NULL) {
! LogTarget(Trace, itables) lt;
! LogStream ls(lt);
char* sig = target()->name_and_sig_as_C_string();
! ls.print("interface: %s, ime_num: %d, target: %s, method_holder: %s ",
interf->internal_name(), ime_num, sig,
target()->method_holder()->internal_name());
! ls.print("target_method flags: ");
! target()->print_linkage_flags(&ls);
! ls.cr();
}
}
}
}
}
< prev index next >