< prev index next >

src/share/vm/oops/instanceKlass.hpp

Print this page
rev 7183 : autospecialized oop_iterate using SFINAE and templates


 936                                  Array<Method*>* methods);
 937   void static deallocate_interfaces(ClassLoaderData* loader_data,
 938                                     Klass* super_klass,
 939                                     Array<Klass*>* local_interfaces,
 940                                     Array<Klass*>* transitive_interfaces);
 941 
 942   // The constant pool is on stack if any of the methods are executing or
 943   // referenced by handles.
 944   bool on_stack() const { return _constants->on_stack(); }
 945 
 946   // callbacks for actions during class unloading
 947   static void notify_unload_class(InstanceKlass* ik);
 948   static void release_C_heap_structures(InstanceKlass* ik);
 949 
 950   // Parallel Scavenge and Parallel Old
 951   PARALLEL_GC_DECLS
 952 
 953   // Naming
 954   const char* signature_name() const;
 955 















 956   // Iterators
 957   int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) {
 958     return oop_oop_iterate_v(obj, blk);
 959   }
 960 
 961   int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr) {
 962     return oop_oop_iterate_v_m(obj, blk, mr);
 963   }
 964 
 965 #define InstanceKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix)      \
 966   int  oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk);           \
 967   int  oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk,        \
 968                                       MemRegion mr);
 969 
 970   ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceKlass_OOP_OOP_ITERATE_DECL)
 971   ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceKlass_OOP_OOP_ITERATE_DECL)
 972 
 973 #if INCLUDE_ALL_GCS
 974 #define InstanceKlass_OOP_OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix) \
 975   int  oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* blk);




 936                                  Array<Method*>* methods);
 937   void static deallocate_interfaces(ClassLoaderData* loader_data,
 938                                     Klass* super_klass,
 939                                     Array<Klass*>* local_interfaces,
 940                                     Array<Klass*>* transitive_interfaces);
 941 
 942   // The constant pool is on stack if any of the methods are executing or
 943   // referenced by handles.
 944   bool on_stack() const { return _constants->on_stack(); }
 945 
 946   // callbacks for actions during class unloading
 947   static void notify_unload_class(InstanceKlass* ik);
 948   static void release_C_heap_structures(InstanceKlass* ik);
 949 
 950   // Parallel Scavenge and Parallel Old
 951   PARALLEL_GC_DECLS
 952 
 953   // Naming
 954   const char* signature_name() const;
 955 
 956 protected:
 957   template <class T> static void assert_is_in(T *p); 
 958   template <class T> static void assert_is_in_closed_subset(T *p); 
 959   template <class T> static void assert_is_in_reserved(T *p); 
 960   template <class T> static void assert_nothing(T *p); 
 961 
 962   template<class OopType, class OopClosureType>
 963   void oop_iterate_and_dispatch_helper(oop obj, OopClosureType *closure, OopType *start, int count); 
 964 
 965 public:
 966   template <class OopClosureType>
 967   int oop_iterate_and_dispatch(oop obj, OopClosureType *closure); 
 968 
 969   int get_linear_oop_intervals(oop obj, OopInterval* &start, int &size);
 970 
 971   // Iterators
 972   int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) {
 973     return oop_oop_iterate_v(obj, blk);
 974   }
 975 
 976   int oop_oop_iterate_m(oop obj, ExtendedOopClosure* blk, MemRegion mr) {
 977     return oop_oop_iterate_v_m(obj, blk, mr);
 978   }
 979 
 980 #define InstanceKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix)      \
 981   int  oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk);           \
 982   int  oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk,        \
 983                                       MemRegion mr);
 984 
 985   ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceKlass_OOP_OOP_ITERATE_DECL)
 986   ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceKlass_OOP_OOP_ITERATE_DECL)
 987 
 988 #if INCLUDE_ALL_GCS
 989 #define InstanceKlass_OOP_OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix) \
 990   int  oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* blk);


< prev index next >