< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page




 657   // unloading, and hence during concurrent class unloading.
 658   bool is_loader_alive() const { return class_loader_data()->is_alive(); }
 659 
 660   void clean_subklass();
 661 
 662   static void clean_weak_klass_links(bool unloading_occurred, bool clean_alive_klasses = true);
 663   static void clean_subklass_tree() {
 664     clean_weak_klass_links(/*unloading_occurred*/ true , /* clean_alive_klasses */ false);
 665   }
 666 
 667   virtual void array_klasses_do(void f(Klass* k)) {}
 668 
 669   // Return self, except for abstract classes with exactly 1
 670   // implementor.  Then return the 1 concrete implementation.
 671   Klass *up_cast_abstract();
 672 
 673   // klass name
 674   Symbol* name() const                   { return _name; }
 675   void set_name(Symbol* n);
 676 


 677  public:
 678   // jvm support
 679   virtual jint compute_modifier_flags(TRAPS) const;
 680 
 681   // JVMTI support
 682   virtual jint jvmti_class_status() const;
 683 
 684   // Printing
 685   virtual void print_on(outputStream* st) const;
 686 
 687   virtual void oop_print_value_on(oop obj, outputStream* st);
 688   virtual void oop_print_on      (oop obj, outputStream* st);
 689 
 690   virtual const char* internal_name() const = 0;
 691 
 692   // Verification
 693   virtual void verify_on(outputStream* st);
 694   void verify() { verify_on(tty); }
 695 
 696 #ifndef PRODUCT


 657   // unloading, and hence during concurrent class unloading.
 658   bool is_loader_alive() const { return class_loader_data()->is_alive(); }
 659 
 660   void clean_subklass();
 661 
 662   static void clean_weak_klass_links(bool unloading_occurred, bool clean_alive_klasses = true);
 663   static void clean_subklass_tree() {
 664     clean_weak_klass_links(/*unloading_occurred*/ true , /* clean_alive_klasses */ false);
 665   }
 666 
 667   virtual void array_klasses_do(void f(Klass* k)) {}
 668 
 669   // Return self, except for abstract classes with exactly 1
 670   // implementor.  Then return the 1 concrete implementation.
 671   Klass *up_cast_abstract();
 672 
 673   // klass name
 674   Symbol* name() const                   { return _name; }
 675   void set_name(Symbol* n);
 676 
 677   virtual void release_C_heap_structures();
 678 
 679  public:
 680   // jvm support
 681   virtual jint compute_modifier_flags(TRAPS) const;
 682 
 683   // JVMTI support
 684   virtual jint jvmti_class_status() const;
 685 
 686   // Printing
 687   virtual void print_on(outputStream* st) const;
 688 
 689   virtual void oop_print_value_on(oop obj, outputStream* st);
 690   virtual void oop_print_on      (oop obj, outputStream* st);
 691 
 692   virtual const char* internal_name() const = 0;
 693 
 694   // Verification
 695   virtual void verify_on(outputStream* st);
 696   void verify() { verify_on(tty); }
 697 
 698 #ifndef PRODUCT
< prev index next >