comparison src/share/vm/oops/klass.hpp @ 11173:6b0fd0964b87

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 31 Jul 2013 11:00:54 +0200
parents 836a62f43af9 71180a6e5080
children 58fc8e2b7b6d
comparison
equal deleted inserted replaced
10912:4ea54634f03e 11173:6b0fd0964b87
77 // [modifier_flags] 77 // [modifier_flags]
78 // [access_flags ] 78 // [access_flags ]
79 // [last_biased_lock_bulk_revocation_time] (64 bits) 79 // [last_biased_lock_bulk_revocation_time] (64 bits)
80 // [prototype_header] 80 // [prototype_header]
81 // [biased_lock_revocation_count] 81 // [biased_lock_revocation_count]
82 // [alloc_count ]
83 // [_modified_oops] 82 // [_modified_oops]
84 // [_accumulated_modified_oops] 83 // [_accumulated_modified_oops]
85 // [trace_id] 84 // [trace_id]
86 85
87 86
170 // (the 64-bit chunk goes first, to avoid some fragmentation) 169 // (the 64-bit chunk goes first, to avoid some fragmentation)
171 jlong _last_biased_lock_bulk_revocation_time; 170 jlong _last_biased_lock_bulk_revocation_time;
172 markOop _prototype_header; // Used when biased locking is both enabled and disabled for this type 171 markOop _prototype_header; // Used when biased locking is both enabled and disabled for this type
173 jint _biased_lock_revocation_count; 172 jint _biased_lock_revocation_count;
174 173
175 juint _alloc_count; // allocation profiling support
176
177 TRACE_DEFINE_KLASS_TRACE_ID; 174 TRACE_DEFINE_KLASS_TRACE_ID;
178 175
179 // Remembered sets support for the oops in the klasses. 176 // Remembered sets support for the oops in the klasses.
180 jbyte _modified_oops; // Card Table Equivalent (YC/CMS support) 177 jbyte _modified_oops; // Card Table Equivalent (YC/CMS support)
181 jbyte _accumulated_modified_oops; // Mod Union Equivalent (CMS support) 178 jbyte _accumulated_modified_oops; // Mod Union Equivalent (CMS support)
289 Klass* next_sibling_oop() const { return _next_sibling; } 286 Klass* next_sibling_oop() const { return _next_sibling; }
290 void set_subklass(Klass* s); 287 void set_subklass(Klass* s);
291 void set_next_sibling(Klass* s); 288 void set_next_sibling(Klass* s);
292 289
293 public: 290 public:
294 // Allocation profiling support
295 juint alloc_count() const { return _alloc_count; }
296 void set_alloc_count(juint n) { _alloc_count = n; }
297 virtual juint alloc_size() const = 0;
298 virtual void set_alloc_size(juint n) = 0;
299 291
300 // Compiler support 292 // Compiler support
301 static ByteSize super_offset() { return in_ByteSize(offset_of(Klass, _super)); } 293 static ByteSize super_offset() { return in_ByteSize(offset_of(Klass, _super)); }
302 static ByteSize super_check_offset_offset() { return in_ByteSize(offset_of(Klass, _super_check_offset)); } 294 static ByteSize super_check_offset_offset() { return in_ByteSize(offset_of(Klass, _super_check_offset)); }
303 static ByteSize primary_supers_offset() { return in_ByteSize(offset_of(Klass, _primary_supers)); } 295 static ByteSize primary_supers_offset() { return in_ByteSize(offset_of(Klass, _primary_supers)); }
677 SPECIALIZED_OOP_OOP_ITERATE_CLOSURES_1(Klass_OOP_OOP_ITERATE_BACKWARDS_DECL) 669 SPECIALIZED_OOP_OOP_ITERATE_CLOSURES_1(Klass_OOP_OOP_ITERATE_BACKWARDS_DECL)
678 SPECIALIZED_OOP_OOP_ITERATE_CLOSURES_2(Klass_OOP_OOP_ITERATE_BACKWARDS_DECL) 670 SPECIALIZED_OOP_OOP_ITERATE_CLOSURES_2(Klass_OOP_OOP_ITERATE_BACKWARDS_DECL)
679 #endif // INCLUDE_ALL_GCS 671 #endif // INCLUDE_ALL_GCS
680 672
681 virtual void array_klasses_do(void f(Klass* k)) {} 673 virtual void array_klasses_do(void f(Klass* k)) {}
682 virtual void with_array_klasses_do(void f(Klass* k));
683 674
684 // Return self, except for abstract classes with exactly 1 675 // Return self, except for abstract classes with exactly 1
685 // implementor. Then return the 1 concrete implementation. 676 // implementor. Then return the 1 concrete implementation.
686 Klass *up_cast_abstract(); 677 Klass *up_cast_abstract();
687 678
703 virtual void oop_print_on (oop obj, outputStream* st); 694 virtual void oop_print_on (oop obj, outputStream* st);
704 695
705 virtual const char* internal_name() const = 0; 696 virtual const char* internal_name() const = 0;
706 697
707 // Verification 698 // Verification
708 virtual void verify_on(outputStream* st); 699 virtual void verify_on(outputStream* st, bool check_dictionary);
709 void verify() { verify_on(tty); } 700 void verify(bool check_dictionary = true) { verify_on(tty, check_dictionary); }
710 701
711 #ifndef PRODUCT 702 #ifndef PRODUCT
712 void verify_vtable_index(int index); 703 void verify_vtable_index(int index);
713 #endif 704 #endif
714 705