682 public:
683 // jvm support
684 virtual jint compute_modifier_flags(TRAPS) const;
685
686 // JVMTI support
687 virtual jint jvmti_class_status() const;
688
689 // Printing
690 virtual void print_on(outputStream* st) const;
691
692 virtual void oop_print_value_on(oop obj, outputStream* st);
693 virtual void oop_print_on (oop obj, outputStream* st);
694
695 virtual const char* internal_name() const = 0;
696
697 // Verification
698 virtual void verify_on(outputStream* st, bool check_dictionary);
699 void verify(bool check_dictionary = true) { verify_on(tty, check_dictionary); }
700
701 #ifndef PRODUCT
702 void verify_vtable_index(int index);
703 #endif
704
705 virtual void oop_verify_on(oop obj, outputStream* st);
706
707 static bool is_null(narrowKlass obj);
708 static bool is_null(Klass* obj);
709
710 // klass encoding for klass pointer in objects.
711 static narrowKlass encode_klass_not_null(Klass* v);
712 static narrowKlass encode_klass(Klass* v);
713
714 static Klass* decode_klass_not_null(narrowKlass v);
715 static Klass* decode_klass(narrowKlass v);
716
717 private:
718 // barriers used by klass_oop_store
719 void klass_update_barrier_set(oop v);
720 void klass_update_barrier_set_pre(void* p, oop v);
721 };
722
|
682 public:
683 // jvm support
684 virtual jint compute_modifier_flags(TRAPS) const;
685
686 // JVMTI support
687 virtual jint jvmti_class_status() const;
688
689 // Printing
690 virtual void print_on(outputStream* st) const;
691
692 virtual void oop_print_value_on(oop obj, outputStream* st);
693 virtual void oop_print_on (oop obj, outputStream* st);
694
695 virtual const char* internal_name() const = 0;
696
697 // Verification
698 virtual void verify_on(outputStream* st, bool check_dictionary);
699 void verify(bool check_dictionary = true) { verify_on(tty, check_dictionary); }
700
701 #ifndef PRODUCT
702 bool verify_vtable_index(int index);
703 bool verify_itable_index(int index);
704 #endif
705
706 virtual void oop_verify_on(oop obj, outputStream* st);
707
708 static bool is_null(narrowKlass obj);
709 static bool is_null(Klass* obj);
710
711 // klass encoding for klass pointer in objects.
712 static narrowKlass encode_klass_not_null(Klass* v);
713 static narrowKlass encode_klass(Klass* v);
714
715 static Klass* decode_klass_not_null(narrowKlass v);
716 static Klass* decode_klass(narrowKlass v);
717
718 private:
719 // barriers used by klass_oop_store
720 void klass_update_barrier_set(oop v);
721 void klass_update_barrier_set_pre(void* p, oop v);
722 };
723
|