comparison src/share/vm/oops/cpCacheKlass.hpp @ 542:9a25e0c45327

6792421: assert(_bitMap->isMarked(addr+size-1),inconsistent Printezis mark) Summary: The CMS concurrent precleaning and concurrent marking phases should work around classes that are undergoing redefinition. Reviewed-by: ysr, tonyp
author jmasa
date Sat, 31 Jan 2009 00:15:00 -0800
parents d1605aabd0a1
children 0fbdb4381b99
comparison
equal deleted inserted replaced
541:23673011938d 542:9a25e0c45327
30 int oop_size(oop obj) const; 30 int oop_size(oop obj) const;
31 int klass_oop_size() const { return object_size(); } 31 int klass_oop_size() const { return object_size(); }
32 32
33 // Allocation 33 // Allocation
34 DEFINE_ALLOCATE_PERMANENT(constantPoolCacheKlass); 34 DEFINE_ALLOCATE_PERMANENT(constantPoolCacheKlass);
35 constantPoolCacheOop allocate(int length, TRAPS); 35 constantPoolCacheOop allocate(int length, bool is_conc_safe, TRAPS);
36 static klassOop create_klass(TRAPS); 36 static klassOop create_klass(TRAPS);
37 37
38 // Casting from klassOop 38 // Casting from klassOop
39 static constantPoolCacheKlass* cast(klassOop k) { 39 static constantPoolCacheKlass* cast(klassOop k) {
40 assert(k->klass_part()->oop_is_constantPoolCache(), "cast to constantPoolCacheKlass"); 40 assert(k->klass_part()->oop_is_constantPoolCache(), "cast to constantPoolCacheKlass");
46 int object_size() const { return align_object_size(header_size()); } 46 int object_size() const { return align_object_size(header_size()); }
47 47
48 // Garbage collection 48 // Garbage collection
49 void oop_follow_contents(oop obj); 49 void oop_follow_contents(oop obj);
50 int oop_adjust_pointers(oop obj); 50 int oop_adjust_pointers(oop obj);
51 virtual bool oop_is_conc_safe(oop obj) const;
51 52
52 // Parallel Scavenge and Parallel Old 53 // Parallel Scavenge and Parallel Old
53 PARALLEL_GC_DECLS 54 PARALLEL_GC_DECLS
54 55
55 // Iterators 56 // Iterators