# HG changeset patch # User Thomas Wuerthinger # Date 1321622077 -3600 # Node ID 53636e2c9d0338d81d0121e745ec6895df129254 # Parent 46f211fe010c8d7c0a87b9c03d36af0df0a6aed7 No longer use shared ciFactory. Remove make_global usage in code installer. diff -r 46f211fe010c -r 53636e2c9d03 src/share/vm/ci/ciEnv.cpp --- a/src/share/vm/ci/ciEnv.cpp Fri Nov 18 13:30:47 2011 +0100 +++ b/src/share/vm/ci/ciEnv.cpp Fri Nov 18 14:14:37 2011 +0100 @@ -201,10 +201,8 @@ } ciEnv::~ciEnv() { - _factory->cleanup(); - JavaThread* current_thread = JavaThread::current(); _factory->remove_symbols(); - //current_thread->set_env(NULL); + JavaThread::current()->set_env(NULL); } // ------------------------------------------------------------------ diff -r 46f211fe010c -r 53636e2c9d03 src/share/vm/ci/ciObjectFactory.cpp --- a/src/share/vm/ci/ciObjectFactory.cpp Fri Nov 18 13:30:47 2011 +0100 +++ b/src/share/vm/ci/ciObjectFactory.cpp Fri Nov 18 14:14:37 2011 +0100 @@ -88,9 +88,9 @@ // If the shared ci objects exist append them to this factory's objects - if (_shared_ci_objects != NULL) { + /*if (_shared_ci_objects != NULL) { _ci_objects->appendAll(_shared_ci_objects); - } + }*/ _unloaded_methods = new (arena) GrowableArray(arena, 4, 0, NULL); _unloaded_klasses = new (arena) GrowableArray(arena, 8, 0, NULL); @@ -101,14 +101,6 @@ _symbols = new (arena) GrowableArray(arena, 100, 0, NULL); } -void ciObjectFactory::cleanup() { - int start = 0; - if (_shared_ci_objects != NULL) start = _shared_ci_objects->length(); - for (int i = start; i < _ci_objects->length(); ++i) { - _ci_objects->at(i)->cleanup(); - } -} - // ------------------------------------------------------------------ // ciObjectFactory::ciObjectFactory void ciObjectFactory::initialize() { @@ -227,13 +219,13 @@ ciSymbol* ciObjectFactory::get_symbol(Symbol* key) { - vmSymbols::SID sid = vmSymbols::find_sid(key); + /*vmSymbols::SID sid = vmSymbols::find_sid(key); if (sid != vmSymbols::NO_SID) { // do not pollute the main cache with it ciSymbol* result = vm_symbol_at(sid); assert(result != NULL, ""); return result; - } + }*/ assert(vmSymbols::find_sid(key) == vmSymbols::NO_SID, ""); ciSymbol* s = new (arena()) ciSymbol(key, vmSymbols::NO_SID); diff -r 46f211fe010c -r 53636e2c9d03 src/share/vm/ci/ciObjectFactory.hpp --- a/src/share/vm/ci/ciObjectFactory.hpp Fri Nov 18 13:30:47 2011 +0100 +++ b/src/share/vm/ci/ciObjectFactory.hpp Fri Nov 18 14:14:37 2011 +0100 @@ -94,8 +94,6 @@ ciObjectFactory(Arena* arena, int expected_size); - void cleanup(); - // Get the ciObject corresponding to some oop. ciObject* get(oop key); diff -r 46f211fe010c -r 53636e2c9d03 src/share/vm/graal/graalCodeInstaller.cpp --- a/src/share/vm/graal/graalCodeInstaller.cpp Fri Nov 18 13:30:47 2011 +0100 +++ b/src/share/vm/graal/graalCodeInstaller.cpp Fri Nov 18 14:14:37 2011 +0100 @@ -177,7 +177,7 @@ if (obj == NULL) { return new ConstantOopWriteValue(NULL); } else { - return new ConstantOopWriteValue(JNIHandles::make_global(obj)); + return new ConstantOopWriteValue(JNIHandles::make_local(obj)); } } else if (type == T_ADDRESS) { return new ConstantLongValue(prim); diff -r 46f211fe010c -r 53636e2c9d03 src/share/vm/graal/graalVMEntries.cpp --- a/src/share/vm/graal/graalVMEntries.cpp Fri Nov 18 13:30:47 2011 +0100 +++ b/src/share/vm/graal/graalVMEntries.cpp Fri Nov 18 14:14:37 2011 +0100 @@ -925,30 +925,24 @@ // public long installMethod(HotSpotTargetMethod targetMethod, boolean installCode); JNIEXPORT jlong JNICALL Java_com_oracle_graal_hotspot_VMEntries_installMethod(JNIEnv *jniEnv, jobject, jobject targetMethod, jboolean install_code) { VM_ENTRY_MARK; + ResourceMark rm; Handle targetMethodHandle = JNIHandles::resolve(targetMethod); nmethod* nm = NULL; - ciEnv* current_env = JavaThread::current()->env(); - JavaThread::current()->set_env(NULL); Arena arena; ciEnv env(&arena); - ResourceMark rm; CodeInstaller installer(targetMethodHandle, nm, install_code != 0); - JavaThread::current()->set_env(current_env); return (jlong) nm; } // public HotSpotProxy installStub(HotSpotTargetMethod targetMethod, String name); JNIEXPORT jlong JNICALL Java_com_oracle_graal_hotspot_VMEntries_installStub(JNIEnv *jniEnv, jobject, jobject targetMethod) { VM_ENTRY_MARK; + ResourceMark rm; Handle targetMethodHandle = JNIHandles::resolve(targetMethod); jlong id; - ciEnv* current_env = JavaThread::current()->env(); - JavaThread::current()->set_env(NULL); Arena arena; ciEnv env(&arena); - ResourceMark rm; CodeInstaller installer(targetMethodHandle, id); - JavaThread::current()->set_env(current_env); return id; }