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;
 }