Mercurial > hg > graal-compiler
comparison src/share/vm/oops/klass.hpp @ 2181:d25d4ca69222
Merge.
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Wed, 16 Feb 2011 13:47:20 +0100 |
parents | 06f017f7daa7 3582bf76420e |
children | 0654ee04b214 |
comparison
equal
deleted
inserted
replaced
2108:50b45e2d9725 | 2181:d25d4ca69222 |
---|---|
210 // | 210 // |
211 // Where to look to observe a supertype (it is &_secondary_super_cache for | 211 // Where to look to observe a supertype (it is &_secondary_super_cache for |
212 // secondary supers, else is &_primary_supers[depth()]. | 212 // secondary supers, else is &_primary_supers[depth()]. |
213 juint _super_check_offset; | 213 juint _super_check_offset; |
214 | 214 |
215 // Class name. Instance classes: java/lang/String, etc. Array classes: [I, | |
216 // [Ljava/lang/String;, etc. Set to zero for all other kinds of classes. | |
217 Symbol* _name; | |
218 | |
215 public: | 219 public: |
216 oop* oop_block_beg() const { return adr_secondary_super_cache(); } | 220 oop* oop_block_beg() const { return adr_secondary_super_cache(); } |
217 oop* oop_block_end() const { return adr_next_sibling() + 1; } | 221 oop* oop_block_end() const { return adr_next_sibling() + 1; } |
218 | 222 |
219 protected: | 223 protected: |
235 oop _java_mirror; | 239 oop _java_mirror; |
236 // com/sun/hotspot/c1x/HotSpotTypeResolved mirroring this class | 240 // com/sun/hotspot/c1x/HotSpotTypeResolved mirroring this class |
237 oop _c1x_mirror; | 241 oop _c1x_mirror; |
238 // Superclass | 242 // Superclass |
239 klassOop _super; | 243 klassOop _super; |
240 // Class name. Instance classes: java/lang/String, etc. Array classes: [I, | |
241 // [Ljava/lang/String;, etc. Set to zero for all other kinds of classes. | |
242 symbolOop _name; | |
243 // First subclass (NULL if none); _subklass->next_sibling() is next one | 244 // First subclass (NULL if none); _subklass->next_sibling() is next one |
244 klassOop _subklass; | 245 klassOop _subklass; |
245 // Sibling link (or NULL); links all subklasses of a klass | 246 // Sibling link (or NULL); links all subklasses of a klass |
246 klassOop _next_sibling; | 247 klassOop _next_sibling; |
247 | 248 |
366 oop* adr_primary_supers() const { return (oop*)&_primary_supers[0]; } | 367 oop* adr_primary_supers() const { return (oop*)&_primary_supers[0]; } |
367 oop* adr_secondary_super_cache() const { return (oop*)&_secondary_super_cache; } | 368 oop* adr_secondary_super_cache() const { return (oop*)&_secondary_super_cache; } |
368 oop* adr_secondary_supers()const { return (oop*)&_secondary_supers; } | 369 oop* adr_secondary_supers()const { return (oop*)&_secondary_supers; } |
369 oop* adr_java_mirror() const { return (oop*)&_java_mirror; } | 370 oop* adr_java_mirror() const { return (oop*)&_java_mirror; } |
370 oop* adr_c1x_mirror() const { return (oop*)&_c1x_mirror; } | 371 oop* adr_c1x_mirror() const { return (oop*)&_c1x_mirror; } |
371 oop* adr_name() const { return (oop*)&_name; } | |
372 oop* adr_subklass() const { return (oop*)&_subklass; } | 372 oop* adr_subklass() const { return (oop*)&_subklass; } |
373 oop* adr_next_sibling() const { return (oop*)&_next_sibling; } | 373 oop* adr_next_sibling() const { return (oop*)&_next_sibling; } |
374 | 374 |
375 public: | 375 public: |
376 // Allocation profiling support | 376 // Allocation profiling support |
516 virtual bool should_be_initialized() const { return false; } | 516 virtual bool should_be_initialized() const { return false; } |
517 // initializes the klass | 517 // initializes the klass |
518 virtual void initialize(TRAPS); | 518 virtual void initialize(TRAPS); |
519 // lookup operation for MethodLookupCache | 519 // lookup operation for MethodLookupCache |
520 friend class MethodLookupCache; | 520 friend class MethodLookupCache; |
521 virtual methodOop uncached_lookup_method(symbolOop name, symbolOop signature) const; | 521 virtual methodOop uncached_lookup_method(Symbol* name, Symbol* signature) const; |
522 public: | 522 public: |
523 methodOop lookup_method(symbolOop name, symbolOop signature) const { | 523 methodOop lookup_method(Symbol* name, Symbol* signature) const { |
524 return uncached_lookup_method(name, signature); | 524 return uncached_lookup_method(name, signature); |
525 } | 525 } |
526 | 526 |
527 // array class with specific rank | 527 // array class with specific rank |
528 klassOop array_klass(int rank, TRAPS) { return array_klass_impl(false, rank, THREAD); } | 528 klassOop array_klass(int rank, TRAPS) { return array_klass_impl(false, rank, THREAD); } |
542 virtual klassOop array_klass_impl(bool or_null, int rank, TRAPS); | 542 virtual klassOop array_klass_impl(bool or_null, int rank, TRAPS); |
543 virtual klassOop array_klass_impl(bool or_null, TRAPS); | 543 virtual klassOop array_klass_impl(bool or_null, TRAPS); |
544 | 544 |
545 public: | 545 public: |
546 virtual void remove_unshareable_info(); | 546 virtual void remove_unshareable_info(); |
547 virtual void shared_symbols_iterate(SymbolClosure* closure); | |
547 | 548 |
548 protected: | 549 protected: |
549 // computes the subtype relationship | 550 // computes the subtype relationship |
550 virtual bool compute_is_subtype_of(klassOop k); | 551 virtual bool compute_is_subtype_of(klassOop k); |
551 public: | 552 public: |
584 // type testing operations | 585 // type testing operations |
585 virtual bool oop_is_instance_slow() const { return false; } | 586 virtual bool oop_is_instance_slow() const { return false; } |
586 virtual bool oop_is_instanceRef() const { return false; } | 587 virtual bool oop_is_instanceRef() const { return false; } |
587 virtual bool oop_is_array() const { return false; } | 588 virtual bool oop_is_array() const { return false; } |
588 virtual bool oop_is_objArray_slow() const { return false; } | 589 virtual bool oop_is_objArray_slow() const { return false; } |
589 virtual bool oop_is_symbol() const { return false; } | |
590 virtual bool oop_is_klass() const { return false; } | 590 virtual bool oop_is_klass() const { return false; } |
591 virtual bool oop_is_thread() const { return false; } | 591 virtual bool oop_is_thread() const { return false; } |
592 virtual bool oop_is_method() const { return false; } | 592 virtual bool oop_is_method() const { return false; } |
593 virtual bool oop_is_constMethod() const { return false; } | 593 virtual bool oop_is_constMethod() const { return false; } |
594 virtual bool oop_is_methodData() const { return false; } | 594 virtual bool oop_is_methodData() const { return false; } |
786 // Return self, except for abstract classes with exactly 1 | 786 // Return self, except for abstract classes with exactly 1 |
787 // implementor. Then return the 1 concrete implementation. | 787 // implementor. Then return the 1 concrete implementation. |
788 Klass *up_cast_abstract(); | 788 Klass *up_cast_abstract(); |
789 | 789 |
790 // klass name | 790 // klass name |
791 symbolOop name() const { return _name; } | 791 Symbol* name() const { return _name; } |
792 void set_name(symbolOop n) { oop_store_without_check((oop*) &_name, (oop) n); } | 792 void set_name(Symbol* n); |
793 | 793 |
794 friend class klassKlass; | 794 friend class klassKlass; |
795 | 795 |
796 public: | 796 public: |
797 // jvm support | 797 // jvm support |