< prev index next >
src/share/vm/runtime/sharedRuntime.cpp
Print this page
*** 2959,2973 ****
--- 2959,2976 ----
for (; !ss.at_return_type(); ss.next()) {
BasicType bt = ss.type();
if (bt == T_VALUETYPE) {
#ifdef ASSERT
Thread* THREAD = Thread::current();
+ // Avoid class loading from compiler thread
+ if (THREAD->can_call_java()) {
Handle class_loader(THREAD, method->method_holder()->class_loader());
Handle protection_domain(THREAD, method->method_holder()->protection_domain());
Klass* k = ss.as_klass(class_loader, protection_domain, SignatureStream::ReturnNull, THREAD);
assert(k != NULL && !HAS_PENDING_EXCEPTION, "can't resolve klass");
assert(k == SystemDictionary::___Value_klass(), "other values not supported");
+ }
#endif
bt = T_VALUETYPEPTR;
}
sig_bt[i++] = bt; // Collect remaining bits of signature
if (ss.type() == T_LONG || ss.type() == T_DOUBLE)
< prev index next >