8000263: JSR 292: signature types may appear to be unloaded

Reviewed-by: kvn, jrose
This commit is contained in:
Christian Thalinger 2012-10-08 17:04:00 -07:00
parent b1d745897b
commit 7162ad011c
11 changed files with 136 additions and 171 deletions

View file

@ -196,7 +196,27 @@ public:
# include "methodHandles_ppc.hpp"
#endif
// Tracing
static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN;
static void trace_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid) {
if (TraceMethodHandles) {
const char* name = vmIntrinsics::name_at(iid);
if (*name == '_') name += 1;
const size_t len = strlen(name) + 50;
char* qname = NEW_C_HEAP_ARRAY(char, len, mtInternal);
const char* suffix = "";
if (is_signature_polymorphic(iid)) {
if (is_signature_polymorphic_static(iid))
suffix = "/static";
else
suffix = "/private";
}
jio_snprintf(qname, len, "MethodHandle::interpreter_entry::%s%s", name, suffix);
trace_method_handle(_masm, qname);
// Note: Don't free the allocated char array because it's used
// during runtime.
}
}
};