< prev index next >

src/share/vm/oops/klass.hpp

Print this page
rev 12854 : [mq]: gcinterface.patch


 663   // Verification
 664   virtual void verify_on(outputStream* st);
 665   void verify() { verify_on(tty); }
 666 
 667 #ifndef PRODUCT
 668   bool verify_vtable_index(int index);
 669   bool verify_itable_index(int index);
 670 #endif
 671 
 672   virtual void oop_verify_on(oop obj, outputStream* st);
 673 
 674   static bool is_null(narrowKlass obj);
 675   static bool is_null(Klass* obj);
 676 
 677   // klass encoding for klass pointer in objects.
 678   static narrowKlass encode_klass_not_null(Klass* v);
 679   static narrowKlass encode_klass(Klass* v);
 680 
 681   static Klass* decode_klass_not_null(narrowKlass v);
 682   static Klass* decode_klass(narrowKlass v);
 683 
 684  private:
 685   // barriers used by klass_oop_store
 686   void klass_update_barrier_set(oop v);
 687   void klass_update_barrier_set_pre(oop* p, oop v);
 688 };
 689 
 690 // Helper to convert the oop iterate macro suffixes into bool values that can be used by template functions.
 691 #define nvs_nv_to_bool true
 692 #define nvs_v_to_bool  false
 693 #define nvs_to_bool(nv_suffix) nvs##nv_suffix##_to_bool
 694 
 695 // Oop iteration macros for declarations.
 696 // Used to generate declarations in the *Klass header files.
 697 
 698 #define OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix)                                    \
 699   void oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure);                        \
 700   void oop_oop_iterate_bounded##nv_suffix(oop obj, OopClosureType* closure, MemRegion mr);
 701 
 702 #if INCLUDE_ALL_GCS
 703 #define OOP_OOP_ITERATE_DECL_BACKWARDS(OopClosureType, nv_suffix)               \
 704   void oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure);
 705 #endif // INCLUDE_ALL_GCS
 706 
 707 




 663   // Verification
 664   virtual void verify_on(outputStream* st);
 665   void verify() { verify_on(tty); }
 666 
 667 #ifndef PRODUCT
 668   bool verify_vtable_index(int index);
 669   bool verify_itable_index(int index);
 670 #endif
 671 
 672   virtual void oop_verify_on(oop obj, outputStream* st);
 673 
 674   static bool is_null(narrowKlass obj);
 675   static bool is_null(Klass* obj);
 676 
 677   // klass encoding for klass pointer in objects.
 678   static narrowKlass encode_klass_not_null(Klass* v);
 679   static narrowKlass encode_klass(Klass* v);
 680 
 681   static Klass* decode_klass_not_null(narrowKlass v);
 682   static Klass* decode_klass(narrowKlass v);





 683 };
 684 
 685 // Helper to convert the oop iterate macro suffixes into bool values that can be used by template functions.
 686 #define nvs_nv_to_bool true
 687 #define nvs_v_to_bool  false
 688 #define nvs_to_bool(nv_suffix) nvs##nv_suffix##_to_bool
 689 
 690 // Oop iteration macros for declarations.
 691 // Used to generate declarations in the *Klass header files.
 692 
 693 #define OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix)                                    \
 694   void oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure);                        \
 695   void oop_oop_iterate_bounded##nv_suffix(oop obj, OopClosureType* closure, MemRegion mr);
 696 
 697 #if INCLUDE_ALL_GCS
 698 #define OOP_OOP_ITERATE_DECL_BACKWARDS(OopClosureType, nv_suffix)               \
 699   void oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure);
 700 #endif // INCLUDE_ALL_GCS
 701 
 702 


< prev index next >