hotspot/src/share/vm/ci/ciEnv.cpp
changeset 4450 6d700b859b3e
parent 4429 d7eb4e2099aa
child 4566 b363f6ef4068
equal deleted inserted replaced
4448:d6ec2737186c 4450:6d700b859b3e
    44 ciInstanceKlass* ciEnv::_Object;
    44 ciInstanceKlass* ciEnv::_Object;
    45 ciInstanceKlass* ciEnv::_Throwable;
    45 ciInstanceKlass* ciEnv::_Throwable;
    46 ciInstanceKlass* ciEnv::_Thread;
    46 ciInstanceKlass* ciEnv::_Thread;
    47 ciInstanceKlass* ciEnv::_OutOfMemoryError;
    47 ciInstanceKlass* ciEnv::_OutOfMemoryError;
    48 ciInstanceKlass* ciEnv::_String;
    48 ciInstanceKlass* ciEnv::_String;
       
    49 ciInstanceKlass* ciEnv::_StringBuffer;
       
    50 ciInstanceKlass* ciEnv::_StringBuilder;
       
    51 ciInstanceKlass* ciEnv::_Integer;
    49 
    52 
    50 ciSymbol*        ciEnv::_unloaded_cisymbol = NULL;
    53 ciSymbol*        ciEnv::_unloaded_cisymbol = NULL;
    51 ciInstanceKlass* ciEnv::_unloaded_ciinstance_klass = NULL;
    54 ciInstanceKlass* ciEnv::_unloaded_ciinstance_klass = NULL;
    52 ciObjArrayKlass* ciEnv::_unloaded_ciobjarrayklass = NULL;
    55 ciObjArrayKlass* ciEnv::_unloaded_ciobjarrayklass = NULL;
    53 
    56 
   108   _ArithmeticException_instance = get_object(o)->as_instance();
   111   _ArithmeticException_instance = get_object(o)->as_instance();
   109 
   112 
   110   _ArrayIndexOutOfBoundsException_instance = NULL;
   113   _ArrayIndexOutOfBoundsException_instance = NULL;
   111   _ArrayStoreException_instance = NULL;
   114   _ArrayStoreException_instance = NULL;
   112   _ClassCastException_instance = NULL;
   115   _ClassCastException_instance = NULL;
       
   116   _the_null_string = NULL;
       
   117   _the_min_jint_string = NULL;
   113 }
   118 }
   114 
   119 
   115 ciEnv::ciEnv(Arena* arena) {
   120 ciEnv::ciEnv(Arena* arena) {
   116   ASSERT_IN_VM;
   121   ASSERT_IN_VM;
   117 
   122 
   161   _ArithmeticException_instance = get_object(o)->as_instance();
   166   _ArithmeticException_instance = get_object(o)->as_instance();
   162 
   167 
   163   _ArrayIndexOutOfBoundsException_instance = NULL;
   168   _ArrayIndexOutOfBoundsException_instance = NULL;
   164   _ArrayStoreException_instance = NULL;
   169   _ArrayStoreException_instance = NULL;
   165   _ClassCastException_instance = NULL;
   170   _ClassCastException_instance = NULL;
       
   171   _the_null_string = NULL;
       
   172   _the_min_jint_string = NULL;
   166 }
   173 }
   167 
   174 
   168 ciEnv::~ciEnv() {
   175 ciEnv::~ciEnv() {
   169   CompilerThread* current_thread = CompilerThread::current();
   176   CompilerThread* current_thread = CompilerThread::current();
   170   current_thread->set_env(NULL);
   177   current_thread->set_env(NULL);
   244     _ClassCastException_instance
   251     _ClassCastException_instance
   245           = get_or_create_exception(_ClassCastException_handle,
   252           = get_or_create_exception(_ClassCastException_handle,
   246           vmSymbolHandles::java_lang_ClassCastException());
   253           vmSymbolHandles::java_lang_ClassCastException());
   247   }
   254   }
   248   return _ClassCastException_instance;
   255   return _ClassCastException_instance;
       
   256 }
       
   257 
       
   258 ciInstance* ciEnv::the_null_string() {
       
   259   if (_the_null_string == NULL) {
       
   260     VM_ENTRY_MARK;
       
   261     _the_null_string = get_object(Universe::the_null_string())->as_instance();
       
   262   }
       
   263   return _the_null_string;
       
   264 }
       
   265 
       
   266 ciInstance* ciEnv::the_min_jint_string() {
       
   267   if (_the_min_jint_string == NULL) {
       
   268     VM_ENTRY_MARK;
       
   269     _the_min_jint_string = get_object(Universe::the_min_jint_string())->as_instance();
       
   270   }
       
   271   return _the_min_jint_string;
   249 }
   272 }
   250 
   273 
   251 // ------------------------------------------------------------------
   274 // ------------------------------------------------------------------
   252 // ciEnv::get_method_from_handle
   275 // ciEnv::get_method_from_handle
   253 ciMethod* ciEnv::get_method_from_handle(jobject method) {
   276 ciMethod* ciEnv::get_method_from_handle(jobject method) {