comparison src/share/vm/oops/constantPoolKlass.hpp @ 518:0af8b0718fc9

6692899: CMS: many vm.parallel_class_loading tests fail with assert "missing Printezis mark" Summary: The CMS concurrent precleaning and concurrent marking phases should work around classes that are undergoing redefinition. Reviewed-by: ysr, dcubed
author jmasa
date Sun, 11 Jan 2009 16:58:24 -0800
parents d1605aabd0a1
children 0fbdb4381b99
comparison
equal deleted inserted replaced
517:e9be0e04635a 518:0af8b0718fc9
32 int oop_size(oop obj) const; 32 int oop_size(oop obj) const;
33 int klass_oop_size() const { return object_size(); } 33 int klass_oop_size() const { return object_size(); }
34 34
35 // Allocation 35 // Allocation
36 DEFINE_ALLOCATE_PERMANENT(constantPoolKlass); 36 DEFINE_ALLOCATE_PERMANENT(constantPoolKlass);
37 constantPoolOop allocate(int length, TRAPS); 37 constantPoolOop allocate(int length, bool is_conc_safe, TRAPS);
38 static klassOop create_klass(TRAPS); 38 static klassOop create_klass(TRAPS);
39 39
40 // Casting from klassOop 40 // Casting from klassOop
41 static constantPoolKlass* cast(klassOop k) { 41 static constantPoolKlass* cast(klassOop k) {
42 assert(k->klass_part()->oop_is_constantPool(), "cast to constantPoolKlass"); 42 assert(k->klass_part()->oop_is_constantPool(), "cast to constantPoolKlass");
46 // Sizing 46 // Sizing
47 static int header_size() { return oopDesc::header_size() + sizeof(constantPoolKlass)/HeapWordSize; } 47 static int header_size() { return oopDesc::header_size() + sizeof(constantPoolKlass)/HeapWordSize; }
48 int object_size() const { return align_object_size(header_size()); } 48 int object_size() const { return align_object_size(header_size()); }
49 49
50 // Garbage collection 50 // Garbage collection
51 // Returns true is the object is safe for GC concurrent processing.
52 virtual bool oop_is_conc_safe(oop obj) const;
51 void oop_follow_contents(oop obj); 53 void oop_follow_contents(oop obj);
52 int oop_adjust_pointers(oop obj); 54 int oop_adjust_pointers(oop obj);
53 55
54 // Parallel Scavenge and Parallel Old 56 // Parallel Scavenge and Parallel Old
55 PARALLEL_GC_DECLS 57 PARALLEL_GC_DECLS