Mercurial > hg > truffle
changeset 3669:53636e2c9d03
No longer use shared ciFactory. Remove make_global usage in code installer.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 18 Nov 2011 14:14:37 +0100 |
parents | 46f211fe010c |
children | f198b24093f3 |
files | src/share/vm/ci/ciEnv.cpp src/share/vm/ci/ciObjectFactory.cpp src/share/vm/ci/ciObjectFactory.hpp src/share/vm/graal/graalCodeInstaller.cpp src/share/vm/graal/graalVMEntries.cpp |
diffstat | 5 files changed, 8 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- 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); } // ------------------------------------------------------------------
--- 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<ciMethod*>(arena, 4, 0, NULL); _unloaded_klasses = new (arena) GrowableArray<ciKlass*>(arena, 8, 0, NULL); @@ -101,14 +101,6 @@ _symbols = new (arena) GrowableArray<ciSymbol*>(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);
--- 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);
--- 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);
--- 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; }