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);
|