< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page

*** 277,290 **** // Method array. Array<Method*>* _methods; // Default Method Array, concrete methods inherited from interfaces Array<Method*>* _default_methods; ! // Interface (Klass*s) this class declares locally to implement. ! Array<Klass*>* _local_interfaces; ! // Interface (Klass*s) this class implements transitively. ! Array<Klass*>* _transitive_interfaces; // Int array containing the original order of method in the class file (for JVMTI). Array<int>* _method_ordering; // Int array containing the vtable_indices for default_methods // offset matches _default_methods offset Array<int>* _default_vtable_indices; --- 277,290 ---- // Method array. Array<Method*>* _methods; // Default Method Array, concrete methods inherited from interfaces Array<Method*>* _default_methods; ! // Interfaces (InstanceKlass*s) this class declares locally to implement. ! Array<InstanceKlass*>* _local_interfaces; ! // Interfaces (InstanceKlass*s) this class implements transitively. ! Array<InstanceKlass*>* _transitive_interfaces; // Int array containing the original order of method in the class file (for JVMTI). Array<int>* _method_ordering; // Int array containing the vtable_indices for default_methods // offset matches _default_methods offset Array<int>* _default_vtable_indices;
*** 413,429 **** Array<int>* default_vtable_indices() const { return _default_vtable_indices; } void set_default_vtable_indices(Array<int>* v) { _default_vtable_indices = v; } Array<int>* create_new_default_vtable_indices(int len, TRAPS); // interfaces ! Array<Klass*>* local_interfaces() const { return _local_interfaces; } ! void set_local_interfaces(Array<Klass*>* a) { guarantee(_local_interfaces == NULL || a == NULL, "Just checking"); _local_interfaces = a; } ! Array<Klass*>* transitive_interfaces() const { return _transitive_interfaces; } ! void set_transitive_interfaces(Array<Klass*>* a) { guarantee(_transitive_interfaces == NULL || a == NULL, "Just checking"); _transitive_interfaces = a; } private: --- 413,429 ---- Array<int>* default_vtable_indices() const { return _default_vtable_indices; } void set_default_vtable_indices(Array<int>* v) { _default_vtable_indices = v; } Array<int>* create_new_default_vtable_indices(int len, TRAPS); // interfaces ! Array<InstanceKlass*>* local_interfaces() const { return _local_interfaces; } ! void set_local_interfaces(Array<InstanceKlass*>* a) { guarantee(_local_interfaces == NULL || a == NULL, "Just checking"); _local_interfaces = a; } ! Array<InstanceKlass*>* transitive_interfaces() const { return _transitive_interfaces; } ! void set_transitive_interfaces(Array<InstanceKlass*>* a) { guarantee(_transitive_interfaces == NULL || a == NULL, "Just checking"); _transitive_interfaces = a; } private:
*** 1050,1060 **** void process_interfaces(Thread *thread); // virtual operations from Klass bool is_leaf_class() const { return _subklass == NULL; } GrowableArray<Klass*>* compute_secondary_supers(int num_extra_slots, ! Array<Klass*>* transitive_interfaces); bool compute_is_subtype_of(Klass* k); bool can_be_primary_super_slow() const; int oop_size(oop obj) const { return size_helper(); } // slow because it's a virtual call and used for verifying the layout_helper. // Using the layout_helper bits, we can call is_instance_klass without a virtual call. --- 1050,1060 ---- void process_interfaces(Thread *thread); // virtual operations from Klass bool is_leaf_class() const { return _subklass == NULL; } GrowableArray<Klass*>* compute_secondary_supers(int num_extra_slots, ! Array<InstanceKlass*>* transitive_interfaces); bool compute_is_subtype_of(Klass* k); bool can_be_primary_super_slow() const; int oop_size(oop obj) const { return size_helper(); } // slow because it's a virtual call and used for verifying the layout_helper. // Using the layout_helper bits, we can call is_instance_klass without a virtual call.
*** 1078,1088 **** assert(k != NULL, "k should not be null"); assert(k->is_instance_klass(), "cast to InstanceKlass"); return static_cast<const InstanceKlass*>(k); } ! InstanceKlass* java_super() const { return (super() == NULL) ? NULL : cast(super()); } // Sizing (in words) static int header_size() { return sizeof(InstanceKlass)/wordSize; } --- 1078,1088 ---- assert(k != NULL, "k should not be null"); assert(k->is_instance_klass(), "cast to InstanceKlass"); return static_cast<const InstanceKlass*>(k); } ! virtual InstanceKlass* java_super() const { return (super() == NULL) ? NULL : cast(super()); } // Sizing (in words) static int header_size() { return sizeof(InstanceKlass)/wordSize; }
*** 1199,1210 **** void deallocate_contents(ClassLoaderData* loader_data); static void deallocate_methods(ClassLoaderData* loader_data, Array<Method*>* methods); void static deallocate_interfaces(ClassLoaderData* loader_data, const Klass* super_klass, ! Array<Klass*>* local_interfaces, ! Array<Klass*>* transitive_interfaces); // The constant pool is on stack if any of the methods are executing or // referenced by handles. bool on_stack() const { return _constants->on_stack(); } --- 1199,1210 ---- void deallocate_contents(ClassLoaderData* loader_data); static void deallocate_methods(ClassLoaderData* loader_data, Array<Method*>* methods); void static deallocate_interfaces(ClassLoaderData* loader_data, const Klass* super_klass, ! Array<InstanceKlass*>* local_interfaces, ! Array<InstanceKlass*>* transitive_interfaces); // The constant pool is on stack if any of the methods are executing or // referenced by handles. bool on_stack() const { return _constants->on_stack(); }
*** 1377,1386 **** --- 1377,1387 ---- #ifndef PRODUCT void oop_print_on (oop obj, outputStream* st); void print_dependent_nmethods(bool verbose = false); bool is_dependent_nmethod(nmethod* nm); + bool verify_itable_index(int index); #endif const char* internal_name() const; // Verification
< prev index next >