comparison src/share/vm/code/nmethod.hpp @ 1726:71faaa8e3ccc

6974176: ShouldNotReachHere, instanceKlass.cpp:1426 Reviewed-by: kvn, twisti
author never
date Thu, 12 Aug 2010 16:38:23 -0700
parents d2ede61b7a12
children 3e8fbc61cee8
comparison
equal deleted inserted replaced
1693:6c9cc03d8726 1726:71faaa8e3ccc
175 unsigned int _has_method_handle_invokes:1; // Has this method MethodHandle invokes? 175 unsigned int _has_method_handle_invokes:1; // Has this method MethodHandle invokes?
176 176
177 // Protected by Patching_lock 177 // Protected by Patching_lock
178 unsigned char _state; // {alive, not_entrant, zombie, unloaded) 178 unsigned char _state; // {alive, not_entrant, zombie, unloaded)
179 179
180 #ifdef ASSERT
181 bool _oops_are_stale; // indicates that it's no longer safe to access oops section
182 #endif
183
180 enum { alive = 0, 184 enum { alive = 0,
181 not_entrant = 1, // uncommon trap has happened but activations may still exist 185 not_entrant = 1, // uncommon trap has happened but activations may still exist
182 zombie = 2, 186 zombie = 2,
183 unloaded = 3 }; 187 unloaded = 3 };
184 188
432 // Note: index 0 is reserved for null. 436 // Note: index 0 is reserved for null.
433 oop oop_at(int index) const { return index == 0 ? (oop) NULL: *oop_addr_at(index); } 437 oop oop_at(int index) const { return index == 0 ? (oop) NULL: *oop_addr_at(index); }
434 oop* oop_addr_at(int index) const { // for GC 438 oop* oop_addr_at(int index) const { // for GC
435 // relocation indexes are biased by 1 (because 0 is reserved) 439 // relocation indexes are biased by 1 (because 0 is reserved)
436 assert(index > 0 && index <= oops_size(), "must be a valid non-zero index"); 440 assert(index > 0 && index <= oops_size(), "must be a valid non-zero index");
441 assert(!_oops_are_stale, "oops are stale");
437 return &oops_begin()[index - 1]; 442 return &oops_begin()[index - 1];
438 } 443 }
439 444
440 void copy_oops(GrowableArray<jobject>* oops); 445 void copy_oops(GrowableArray<jobject>* oops);
441 446