Mercurial > hg > graal-compiler
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 |