470 // reference type
471 ReferenceType reference_type() const { return (ReferenceType)_reference_type; }
472 void set_reference_type(ReferenceType t) {
473 assert(t == (u1)t, "overflow");
474 _reference_type = (u1)t;
475 }
476
477 static ByteSize reference_type_offset() { return in_ByteSize(offset_of(InstanceKlass, _reference_type)); }
478
479 // find local field, returns true if found
480 bool find_local_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
481 // find field in direct superinterfaces, returns the interface in which the field is defined
482 Klass* find_interface_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
483 // find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined
484 Klass* find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
485 // find instance or static fields according to JVM spec 5.4.3.2, returns the klass in which the field is defined
486 Klass* find_field(Symbol* name, Symbol* sig, bool is_static, fieldDescriptor* fd) const;
487
488 // find a non-static or static field given its offset within the class.
489 bool contains_field_offset(int offset) {
490 return instanceOopDesc::contains_field_offset(offset, nonstatic_field_size());
491 }
492
493 bool find_local_field_from_offset(int offset, bool is_static, fieldDescriptor* fd) const;
494 bool find_field_from_offset(int offset, bool is_static, fieldDescriptor* fd) const;
495
496 // find a local method (returns NULL if not found)
497 Method* find_method(const Symbol* name, const Symbol* signature) const;
498 static Method* find_method(const Array<Method*>* methods,
499 const Symbol* name,
500 const Symbol* signature);
501
502 // find a local method, but skip static methods
503 Method* find_instance_method(const Symbol* name, const Symbol* signature) const;
504 static Method* find_instance_method(const Array<Method*>* methods,
505 const Symbol* name,
506 const Symbol* signature);
507
508 // find a local method (returns NULL if not found)
509 Method* find_local_method(const Symbol* name,
510 const Symbol* signature,
|
470 // reference type
471 ReferenceType reference_type() const { return (ReferenceType)_reference_type; }
472 void set_reference_type(ReferenceType t) {
473 assert(t == (u1)t, "overflow");
474 _reference_type = (u1)t;
475 }
476
477 static ByteSize reference_type_offset() { return in_ByteSize(offset_of(InstanceKlass, _reference_type)); }
478
479 // find local field, returns true if found
480 bool find_local_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
481 // find field in direct superinterfaces, returns the interface in which the field is defined
482 Klass* find_interface_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
483 // find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined
484 Klass* find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
485 // find instance or static fields according to JVM spec 5.4.3.2, returns the klass in which the field is defined
486 Klass* find_field(Symbol* name, Symbol* sig, bool is_static, fieldDescriptor* fd) const;
487
488 // find a non-static or static field given its offset within the class.
489 bool contains_field_offset(int offset) {
490 return instanceOopDesc::contains_field_offset(offset, nonstatic_field_size(), is_value());
491 }
492
493 bool find_local_field_from_offset(int offset, bool is_static, fieldDescriptor* fd) const;
494 bool find_field_from_offset(int offset, bool is_static, fieldDescriptor* fd) const;
495
496 // find a local method (returns NULL if not found)
497 Method* find_method(const Symbol* name, const Symbol* signature) const;
498 static Method* find_method(const Array<Method*>* methods,
499 const Symbol* name,
500 const Symbol* signature);
501
502 // find a local method, but skip static methods
503 Method* find_instance_method(const Symbol* name, const Symbol* signature) const;
504 static Method* find_instance_method(const Array<Method*>* methods,
505 const Symbol* name,
506 const Symbol* signature);
507
508 // find a local method (returns NULL if not found)
509 Method* find_local_method(const Symbol* name,
510 const Symbol* signature,
|