Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/cpCacheKlass.hpp @ 2226:c5a923563727
6912621: iCMS: Error: assert(_markBitMap.isMarked(addr + 1),"Missing Printezis bit?")
Summary: Fix block_size_if_printezis_bits() so it does not expect the bits, only uses them when available. Fix block_size_no_stall() so it does not stall when the bits are missing such cases, letting the caller deal with zero size returns. Constant pool cache oops do not need to be unparsable or conc_unsafe after their klass pointer is installed. Some cosmetic clean-ups and some assertion checking for conc-usafety which, in the presence of class file redefinition, has no a-priori time boundedness, so all GCs must be able to safely deal with putatively conc-unsafe objects in a stop-world pause.
Reviewed-by: jmasa, johnc
author | ysr |
---|---|
date | Mon, 07 Feb 2011 22:19:57 -0800 |
parents | f95d63e2154a |
children | 1d1603768966 |
comparison
equal
deleted
inserted
replaced
2225:c798c277ddd1 | 2226:c5a923563727 |
---|---|
37 int oop_size(oop obj) const; | 37 int oop_size(oop obj) const; |
38 int klass_oop_size() const { return object_size(); } | 38 int klass_oop_size() const { return object_size(); } |
39 | 39 |
40 // Allocation | 40 // Allocation |
41 DEFINE_ALLOCATE_PERMANENT(constantPoolCacheKlass); | 41 DEFINE_ALLOCATE_PERMANENT(constantPoolCacheKlass); |
42 constantPoolCacheOop allocate(int length, bool is_conc_safe, TRAPS); | 42 constantPoolCacheOop allocate(int length, TRAPS); |
43 static klassOop create_klass(TRAPS); | 43 static klassOop create_klass(TRAPS); |
44 | 44 |
45 // Casting from klassOop | 45 // Casting from klassOop |
46 static constantPoolCacheKlass* cast(klassOop k) { | 46 static constantPoolCacheKlass* cast(klassOop k) { |
47 assert(k->klass_part()->oop_is_constantPoolCache(), "cast to constantPoolCacheKlass"); | 47 assert(k->klass_part()->oop_is_constantPoolCache(), "cast to constantPoolCacheKlass"); |
53 int object_size() const { return align_object_size(header_size()); } | 53 int object_size() const { return align_object_size(header_size()); } |
54 | 54 |
55 // Garbage collection | 55 // Garbage collection |
56 void oop_follow_contents(oop obj); | 56 void oop_follow_contents(oop obj); |
57 int oop_adjust_pointers(oop obj); | 57 int oop_adjust_pointers(oop obj); |
58 virtual bool oop_is_conc_safe(oop obj) const; | |
59 | 58 |
60 // Parallel Scavenge and Parallel Old | 59 // Parallel Scavenge and Parallel Old |
61 PARALLEL_GC_DECLS | 60 PARALLEL_GC_DECLS |
62 | 61 |
63 // Iterators | 62 // Iterators |