src/share/vm/oops/instanceKlass.hpp

Print this page




 920     return layout_helper_to_size_helper(layout_helper());
 921   }
 922 
 923   // This bit is initialized in classFileParser.cpp.
 924   // It is false under any of the following conditions:
 925   //  - the class is abstract (including any interface)
 926   //  - the class has a finalizer (if !RegisterFinalizersAtInit)
 927   //  - the class size is larger than FastAllocateSizeLimit
 928   //  - the class is java/lang/Class, which cannot be allocated directly
 929   bool can_be_fastpath_allocated() const {
 930     return !layout_helper_needs_slow_path(layout_helper());
 931   }
 932 
 933   // Java vtable/itable
 934   klassVtable* vtable() const;        // return new klassVtable wrapper
 935   inline Method* method_at_vtable(int index);
 936   klassItable* itable() const;        // return new klassItable wrapper
 937   Method* method_at_itable(Klass* holder, int index, TRAPS);
 938 
 939 #if INCLUDE_JVMTI
 940   void adjust_default_methods(Method** old_methods, Method** new_methods,
 941                               int methods_length, bool* trace_name_printed);
 942 #endif // INCLUDE_JVMTI
 943 
 944   // Garbage collection
 945   void oop_follow_contents(oop obj);
 946   int  oop_adjust_pointers(oop obj);
 947 
 948   void clean_implementors_list(BoolObjectClosure* is_alive);
 949   void clean_method_data(BoolObjectClosure* is_alive);
 950   void clean_dependent_nmethods();
 951 
 952   // Explicit metaspace deallocation of fields
 953   // For RedefineClasses and class file parsing errors, we need to deallocate
 954   // instanceKlasses and the metadata they point to.
 955   void deallocate_contents(ClassLoaderData* loader_data);
 956   static void deallocate_methods(ClassLoaderData* loader_data,
 957                                  Array<Method*>* methods);
 958   void static deallocate_interfaces(ClassLoaderData* loader_data,
 959                                     Klass* super_klass,
 960                                     Array<Klass*>* local_interfaces,
 961                                     Array<Klass*>* transitive_interfaces);




 920     return layout_helper_to_size_helper(layout_helper());
 921   }
 922 
 923   // This bit is initialized in classFileParser.cpp.
 924   // It is false under any of the following conditions:
 925   //  - the class is abstract (including any interface)
 926   //  - the class has a finalizer (if !RegisterFinalizersAtInit)
 927   //  - the class size is larger than FastAllocateSizeLimit
 928   //  - the class is java/lang/Class, which cannot be allocated directly
 929   bool can_be_fastpath_allocated() const {
 930     return !layout_helper_needs_slow_path(layout_helper());
 931   }
 932 
 933   // Java vtable/itable
 934   klassVtable* vtable() const;        // return new klassVtable wrapper
 935   inline Method* method_at_vtable(int index);
 936   klassItable* itable() const;        // return new klassItable wrapper
 937   Method* method_at_itable(Klass* holder, int index, TRAPS);
 938 
 939 #if INCLUDE_JVMTI
 940   void adjust_default_methods(InstanceKlass* holder, bool* trace_name_printed);

 941 #endif // INCLUDE_JVMTI
 942 
 943   // Garbage collection
 944   void oop_follow_contents(oop obj);
 945   int  oop_adjust_pointers(oop obj);
 946 
 947   void clean_implementors_list(BoolObjectClosure* is_alive);
 948   void clean_method_data(BoolObjectClosure* is_alive);
 949   void clean_dependent_nmethods();
 950 
 951   // Explicit metaspace deallocation of fields
 952   // For RedefineClasses and class file parsing errors, we need to deallocate
 953   // instanceKlasses and the metadata they point to.
 954   void deallocate_contents(ClassLoaderData* loader_data);
 955   static void deallocate_methods(ClassLoaderData* loader_data,
 956                                  Array<Method*>* methods);
 957   void static deallocate_interfaces(ClassLoaderData* loader_data,
 958                                     Klass* super_klass,
 959                                     Array<Klass*>* local_interfaces,
 960                                     Array<Klass*>* transitive_interfaces);