71 ciObject* ciEnv::_null_object_instance;
72
73 #define WK_KLASS_DEFN(name, ignore_s, ignore_o) ciInstanceKlass* ciEnv::_##name = NULL;
74 WK_KLASSES_DO(WK_KLASS_DEFN)
75 #undef WK_KLASS_DEFN
76
77 ciSymbol* ciEnv::_unloaded_cisymbol = NULL;
78 ciInstanceKlass* ciEnv::_unloaded_ciinstance_klass = NULL;
79 ciObjArrayKlass* ciEnv::_unloaded_ciobjarrayklass = NULL;
80
81 jobject ciEnv::_ArrayIndexOutOfBoundsException_handle = NULL;
82 jobject ciEnv::_ArrayStoreException_handle = NULL;
83 jobject ciEnv::_ClassCastException_handle = NULL;
84
85 #ifndef PRODUCT
86 static bool firstEnv = true;
87 #endif /* PRODUCT */
88
89 // ------------------------------------------------------------------
90 // ciEnv::ciEnv
91 ciEnv::ciEnv(CompileTask* task, int system_dictionary_modification_counter)
92 : _ciEnv_arena(mtCompiler) {
93 VM_ENTRY_MARK;
94
95 // Set up ciEnv::current immediately, for the sake of ciObjectFactory, etc.
96 thread->set_env(this);
97 assert(ciEnv::current() == this, "sanity");
98
99 _oop_recorder = NULL;
100 _debug_info = NULL;
101 _dependencies = NULL;
102 _failure_reason = NULL;
103 _compilable = MethodCompilable;
104 _break_at_compile = false;
105 _compiler_data = NULL;
106 #ifndef PRODUCT
107 assert(!firstEnv, "not initialized properly");
108 #endif /* !PRODUCT */
109
110 _system_dictionary_modification_counter = system_dictionary_modification_counter;
111 _num_inlined_bytecodes = 0;
112 assert(task == NULL || thread->task() == task, "sanity");
113 _task = task;
114 _log = NULL;
115
116 // Temporary buffer for creating symbols and such.
117 _name_buffer = NULL;
118 _name_buffer_len = 0;
119
120 _arena = &_ciEnv_arena;
121 _factory = new (_arena) ciObjectFactory(_arena, 128);
122
123 // Preload commonly referenced system ciObjects.
124
125 // During VM initialization, these instances have not yet been created.
|
71 ciObject* ciEnv::_null_object_instance;
72
73 #define WK_KLASS_DEFN(name, ignore_s, ignore_o) ciInstanceKlass* ciEnv::_##name = NULL;
74 WK_KLASSES_DO(WK_KLASS_DEFN)
75 #undef WK_KLASS_DEFN
76
77 ciSymbol* ciEnv::_unloaded_cisymbol = NULL;
78 ciInstanceKlass* ciEnv::_unloaded_ciinstance_klass = NULL;
79 ciObjArrayKlass* ciEnv::_unloaded_ciobjarrayklass = NULL;
80
81 jobject ciEnv::_ArrayIndexOutOfBoundsException_handle = NULL;
82 jobject ciEnv::_ArrayStoreException_handle = NULL;
83 jobject ciEnv::_ClassCastException_handle = NULL;
84
85 #ifndef PRODUCT
86 static bool firstEnv = true;
87 #endif /* PRODUCT */
88
89 // ------------------------------------------------------------------
90 // ciEnv::ciEnv
91 ciEnv::ciEnv(CompileTask* task, int system_dictionary_modification_counter, DirectiveSet* directive)
92 : _ciEnv_arena(mtCompiler) {
93 VM_ENTRY_MARK;
94
95 // Set up ciEnv::current immediately, for the sake of ciObjectFactory, etc.
96 thread->set_env(this);
97 assert(ciEnv::current() == this, "sanity");
98
99 _oop_recorder = NULL;
100 _debug_info = NULL;
101 _dependencies = NULL;
102 _failure_reason = NULL;
103 _compilable = MethodCompilable;
104 _break_at_compile = false;
105 _compiler_data = NULL;
106 _directive = directive;
107 #ifndef PRODUCT
108 assert(!firstEnv, "not initialized properly");
109 #endif /* !PRODUCT */
110
111 _system_dictionary_modification_counter = system_dictionary_modification_counter;
112 _num_inlined_bytecodes = 0;
113 assert(task == NULL || thread->task() == task, "sanity");
114 _task = task;
115 _log = NULL;
116
117 // Temporary buffer for creating symbols and such.
118 _name_buffer = NULL;
119 _name_buffer_len = 0;
120
121 _arena = &_ciEnv_arena;
122 _factory = new (_arena) ciObjectFactory(_arena, 128);
123
124 // Preload commonly referenced system ciObjects.
125
126 // During VM initialization, these instances have not yet been created.
|