< prev index next >
src/hotspot/share/runtime/javaCalls.cpp
Print this page
@@ -447,10 +447,19 @@
THROW(vmSymbols::jdk_vm_ci_code_InvalidInstalledCodeException());
}
}
#endif
+ Handle vt;
+ if (result->get_type() == T_VALUETYPE) {
+ // Pre allocate buffered value in case the result is returned
+ // flattened by compiled code
+ ValueKlass* vk = method->returned_value_type(thread);
+ vt = vk->allocate_instance_handle(CHECK);
+ result->set_jobject((jobject)vt());
+ }
+
// do call
{ JavaCallWrapper link(method, receiver, result, CHECK);
{ HandleMark hm(thread); // HandleMark used by HandleMarkCleaner
StubRoutines::call_stub()(
< prev index next >