comparison src/share/vm/classfile/systemDictionary.cpp @ 1410:b30a2cd5e3a2

Added methods to c1x_VMExits.cpp Some memos: - the result is not stored in a jobject, but in an oop! => (oop)get_as_jobject() - we get problems with locks hold by the user program when disabling background compilation => currently this makes an assert, we need a better solution
author Thomas Wuerthinger <thomas.wuerthinger@gmail.com>
date Wed, 12 May 2010 16:29:41 +0200
parents 09e7826ecf01
children 2d26b0046e0d
comparison
equal deleted inserted replaced
1407:09e7826ecf01 1410:b30a2cd5e3a2
2356 unsigned int hash = invoke_method_table()->compute_hash(signature); 2356 unsigned int hash = invoke_method_table()->compute_hash(signature);
2357 int index = invoke_method_table()->hash_to_index(hash); 2357 int index = invoke_method_table()->hash_to_index(hash);
2358 SymbolPropertyEntry* spe = invoke_method_table()->find_entry(index, hash, signature); 2358 SymbolPropertyEntry* spe = invoke_method_table()->find_entry(index, hash, signature);
2359 if (spe == NULL || spe->property_oop() == NULL) { 2359 if (spe == NULL || spe->property_oop() == NULL) {
2360 // Must create lots of stuff here, but outside of the SystemDictionary lock. 2360 // Must create lots of stuff here, but outside of the SystemDictionary lock.
2361 if (THREAD->is_Compiler_thread()) 2361 // (tw) May we do this?
2362 return NULL; // do not attempt from within compiler 2362 //if (THREAD->is_Compiler_thread())
2363 // return NULL; // do not attempt from within compiler
2363 Handle mt = compute_method_handle_type(signature(), 2364 Handle mt = compute_method_handle_type(signature(),
2364 class_loader, protection_domain, 2365 class_loader, protection_domain,
2365 CHECK_NULL); 2366 CHECK_NULL);
2366 KlassHandle mh_klass = SystemDictionaryHandles::MethodHandle_klass(); 2367 KlassHandle mh_klass = SystemDictionaryHandles::MethodHandle_klass();
2367 methodHandle m = methodOopDesc::make_invoke_method(mh_klass, signature, 2368 methodHandle m = methodOopDesc::make_invoke_method(mh_klass, signature,