< 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 

246 
247   static objArrayOop  the_empty_class_array ();
248 
249   static oop          the_null_string();
250   static oop          the_min_jint_string();
251 
252   static oop          null_ptr_exception_instance();
253   static oop          arithmetic_exception_instance();
254   static oop          virtual_machine_error_instance();
255   static oop          vm_exception()                  { return virtual_machine_error_instance(); }
256 
257   static Array<Klass*>* the_array_interfaces_array()  { return _the_array_interfaces_array;   }
258   static Method*      finalizer_register_method()     { return _finalizer_register_cache->get_method(); }
259   static Method*      loader_addClass_method()        { return _loader_addClass_cache->get_method(); }
260 
261   static Method*      throw_illegal_access_error()    { return _throw_illegal_access_error_cache->get_method(); }
262   static Method*      throw_no_such_method_error()    { return _throw_no_such_method_error_cache->get_method(); }
263 
264   static Method*      do_stack_walk_method()          { return _do_stack_walk_cache->get_method(); }
265 



266   static oop          the_null_sentinel();
267   static address      the_null_sentinel_addr()        { return (address) &_the_null_sentinel;  }
268 
269   // Function to initialize these
270   static void initialize_known_methods(TRAPS);
271 
272   static void create_preallocated_out_of_memory_errors(TRAPS);
273 
274   // Reference pending list manipulation.  Access is protected by
275   // Heap_lock.  The getter, setter and predicate require the caller
276   // owns the lock.  Swap is used by parallel non-concurrent reference
277   // processing threads, where some higher level controller owns
278   // Heap_lock, so requires the lock is locked, but not necessarily by
279   // the current thread.
280   static oop          reference_pending_list();
281   static void         clear_reference_pending_list();
282   static bool         has_reference_pending_list();
283   static oop          swap_reference_pending_list(oop list);
284 
285   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;   // PrimitiveObjectMethods.isSubstitutable() method
124   static LatestMethodCache* _primitive_type_hash_code_cache;  // PrimitiveObjectMethods.primitiveObjectHashCode() 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 

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