183 // the vm thread. |
183 // the vm thread. |
184 static oop _vm_exception; |
184 static oop _vm_exception; |
185 |
185 |
186 static oop _allocation_context_notification_obj; |
186 static oop _allocation_context_notification_obj; |
187 |
187 |
|
188 // References waiting to be transferred to the ReferenceHandler |
|
189 static oop _reference_pending_list; |
|
190 |
188 // The particular choice of collected heap. |
191 // The particular choice of collected heap. |
189 static CollectedHeap* _collectedHeap; |
192 static CollectedHeap* _collectedHeap; |
190 |
193 |
191 static intptr_t _non_oop_bits; |
194 static intptr_t _non_oop_bits; |
192 |
195 |
331 static oop virtual_machine_error_instance() { return _virtual_machine_error_instance; } |
334 static oop virtual_machine_error_instance() { return _virtual_machine_error_instance; } |
332 static oop vm_exception() { return _vm_exception; } |
335 static oop vm_exception() { return _vm_exception; } |
333 |
336 |
334 static inline oop allocation_context_notification_obj(); |
337 static inline oop allocation_context_notification_obj(); |
335 static inline void set_allocation_context_notification_obj(oop obj); |
338 static inline void set_allocation_context_notification_obj(oop obj); |
|
339 |
|
340 // Reference pending list manipulation. Access is protected by |
|
341 // Heap_lock. The getter, setter and predicate require the caller |
|
342 // owns the lock. Swap is used by parallel non-concurrent reference |
|
343 // processing threads, where some higher level controller owns |
|
344 // Heap_lock, so requires the lock is locked, but not necessarily by |
|
345 // the current thread. |
|
346 static oop reference_pending_list(); |
|
347 static void set_reference_pending_list(oop list); |
|
348 static bool has_reference_pending_list(); |
|
349 static oop swap_reference_pending_list(oop list); |
336 |
350 |
337 static Array<int>* the_empty_int_array() { return _the_empty_int_array; } |
351 static Array<int>* the_empty_int_array() { return _the_empty_int_array; } |
338 static Array<u2>* the_empty_short_array() { return _the_empty_short_array; } |
352 static Array<u2>* the_empty_short_array() { return _the_empty_short_array; } |
339 static Array<Method*>* the_empty_method_array() { return _the_empty_method_array; } |
353 static Array<Method*>* the_empty_method_array() { return _the_empty_method_array; } |
340 static Array<Klass*>* the_empty_klass_array() { return _the_empty_klass_array; } |
354 static Array<Klass*>* the_empty_klass_array() { return _the_empty_klass_array; } |