< prev index next >

src/share/vm/classfile/systemDictionary.cpp

Print this page

        

*** 2270,2288 **** --- 2270,2290 ---- methodHandle m; if (spe == NULL || spe->method() == NULL) { spe = NULL; // Must create lots of stuff here, but outside of the SystemDictionary lock. m = Method::make_method_handle_intrinsic(iid, signature, CHECK_(empty)); + #ifndef SHARK if (!Arguments::is_interpreter_only()) { // Generate a compiled form of the MH intrinsic. AdapterHandlerLibrary::create_native_wrapper(m); // Check if have the compiled code. if (!m->has_compiled_code()) { THROW_MSG_(vmSymbols::java_lang_VirtualMachineError(), "out of space in CodeCache for method handle intrinsic", empty); } } + #endif // SHARK // Now grab the lock. We might have to throw away the new method, // if a racing thread has managed to install one at the same time. { MutexLocker ml(SystemDictionary_lock, THREAD); spe = invoke_method_table()->find_entry(index, hash, signature, iid);
*** 2292,2304 **** --- 2294,2308 ---- spe->set_method(m()); } } assert(spe != NULL && spe->method() != NULL, ""); + #ifndef SHARK assert(Arguments::is_interpreter_only() || (spe->method()->has_compiled_code() && spe->method()->code()->entry_point() == spe->method()->from_compiled_entry()), "MH intrinsic invariant"); + #endif // SHARK return spe->method(); } // Helper for unpacking the return value from linkMethod and linkCallSite. static methodHandle unpack_method_and_appendix(Handle mname,
< prev index next >