231 static oop check_mirror(oop m) { 232 assert(m != NULL, "mirror not initialized"); 233 return m; 234 } 235 236 static void set_narrow_oop_base(address base) { 237 assert(UseCompressedOops, "no compressed oops?"); 238 _narrow_oop._base = base; 239 } 240 static void set_narrow_klass_base(address base) { 241 assert(UseCompressedClassPointers, "no compressed klass ptrs?"); 242 _narrow_klass._base = base; 243 } 244 static void set_narrow_oop_use_implicit_null_checks(bool use) { 245 assert(UseCompressedOops, "no compressed ptrs?"); 246 _narrow_oop._use_implicit_null_checks = use; 247 } 248 249 // Debugging 250 static int _verify_count; // number of verifies done 251 // True during call to verify(). Should only be set/cleared in verify(). 252 static bool _verify_in_progress; 253 254 static void compute_verify_oop_data(); 255 256 public: 257 // Known classes in the VM 258 static Klass* boolArrayKlassObj() { return _boolArrayKlassObj; } 259 static Klass* byteArrayKlassObj() { return _byteArrayKlassObj; } 260 static Klass* charArrayKlassObj() { return _charArrayKlassObj; } 261 static Klass* intArrayKlassObj() { return _intArrayKlassObj; } 262 static Klass* shortArrayKlassObj() { return _shortArrayKlassObj; } 263 static Klass* longArrayKlassObj() { return _longArrayKlassObj; } 264 static Klass* singleArrayKlassObj() { return _singleArrayKlassObj; } 265 static Klass* doubleArrayKlassObj() { return _doubleArrayKlassObj; } 266 267 static Klass* objectArrayKlassObj() { 268 return _objectArrayKlassObj; 269 } 270 271 static Klass* typeArrayKlassObj(BasicType t) { 272 assert((uint)t < T_VOID+1, err_msg("range check for type: %s", type2name(t))); 273 assert(_typeArrayKlassObjs[t] != NULL, "domain check"); | 231 static oop check_mirror(oop m) { 232 assert(m != NULL, "mirror not initialized"); 233 return m; 234 } 235 236 static void set_narrow_oop_base(address base) { 237 assert(UseCompressedOops, "no compressed oops?"); 238 _narrow_oop._base = base; 239 } 240 static void set_narrow_klass_base(address base) { 241 assert(UseCompressedClassPointers, "no compressed klass ptrs?"); 242 _narrow_klass._base = base; 243 } 244 static void set_narrow_oop_use_implicit_null_checks(bool use) { 245 assert(UseCompressedOops, "no compressed ptrs?"); 246 _narrow_oop._use_implicit_null_checks = use; 247 } 248 249 // Debugging 250 static int _verify_count; // number of verifies done 251 252 // True during call to verify(). Should only be set/cleared in verify(). 253 static bool _verify_in_progress; 254 255 static uintptr_t _verify_oop_mask; 256 static uintptr_t _verify_oop_bits; 257 258 static void calculate_verify_data(HeapWord* low_boundary, HeapWord* high_boundary) PRODUCT_RETURN; 259 static void compute_verify_oop_data(); 260 261 public: 262 // Known classes in the VM 263 static Klass* boolArrayKlassObj() { return _boolArrayKlassObj; } 264 static Klass* byteArrayKlassObj() { return _byteArrayKlassObj; } 265 static Klass* charArrayKlassObj() { return _charArrayKlassObj; } 266 static Klass* intArrayKlassObj() { return _intArrayKlassObj; } 267 static Klass* shortArrayKlassObj() { return _shortArrayKlassObj; } 268 static Klass* longArrayKlassObj() { return _longArrayKlassObj; } 269 static Klass* singleArrayKlassObj() { return _singleArrayKlassObj; } 270 static Klass* doubleArrayKlassObj() { return _doubleArrayKlassObj; } 271 272 static Klass* objectArrayKlassObj() { 273 return _objectArrayKlassObj; 274 } 275 276 static Klass* typeArrayKlassObj(BasicType t) { 277 assert((uint)t < T_VOID+1, err_msg("range check for type: %s", type2name(t))); 278 assert(_typeArrayKlassObjs[t] != NULL, "domain check"); |