< prev index next >

src/hotspot/share/memory/universe.hpp

Print this page

103   static OopHandle    _main_thread_group;             // Reference to the main thread group object
104   static OopHandle    _system_thread_group;           // Reference to the system thread group object
105 
106   static OopHandle    _the_empty_class_array;         // Canonicalized obj array of type java.lang.Class
107   static OopHandle    _the_null_string;               // A cache of "null" as a Java string
108   static OopHandle    _the_min_jint_string;           // A cache of "-2147483648" as a Java string
109 
110   static OopHandle    _the_null_sentinel;             // A unique object pointer unused except as a sentinel for null.
111 
112   // preallocated error objects (no backtrace)
113   static OopHandle    _out_of_memory_errors;
114 
115   // preallocated cause message for delayed StackOverflowError
116   static OopHandle    _delayed_stack_overflow_error_message;
117 
118   static LatestMethodCache* _finalizer_register_cache; // static method for registering finalizable objects
119   static LatestMethodCache* _loader_addClass_cache;    // method for registering loaded classes in class loader vector
120   static LatestMethodCache* _throw_illegal_access_error_cache; // Unsafe.throwIllegalAccessError() method
121   static LatestMethodCache* _throw_no_such_method_error_cache; // Unsafe.throwNoSuchMethodError() method
122   static LatestMethodCache* _do_stack_walk_cache;      // method for stack walker callback


123 
124   static Array<int>*            _the_empty_int_array;            // Canonicalized int array
125   static Array<u2>*             _the_empty_short_array;          // Canonicalized short array
126   static Array<Klass*>*         _the_empty_klass_array;          // Canonicalized klass array
127   static Array<InstanceKlass*>* _the_empty_instance_klass_array; // Canonicalized instance klass array
128   static Array<Method*>*        _the_empty_method_array;         // Canonicalized method array
129 
130   static Array<Klass*>*  _the_array_interfaces_array;
131 
132   // array of preallocated error objects with backtrace
133   static OopHandle     _preallocated_out_of_memory_error_array;
134 
135   // number of preallocated error objects available for use
136   static volatile jint _preallocated_out_of_memory_error_avail_count;
137 
138   // preallocated message detail strings for error objects
139   static OopHandle _msg_metaspace;
140   static OopHandle _msg_class_metaspace;
141 
142   static OopHandle    _null_ptr_exception_instance;   // preallocated exception object
143   static OopHandle    _arithmetic_exception_instance; // preallocated exception object
144   static OopHandle    _virtual_machine_error_instance; // preallocated exception object
145 
146   // References waiting to be transferred to the ReferenceHandler
147   static OopHandle    _reference_pending_list;
148 
149   // The particular choice of collected heap.
150   static CollectedHeap* _collectedHeap;
151 
152   static intptr_t _non_oop_bits;
153 

154   // array of dummy objects used with +FullGCAlot
155   debug_only(static OopHandle   _fullgc_alot_dummy_array;)
156   debug_only(static int         _fullgc_alot_dummy_next;)
157 
158   // Compiler/dispatch support
159   static int  _base_vtable_size;                      // Java vtbl size of klass Object (in words)
160 
161   // Initialization
162   static bool _bootstrapping;                         // true during genesis
163   static bool _module_initialized;                    // true after call_initPhase2 called
164   static bool _fully_initialized;                     // true after universe_init and initialize_vtables called
165 
166   // the array of preallocated errors with backtraces
167   static objArrayOop  preallocated_out_of_memory_errors();
168 
169   static objArrayOop out_of_memory_errors();
170   // generate an out of memory error; if possible using an error with preallocated backtrace;
171   // otherwise return the given default error.
172   static oop        gen_out_of_memory_error(oop default_err);
173 

256 
257   static objArrayOop  the_empty_class_array ();
258 
259   static oop          the_null_string();
260   static oop          the_min_jint_string();
261 
262   static oop          null_ptr_exception_instance();
263   static oop          arithmetic_exception_instance();
264   static oop          virtual_machine_error_instance();
265   static oop          vm_exception()                  { return virtual_machine_error_instance(); }
266 
267   static Array<Klass*>* the_array_interfaces_array()  { return _the_array_interfaces_array;   }
268   static Method*      finalizer_register_method()     { return _finalizer_register_cache->get_method(); }
269   static Method*      loader_addClass_method()        { return _loader_addClass_cache->get_method(); }
270 
271   static Method*      throw_illegal_access_error()    { return _throw_illegal_access_error_cache->get_method(); }
272   static Method*      throw_no_such_method_error()    { return _throw_no_such_method_error_cache->get_method(); }
273 
274   static Method*      do_stack_walk_method()          { return _do_stack_walk_cache->get_method(); }
275 



276   static oop          the_null_sentinel();
277   static address      the_null_sentinel_addr()        { return (address) &_the_null_sentinel;  }
278 
279   // Function to initialize these
280   static void initialize_known_methods(TRAPS);
281 
282   static void create_preallocated_out_of_memory_errors(TRAPS);
283 
284   // Reference pending list manipulation.  Access is protected by
285   // Heap_lock.  The getter, setter and predicate require the caller
286   // owns the lock.  Swap is used by parallel non-concurrent reference
287   // processing threads, where some higher level controller owns
288   // Heap_lock, so requires the lock is locked, but not necessarily by
289   // the current thread.
290   static oop          reference_pending_list();
291   static void         clear_reference_pending_list();
292   static bool         has_reference_pending_list();
293   static oop          swap_reference_pending_list(oop list);
294 
295   static Array<int>*             the_empty_int_array()    { return _the_empty_int_array; }

103   static OopHandle    _main_thread_group;             // Reference to the main thread group object
104   static OopHandle    _system_thread_group;           // Reference to the system thread group object
105 
106   static OopHandle    _the_empty_class_array;         // Canonicalized obj array of type java.lang.Class
107   static OopHandle    _the_null_string;               // A cache of "null" as a Java string
108   static OopHandle    _the_min_jint_string;           // A cache of "-2147483648" as a Java string
109 
110   static OopHandle    _the_null_sentinel;             // A unique object pointer unused except as a sentinel for null.
111 
112   // preallocated error objects (no backtrace)
113   static OopHandle    _out_of_memory_errors;
114 
115   // preallocated cause message for delayed StackOverflowError
116   static OopHandle    _delayed_stack_overflow_error_message;
117 
118   static LatestMethodCache* _finalizer_register_cache; // static method for registering finalizable objects
119   static LatestMethodCache* _loader_addClass_cache;    // method for registering loaded classes in class loader vector
120   static LatestMethodCache* _throw_illegal_access_error_cache; // Unsafe.throwIllegalAccessError() method
121   static LatestMethodCache* _throw_no_such_method_error_cache; // Unsafe.throwNoSuchMethodError() method
122   static LatestMethodCache* _do_stack_walk_cache;      // method for stack walker callback
123   static LatestMethodCache* _is_substitutable_cache;   // ValueObjectMethods.isSubstitutable() method
124   static LatestMethodCache* _value_object_hash_code_cache;  // ValueObjectMethods.valueObjectHashCode() method
125 
126   static Array<int>*            _the_empty_int_array;            // Canonicalized int array
127   static Array<u2>*             _the_empty_short_array;          // Canonicalized short array
128   static Array<Klass*>*         _the_empty_klass_array;          // Canonicalized klass array
129   static Array<InstanceKlass*>* _the_empty_instance_klass_array; // Canonicalized instance klass array
130   static Array<Method*>*        _the_empty_method_array;         // Canonicalized method array
131 
132   static Array<Klass*>*  _the_array_interfaces_array;
133 
134   // array of preallocated error objects with backtrace
135   static OopHandle     _preallocated_out_of_memory_error_array;
136 
137   // number of preallocated error objects available for use
138   static volatile jint _preallocated_out_of_memory_error_avail_count;
139 
140   // preallocated message detail strings for error objects
141   static OopHandle _msg_metaspace;
142   static OopHandle _msg_class_metaspace;
143 
144   static OopHandle    _null_ptr_exception_instance;   // preallocated exception object
145   static OopHandle    _arithmetic_exception_instance; // preallocated exception object
146   static OopHandle    _virtual_machine_error_instance; // preallocated exception object
147 
148   // References waiting to be transferred to the ReferenceHandler
149   static OopHandle    _reference_pending_list;
150 
151   // The particular choice of collected heap.
152   static CollectedHeap* _collectedHeap;
153 
154   static intptr_t _non_oop_bits;
155 
156 
157   // array of dummy objects used with +FullGCAlot
158   debug_only(static OopHandle   _fullgc_alot_dummy_array;)
159   debug_only(static int         _fullgc_alot_dummy_next;)
160 
161   // Compiler/dispatch support
162   static int  _base_vtable_size;                      // Java vtbl size of klass Object (in words)
163 
164   // Initialization
165   static bool _bootstrapping;                         // true during genesis
166   static bool _module_initialized;                    // true after call_initPhase2 called
167   static bool _fully_initialized;                     // true after universe_init and initialize_vtables called
168 
169   // the array of preallocated errors with backtraces
170   static objArrayOop  preallocated_out_of_memory_errors();
171 
172   static objArrayOop out_of_memory_errors();
173   // generate an out of memory error; if possible using an error with preallocated backtrace;
174   // otherwise return the given default error.
175   static oop        gen_out_of_memory_error(oop default_err);
176 

259 
260   static objArrayOop  the_empty_class_array ();
261 
262   static oop          the_null_string();
263   static oop          the_min_jint_string();
264 
265   static oop          null_ptr_exception_instance();
266   static oop          arithmetic_exception_instance();
267   static oop          virtual_machine_error_instance();
268   static oop          vm_exception()                  { return virtual_machine_error_instance(); }
269 
270   static Array<Klass*>* the_array_interfaces_array()  { return _the_array_interfaces_array;   }
271   static Method*      finalizer_register_method()     { return _finalizer_register_cache->get_method(); }
272   static Method*      loader_addClass_method()        { return _loader_addClass_cache->get_method(); }
273 
274   static Method*      throw_illegal_access_error()    { return _throw_illegal_access_error_cache->get_method(); }
275   static Method*      throw_no_such_method_error()    { return _throw_no_such_method_error_cache->get_method(); }
276 
277   static Method*      do_stack_walk_method()          { return _do_stack_walk_cache->get_method(); }
278 
279   static Method*      is_substitutable_method()       { return _is_substitutable_cache->get_method(); }
280   static Method*      value_object_hash_code_method() { return _value_object_hash_code_cache->get_method(); }
281 
282   static oop          the_null_sentinel();
283   static address      the_null_sentinel_addr()        { return (address) &_the_null_sentinel;  }
284 
285   // Function to initialize these
286   static void initialize_known_methods(TRAPS);
287 
288   static void create_preallocated_out_of_memory_errors(TRAPS);
289 
290   // Reference pending list manipulation.  Access is protected by
291   // Heap_lock.  The getter, setter and predicate require the caller
292   // owns the lock.  Swap is used by parallel non-concurrent reference
293   // processing threads, where some higher level controller owns
294   // Heap_lock, so requires the lock is locked, but not necessarily by
295   // the current thread.
296   static oop          reference_pending_list();
297   static void         clear_reference_pending_list();
298   static bool         has_reference_pending_list();
299   static oop          swap_reference_pending_list(oop list);
300 
301   static Array<int>*             the_empty_int_array()    { return _the_empty_int_array; }
< prev index next >