src/share/vm/oops/klassVtable.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8024760 Sdiff src/share/vm/oops

src/share/vm/oops/klassVtable.hpp

Print this page




 133       Klass* super);
 134   static void get_mirandas(
 135       GrowableArray<Method*>* new_mirandas,
 136       GrowableArray<Method*>* all_mirandas, Klass* super,
 137       Array<Method*>* class_methods, Array<Klass*>* local_interfaces);
 138 
 139   void verify_against(outputStream* st, klassVtable* vt, int index);
 140   inline InstanceKlass* ik() const;
 141 };
 142 
 143 
 144 // private helper class for klassVtable
 145 // description of entry points:
 146 //    destination is interpreted:
 147 //      from_compiled_code_entry_point -> c2iadapter
 148 //      from_interpreter_entry_point   -> interpreter entry point
 149 //    destination is compiled:
 150 //      from_compiled_code_entry_point -> nmethod entry point
 151 //      from_interpreter_entry_point   -> i2cadapter
 152 class vtableEntry VALUE_OBJ_CLASS_SPEC {


 153  public:
 154   // size in words
 155   static int size() {
 156     return sizeof(vtableEntry) / sizeof(HeapWord);
 157   }
 158   static int method_offset_in_bytes() { return offset_of(vtableEntry, _method); }
 159   Method* method() const    { return _method; }
 160 
 161  private:
 162   Method* _method;
 163   void set(Method* method)  { assert(method != NULL, "use clear"); _method = method; }
 164   void clear()                { _method = NULL; }
 165   void print()                                        PRODUCT_RETURN;
 166   void verify(klassVtable* vt, outputStream* st);
 167 
 168   friend class klassVtable;
 169 };
 170 
 171 
 172 inline Method* klassVtable::method_at(int i) const {




 133       Klass* super);
 134   static void get_mirandas(
 135       GrowableArray<Method*>* new_mirandas,
 136       GrowableArray<Method*>* all_mirandas, Klass* super,
 137       Array<Method*>* class_methods, Array<Klass*>* local_interfaces);
 138 
 139   void verify_against(outputStream* st, klassVtable* vt, int index);
 140   inline InstanceKlass* ik() const;
 141 };
 142 
 143 
 144 // private helper class for klassVtable
 145 // description of entry points:
 146 //    destination is interpreted:
 147 //      from_compiled_code_entry_point -> c2iadapter
 148 //      from_interpreter_entry_point   -> interpreter entry point
 149 //    destination is compiled:
 150 //      from_compiled_code_entry_point -> nmethod entry point
 151 //      from_interpreter_entry_point   -> i2cadapter
 152 class vtableEntry VALUE_OBJ_CLASS_SPEC {
 153   friend class VMStructs;
 154 
 155  public:
 156   // size in words
 157   static int size() {
 158     return sizeof(vtableEntry) / sizeof(HeapWord);
 159   }
 160   static int method_offset_in_bytes() { return offset_of(vtableEntry, _method); }
 161   Method* method() const    { return _method; }
 162 
 163  private:
 164   Method* _method;
 165   void set(Method* method)  { assert(method != NULL, "use clear"); _method = method; }
 166   void clear()                { _method = NULL; }
 167   void print()                                        PRODUCT_RETURN;
 168   void verify(klassVtable* vt, outputStream* st);
 169 
 170   friend class klassVtable;
 171 };
 172 
 173 
 174 inline Method* klassVtable::method_at(int i) const {


src/share/vm/oops/klassVtable.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File