< prev index next >
src/share/vm/classfile/defaultMethods.cpp
Print this page
rev 13180 : imported patch 8181917-refactor-ul-logstream
*** 25,34 ****
--- 25,35 ----
#include "precompiled.hpp"
#include "classfile/bytecodeAssembler.hpp"
#include "classfile/defaultMethods.hpp"
#include "classfile/symbolTable.hpp"
#include "logging/log.hpp"
+ #include "logging/logStream.hpp"
#include "memory/allocation.hpp"
#include "memory/metadataFactory.hpp"
#include "memory/resourceArea.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/signature.hpp"
*** 431,445 ****
_selected_target = qualified_methods.at(default_index);
} else if (num_defaults > 1) {
_exception_message = generate_conflicts_message(&qualified_methods,CHECK);
_exception_name = vmSymbols::java_lang_IncompatibleClassChangeError();
! if (log_is_enabled(Debug, defaultmethods)) {
! ResourceMark rm;
! outputStream* logstream = Log(defaultmethods)::debug_stream();
! _exception_message->print_value_on(logstream);
! logstream->cr();
}
}
}
bool contains_signature(Symbol* query) {
--- 432,446 ----
_selected_target = qualified_methods.at(default_index);
} else if (num_defaults > 1) {
_exception_message = generate_conflicts_message(&qualified_methods,CHECK);
_exception_name = vmSymbols::java_lang_IncompatibleClassChangeError();
! LogTarget(Debug, defaultmethods) lt;
! if (lt.is_enabled()) {
! LogStream ls(lt);
! _exception_message->print_value_on(&ls);
! ls.cr();
}
}
}
bool contains_signature(Symbol* query) {
*** 656,674 ****
}
}
super = super->java_super();
}
! if (log_is_enabled(Debug, defaultmethods)) {
! log_debug(defaultmethods)("Slots that need filling:");
ResourceMark rm;
! outputStream* logstream = Log(defaultmethods)::debug_stream();
! streamIndentor si(logstream);
for (int i = 0; i < slots->length(); ++i) {
! logstream->indent();
! slots->at(i)->print_on(logstream);
! logstream->cr();
}
}
return slots;
}
--- 657,676 ----
}
}
super = super->java_super();
}
! LogTarget(Debug, defaultmethods) lt;
! if (lt.is_enabled()) {
! lt.print("Slots that need filling:");
ResourceMark rm;
! LogStream ls(lt);
! streamIndentor si(&ls);
for (int i = 0; i < slots->length(); ++i) {
! ls.indent();
! slots->at(i)->print_on(&ls);
! ls.cr();
}
}
return slots;
}
*** 790,819 ****
constantPoolHandle cp(THREAD, klass->constants());
KeepAliveRegistrar keepAlive(THREAD);
KeepAliveVisitor loadKeepAlive(&keepAlive);
loadKeepAlive.run(klass);
! if (log_is_enabled(Debug, defaultmethods)) {
ResourceMark rm;
! log_debug(defaultmethods)("%s %s requires default method processing",
klass->is_interface() ? "Interface" : "Class",
klass->name()->as_klass_external_name());
! PrintHierarchy printer(Log(defaultmethods)::debug_stream());
printer.run(klass);
}
GrowableArray<EmptyVtableSlot*>* empty_slots =
find_empty_vtable_slots(klass, mirandas, CHECK);
for (int i = 0; i < empty_slots->length(); ++i) {
EmptyVtableSlot* slot = empty_slots->at(i);
! if (log_is_enabled(Debug, defaultmethods)) {
! outputStream* logstream = Log(defaultmethods)::debug_stream();
! streamIndentor si(logstream, 2);
! logstream->indent().print("Looking for default methods for slot ");
! slot->print_on(logstream);
! logstream->cr();
}
generate_erased_defaults(klass, empty_slots, slot, CHECK);
}
log_debug(defaultmethods)("Creating defaults and overpasses...");
create_defaults_and_exceptions(empty_slots, klass, CHECK);
--- 792,824 ----
constantPoolHandle cp(THREAD, klass->constants());
KeepAliveRegistrar keepAlive(THREAD);
KeepAliveVisitor loadKeepAlive(&keepAlive);
loadKeepAlive.run(klass);
! LogTarget(Debug, defaultmethods) lt;
! if (lt.is_enabled()) {
ResourceMark rm;
! lt.print("%s %s requires default method processing",
klass->is_interface() ? "Interface" : "Class",
klass->name()->as_klass_external_name());
! LogStream ls(lt);
! PrintHierarchy printer(&ls);
printer.run(klass);
}
GrowableArray<EmptyVtableSlot*>* empty_slots =
find_empty_vtable_slots(klass, mirandas, CHECK);
for (int i = 0; i < empty_slots->length(); ++i) {
EmptyVtableSlot* slot = empty_slots->at(i);
! LogTarget(Debug, defaultmethods) lt;
! if (lt.is_enabled()) {
! LogStream ls(lt);
! streamIndentor si(&ls, 2);
! ls.indent().print("Looking for default methods for slot ");
! slot->print_on(&ls);
! ls.cr();
}
generate_erased_defaults(klass, empty_slots, slot, CHECK);
}
log_debug(defaultmethods)("Creating defaults and overpasses...");
create_defaults_and_exceptions(empty_slots, klass, CHECK);
*** 909,928 ****
if (slot->is_bound()) {
MethodFamily* method = slot->get_binding();
BytecodeBuffer buffer;
! if (log_is_enabled(Debug, defaultmethods)) {
ResourceMark rm(THREAD);
! outputStream* logstream = Log(defaultmethods)::debug_stream();
! logstream->print("for slot: ");
! slot->print_on(logstream);
! logstream->cr();
if (method->has_target()) {
! method->print_selected(logstream, 1);
} else if (method->throws_exception()) {
! method->print_exception(logstream, 1);
}
}
if (method->has_target()) {
Method* selected = method->get_selected_target();
--- 914,934 ----
if (slot->is_bound()) {
MethodFamily* method = slot->get_binding();
BytecodeBuffer buffer;
! LogTarget(Debug, defaultmethods) lt;
! if (lt.is_enabled()) {
ResourceMark rm(THREAD);
! LogStream ls(lt);
! ls.print("for slot: ");
! slot->print_on(&ls);
! ls.cr();
if (method->has_target()) {
! method->print_selected(&ls, 1);
} else if (method->throws_exception()) {
! method->print_exception(&ls, 1);
}
}
if (method->has_target()) {
Method* selected = method->get_selected_target();
< prev index next >