< prev index next >

src/hotspot/share/memory/universe.hpp

Print this page




 101   static oop _double_mirror;
 102   static oop _byte_mirror;
 103   static oop _bool_mirror;
 104   static oop _char_mirror;
 105   static oop _long_mirror;
 106   static oop _short_mirror;
 107   static oop _void_mirror;
 108 
 109   static oop          _main_thread_group;             // Reference to the main thread group object
 110   static oop          _system_thread_group;           // Reference to the system thread group object
 111 
 112   static objArrayOop  _the_empty_class_klass_array;   // Canonicalized obj array of type java.lang.Class
 113   static oop          _the_null_sentinel;             // A unique object pointer unused except as a sentinel for null.
 114   static oop          _the_null_string;               // A cache of "null" as a Java string
 115   static oop          _the_min_jint_string;          // A cache of "-2147483648" as a Java string
 116   static LatestMethodCache* _finalizer_register_cache; // static method for registering finalizable objects
 117   static LatestMethodCache* _loader_addClass_cache;    // method for registering loaded classes in class loader vector
 118   static LatestMethodCache* _throw_illegal_access_error_cache; // Unsafe.throwIllegalAccessError() method
 119   static LatestMethodCache* _throw_no_such_method_error_cache; // Unsafe.throwNoSuchMethodError() method
 120   static LatestMethodCache* _do_stack_walk_cache;      // method for stack walker callback

 121 
 122   // preallocated error objects (no backtrace)
 123   static oop          _out_of_memory_error_java_heap;
 124   static oop          _out_of_memory_error_metaspace;
 125   static oop          _out_of_memory_error_class_metaspace;
 126   static oop          _out_of_memory_error_array_size;
 127   static oop          _out_of_memory_error_gc_overhead_limit;
 128   static oop          _out_of_memory_error_realloc_objects;
 129   static oop          _out_of_memory_error_retry;
 130 
 131   // preallocated cause message for delayed StackOverflowError
 132   static oop          _delayed_stack_overflow_error_message;
 133 
 134   static Array<int>*            _the_empty_int_array;            // Canonicalized int array
 135   static Array<u2>*             _the_empty_short_array;          // Canonicalized short array
 136   static Array<Klass*>*         _the_empty_klass_array;          // Canonicalized klass array
 137   static Array<InstanceKlass*>* _the_empty_instance_klass_array; // Canonicalized instance klass array
 138   static Array<Method*>*        _the_empty_method_array;         // Canonicalized method array
 139 
 140   static Array<Klass*>*  _the_array_interfaces_array;


 143   static objArrayOop   _preallocated_out_of_memory_error_array;
 144 
 145   // number of preallocated error objects available for use
 146   static volatile jint _preallocated_out_of_memory_error_avail_count;
 147 
 148   static oop          _null_ptr_exception_instance;   // preallocated exception object
 149   static oop          _arithmetic_exception_instance; // preallocated exception object
 150   static oop          _virtual_machine_error_instance; // preallocated exception object
 151   // The object used as an exception dummy when exceptions are thrown for
 152   // the vm thread.
 153   static oop          _vm_exception;
 154 
 155   // References waiting to be transferred to the ReferenceHandler
 156   static oop          _reference_pending_list;
 157 
 158   // The particular choice of collected heap.
 159   static CollectedHeap* _collectedHeap;
 160 
 161   static intptr_t _non_oop_bits;
 162 

 163   // array of dummy objects used with +FullGCAlot
 164   debug_only(static objArrayOop _fullgc_alot_dummy_array;)
 165   // index of next entry to clear
 166   debug_only(static int         _fullgc_alot_dummy_next;)
 167 
 168   // Compiler/dispatch support
 169   static int  _base_vtable_size;                      // Java vtbl size of klass Object (in words)
 170 
 171   // Initialization
 172   static bool _bootstrapping;                         // true during genesis
 173   static bool _module_initialized;                    // true after call_initPhase2 called
 174   static bool _fully_initialized;                     // true after universe_init and initialize_vtables called
 175 
 176   // the array of preallocated errors with backtraces
 177   static objArrayOop  preallocated_out_of_memory_errors()     { return _preallocated_out_of_memory_error_array; }
 178 
 179   // generate an out of memory error; if possible using an error with preallocated backtrace;
 180   // otherwise return the given default error.
 181   static oop        gen_out_of_memory_error(oop default_err);
 182 


 263     return check_mirror(_mirrors[t]);
 264   }
 265   static oop      main_thread_group()                 { return _main_thread_group; }
 266   static void set_main_thread_group(oop group)        { _main_thread_group = group;}
 267 
 268   static oop      system_thread_group()               { return _system_thread_group; }
 269   static void set_system_thread_group(oop group)      { _system_thread_group = group;}
 270 
 271   static objArrayOop  the_empty_class_klass_array ()  { return _the_empty_class_klass_array;   }
 272   static Array<Klass*>* the_array_interfaces_array() { return _the_array_interfaces_array;   }
 273   static oop          the_null_string()               { return _the_null_string;               }
 274   static oop          the_min_jint_string()          { return _the_min_jint_string;          }
 275 
 276   static Method*      finalizer_register_method()     { return _finalizer_register_cache->get_method(); }
 277   static Method*      loader_addClass_method()        { return _loader_addClass_cache->get_method(); }
 278 
 279   static Method*      throw_illegal_access_error()    { return _throw_illegal_access_error_cache->get_method(); }
 280   static Method*      throw_no_such_method_error()    { return _throw_no_such_method_error_cache->get_method(); }
 281 
 282   static Method*      do_stack_walk_method()          { return _do_stack_walk_cache->get_method(); }


 283 
 284   static oop          the_null_sentinel()             { return _the_null_sentinel;             }
 285   static address      the_null_sentinel_addr()        { return (address) &_the_null_sentinel;  }
 286 
 287   // Function to initialize these
 288   static void initialize_known_methods(TRAPS);
 289 
 290   static oop          null_ptr_exception_instance()   { return _null_ptr_exception_instance;   }
 291   static oop          arithmetic_exception_instance() { return _arithmetic_exception_instance; }
 292   static oop          virtual_machine_error_instance() { return _virtual_machine_error_instance; }
 293   static oop          vm_exception()                  { return _vm_exception; }
 294 
 295   // Reference pending list manipulation.  Access is protected by
 296   // Heap_lock.  The getter, setter and predicate require the caller
 297   // owns the lock.  Swap is used by parallel non-concurrent reference
 298   // processing threads, where some higher level controller owns
 299   // Heap_lock, so requires the lock is locked, but not necessarily by
 300   // the current thread.
 301   static oop          reference_pending_list();
 302   static void         set_reference_pending_list(oop list);




 101   static oop _double_mirror;
 102   static oop _byte_mirror;
 103   static oop _bool_mirror;
 104   static oop _char_mirror;
 105   static oop _long_mirror;
 106   static oop _short_mirror;
 107   static oop _void_mirror;
 108 
 109   static oop          _main_thread_group;             // Reference to the main thread group object
 110   static oop          _system_thread_group;           // Reference to the system thread group object
 111 
 112   static objArrayOop  _the_empty_class_klass_array;   // Canonicalized obj array of type java.lang.Class
 113   static oop          _the_null_sentinel;             // A unique object pointer unused except as a sentinel for null.
 114   static oop          _the_null_string;               // A cache of "null" as a Java string
 115   static oop          _the_min_jint_string;          // A cache of "-2147483648" as a Java string
 116   static LatestMethodCache* _finalizer_register_cache; // static method for registering finalizable objects
 117   static LatestMethodCache* _loader_addClass_cache;    // method for registering loaded classes in class loader vector
 118   static LatestMethodCache* _throw_illegal_access_error_cache; // Unsafe.throwIllegalAccessError() method
 119   static LatestMethodCache* _throw_no_such_method_error_cache; // Unsafe.throwNoSuchMethodError() method
 120   static LatestMethodCache* _do_stack_walk_cache;      // method for stack walker callback
 121   static LatestMethodCache* _is_substitutable_cache;   // ValueBootstrapMethods.isSubstitutable() method
 122 
 123   // preallocated error objects (no backtrace)
 124   static oop          _out_of_memory_error_java_heap;
 125   static oop          _out_of_memory_error_metaspace;
 126   static oop          _out_of_memory_error_class_metaspace;
 127   static oop          _out_of_memory_error_array_size;
 128   static oop          _out_of_memory_error_gc_overhead_limit;
 129   static oop          _out_of_memory_error_realloc_objects;
 130   static oop          _out_of_memory_error_retry;
 131 
 132   // preallocated cause message for delayed StackOverflowError
 133   static oop          _delayed_stack_overflow_error_message;
 134 
 135   static Array<int>*            _the_empty_int_array;            // Canonicalized int array
 136   static Array<u2>*             _the_empty_short_array;          // Canonicalized short array
 137   static Array<Klass*>*         _the_empty_klass_array;          // Canonicalized klass array
 138   static Array<InstanceKlass*>* _the_empty_instance_klass_array; // Canonicalized instance klass array
 139   static Array<Method*>*        _the_empty_method_array;         // Canonicalized method array
 140 
 141   static Array<Klass*>*  _the_array_interfaces_array;


 144   static objArrayOop   _preallocated_out_of_memory_error_array;
 145 
 146   // number of preallocated error objects available for use
 147   static volatile jint _preallocated_out_of_memory_error_avail_count;
 148 
 149   static oop          _null_ptr_exception_instance;   // preallocated exception object
 150   static oop          _arithmetic_exception_instance; // preallocated exception object
 151   static oop          _virtual_machine_error_instance; // preallocated exception object
 152   // The object used as an exception dummy when exceptions are thrown for
 153   // the vm thread.
 154   static oop          _vm_exception;
 155 
 156   // References waiting to be transferred to the ReferenceHandler
 157   static oop          _reference_pending_list;
 158 
 159   // The particular choice of collected heap.
 160   static CollectedHeap* _collectedHeap;
 161 
 162   static intptr_t _non_oop_bits;
 163 
 164 
 165   // array of dummy objects used with +FullGCAlot
 166   debug_only(static objArrayOop _fullgc_alot_dummy_array;)
 167   // index of next entry to clear
 168   debug_only(static int         _fullgc_alot_dummy_next;)
 169 
 170   // Compiler/dispatch support
 171   static int  _base_vtable_size;                      // Java vtbl size of klass Object (in words)
 172 
 173   // Initialization
 174   static bool _bootstrapping;                         // true during genesis
 175   static bool _module_initialized;                    // true after call_initPhase2 called
 176   static bool _fully_initialized;                     // true after universe_init and initialize_vtables called
 177 
 178   // the array of preallocated errors with backtraces
 179   static objArrayOop  preallocated_out_of_memory_errors()     { return _preallocated_out_of_memory_error_array; }
 180 
 181   // generate an out of memory error; if possible using an error with preallocated backtrace;
 182   // otherwise return the given default error.
 183   static oop        gen_out_of_memory_error(oop default_err);
 184 


 265     return check_mirror(_mirrors[t]);
 266   }
 267   static oop      main_thread_group()                 { return _main_thread_group; }
 268   static void set_main_thread_group(oop group)        { _main_thread_group = group;}
 269 
 270   static oop      system_thread_group()               { return _system_thread_group; }
 271   static void set_system_thread_group(oop group)      { _system_thread_group = group;}
 272 
 273   static objArrayOop  the_empty_class_klass_array ()  { return _the_empty_class_klass_array;   }
 274   static Array<Klass*>* the_array_interfaces_array() { return _the_array_interfaces_array;   }
 275   static oop          the_null_string()               { return _the_null_string;               }
 276   static oop          the_min_jint_string()          { return _the_min_jint_string;          }
 277 
 278   static Method*      finalizer_register_method()     { return _finalizer_register_cache->get_method(); }
 279   static Method*      loader_addClass_method()        { return _loader_addClass_cache->get_method(); }
 280 
 281   static Method*      throw_illegal_access_error()    { return _throw_illegal_access_error_cache->get_method(); }
 282   static Method*      throw_no_such_method_error()    { return _throw_no_such_method_error_cache->get_method(); }
 283 
 284   static Method*      do_stack_walk_method()          { return _do_stack_walk_cache->get_method(); }
 285 
 286   static Method*      is_substitutable_method()       { return _is_substitutable_cache->get_method(); }
 287 
 288   static oop          the_null_sentinel()             { return _the_null_sentinel;             }
 289   static address      the_null_sentinel_addr()        { return (address) &_the_null_sentinel;  }
 290 
 291   // Function to initialize these
 292   static void initialize_known_methods(TRAPS);
 293 
 294   static oop          null_ptr_exception_instance()   { return _null_ptr_exception_instance;   }
 295   static oop          arithmetic_exception_instance() { return _arithmetic_exception_instance; }
 296   static oop          virtual_machine_error_instance() { return _virtual_machine_error_instance; }
 297   static oop          vm_exception()                  { return _vm_exception; }
 298 
 299   // Reference pending list manipulation.  Access is protected by
 300   // Heap_lock.  The getter, setter and predicate require the caller
 301   // owns the lock.  Swap is used by parallel non-concurrent reference
 302   // processing threads, where some higher level controller owns
 303   // Heap_lock, so requires the lock is locked, but not necessarily by
 304   // the current thread.
 305   static oop          reference_pending_list();
 306   static void         set_reference_pending_list(oop list);


< prev index next >