84 static bool firstEnv = true; |
84 static bool firstEnv = true; |
85 #endif /* PRODUCT */ |
85 #endif /* PRODUCT */ |
86 |
86 |
87 // ------------------------------------------------------------------ |
87 // ------------------------------------------------------------------ |
88 // ciEnv::ciEnv |
88 // ciEnv::ciEnv |
89 ciEnv::ciEnv(CompileTask* task, int system_dictionary_modification_counter) { |
89 ciEnv::ciEnv(CompileTask* task, int system_dictionary_modification_counter) |
|
90 : _ciEnv_arena(mtCompiler) { |
90 VM_ENTRY_MARK; |
91 VM_ENTRY_MARK; |
91 |
92 |
92 // Set up ciEnv::current immediately, for the sake of ciObjectFactory, etc. |
93 // Set up ciEnv::current immediately, for the sake of ciObjectFactory, etc. |
93 thread->set_env(this); |
94 thread->set_env(this); |
94 assert(ciEnv::current() == this, "sanity"); |
95 assert(ciEnv::current() == this, "sanity"); |
137 _ClassCastException_instance = NULL; |
138 _ClassCastException_instance = NULL; |
138 _the_null_string = NULL; |
139 _the_null_string = NULL; |
139 _the_min_jint_string = NULL; |
140 _the_min_jint_string = NULL; |
140 } |
141 } |
141 |
142 |
142 ciEnv::ciEnv(Arena* arena) { |
143 ciEnv::ciEnv(Arena* arena) : _ciEnv_arena(mtCompiler) { |
143 ASSERT_IN_VM; |
144 ASSERT_IN_VM; |
144 |
145 |
145 // Set up ciEnv::current immediately, for the sake of ciObjectFactory, etc. |
146 // Set up ciEnv::current immediately, for the sake of ciObjectFactory, etc. |
146 CompilerThread* current_thread = CompilerThread::current(); |
147 CompilerThread* current_thread = CompilerThread::current(); |
147 assert(current_thread->env() == NULL, "must be"); |
148 assert(current_thread->env() == NULL, "must be"); |