hotspot/src/share/vm/memory/universe.cpp
changeset 20011 d74937287461
parent 19546 f6b7c9e96ea3
child 20022 e6e3f5ff6d73
equal deleted inserted replaced
20010:c66a7254680c 20011:d74937287461
   600     java_lang_Throwable::fill_in_stack_trace_of_preallocated_backtrace(exc);
   600     java_lang_Throwable::fill_in_stack_trace_of_preallocated_backtrace(exc);
   601     return exc;
   601     return exc;
   602   }
   602   }
   603 }
   603 }
   604 
   604 
   605 static intptr_t non_oop_bits = 0;
   605 intptr_t Universe::_non_oop_bits = 0;
   606 
   606 
   607 void* Universe::non_oop_word() {
   607 void* Universe::non_oop_word() {
   608   // Neither the high bits nor the low bits of this value is allowed
   608   // Neither the high bits nor the low bits of this value is allowed
   609   // to look like (respectively) the high or low bits of a real oop.
   609   // to look like (respectively) the high or low bits of a real oop.
   610   //
   610   //
   614   // word will never look like that of a real oop.
   614   // word will never look like that of a real oop.
   615   //
   615   //
   616   // Using the OS-supplied non-memory-address word (usually 0 or -1)
   616   // Using the OS-supplied non-memory-address word (usually 0 or -1)
   617   // will take care of the high bits, however many there are.
   617   // will take care of the high bits, however many there are.
   618 
   618 
   619   if (non_oop_bits == 0) {
   619   if (_non_oop_bits == 0) {
   620     non_oop_bits = (intptr_t)os::non_memory_address_word() | 1;
   620     _non_oop_bits = (intptr_t)os::non_memory_address_word() | 1;
   621   }
   621   }
   622 
   622 
   623   return (void*)non_oop_bits;
   623   return (void*)_non_oop_bits;
   624 }
   624 }
   625 
   625 
   626 jint universe_init() {
   626 jint universe_init() {
   627   assert(!Universe::_fully_initialized, "called after initialize_vtables");
   627   assert(!Universe::_fully_initialized, "called after initialize_vtables");
   628   guarantee(1 << LogHeapWordSize == sizeof(HeapWord),
   628   guarantee(1 << LogHeapWordSize == sizeof(HeapWord),