Combine InstanceField and StaticField and Field.
This gives us full consistency with the java.lang.reflect.Field type.
Change-Id: Ib17c7fca4fe2c912fa9f5e37da2be0aebb8def9c
diff --git a/src/object.h b/src/object.h
index 5cb884c..e071b97 100644
--- a/src/object.h
+++ b/src/object.h
@@ -18,7 +18,7 @@
class Array;
class Class;
class DexCache;
-class InstanceField;
+class Field;
class InterfaceEntry;
class Monitor;
class Method;
@@ -26,7 +26,6 @@
class String;
template<class T> class ObjectArray;
template<class T> class PrimitiveArray;
-class StaticField;
typedef PrimitiveArray<uint16_t> CharArray;
typedef PrimitiveArray<uint32_t> IntArray;
typedef PrimitiveArray<uint64_t> LongArray;
@@ -284,30 +283,6 @@
return descriptor_;
}
- public: // TODO: private
- // Field order required by test "ValidateFieldOrderOfJavaCppUnionClasses".
- Class* java_declaring_class_;
- Object* java_generic_type_;
- uint32_t java_generic_types_are_initialized_;
- String* name_;
- uint32_t java_slot_;
- Class* java_type_;
-
- // The class in which this field is declared.
- Class* declaring_class_;
-
- // e.g. "I", "[C", "Landroid/os/Debug;"
- StringPiece descriptor_;
-
- uint32_t access_flags_;
-
- private:
- DISALLOW_IMPLICIT_CONSTRUCTORS(Field);
-};
-
-// Instance fields.
-class InstanceField : public Field {
- public:
uint32_t GetOffset() const {
return offset_;
}
@@ -316,55 +291,44 @@
offset_ = num_bytes;
}
- private:
- size_t offset_;
-
- DISALLOW_IMPLICIT_CONSTRUCTORS(InstanceField);
-};
-
-// Static fields.
-class StaticField : public Field {
- public:
+ // static field access
bool GetBoolean();
-
void SetBoolean(bool z);
-
int8_t GetByte();
-
void SetByte(int8_t b);
-
uint16_t GetChar();
-
void SetChar(uint16_t c);
-
uint16_t GetShort();
-
void SetShort(uint16_t s);
-
int32_t GetInt();
-
void SetInt(int32_t i);
-
int64_t GetLong();
-
void SetLong(int64_t j);
-
float GetFloat();
-
void SetFloat(float f);
-
double GetDouble();
-
void SetDouble(double d);
-
Object* GetObject();
-
const Object* GetObject() const;
-
void SetObject(Object* l);
+ public: // TODO: private
+ // Field order required by test "ValidateFieldOrderOfJavaCppUnionClasses".
+ // The class in which this field is declared.
+ Class* declaring_class_;
+ Object* generic_type_;
+ uint32_t generic_types_are_initialized_;
+ String* name_;
+ uint32_t offset_;
+ Class* type_;
+
+ // e.g. "I", "[C", "Landroid/os/Debug;"
+ StringPiece descriptor_;
+
+ uint32_t access_flags_;
+
private:
- DISALLOW_IMPLICIT_CONSTRUCTORS(StaticField);
+ DISALLOW_IMPLICIT_CONSTRUCTORS(Field);
};
class Method : public AccessibleObject {
@@ -431,7 +395,8 @@
public: // TODO: private
// Field order required by test "ValidateFieldOrderOfJavaCppUnionClasses".
- Class* java_declaring_class_;
+ // the class we are a part of
+ Class* declaring_class_;
ObjectArray<Class>* java_exception_types_;
Object* java_formal_type_parameters_;
Object* java_generic_exception_types_;
@@ -514,9 +479,6 @@
bool HasSameNameAndDescriptor(const Method* that) const;
public: // TODO: private/const
- // the class we are a part of
- Class* declaring_class_;
-
// access flags; low 16 bits are defined by spec (could be uint16_t?)
uint32_t access_flags_;
@@ -900,12 +862,12 @@
return num_reference_instance_fields_;
}
- InstanceField* GetInstanceField(uint32_t i) const { // TODO: uint16_t
+ Field* GetInstanceField(uint32_t i) const { // TODO: uint16_t
DCHECK_NE(NumInstanceFields(), 0U);
return ifields_->Get(i);
}
- void SetInstanceField(uint32_t i, InstanceField* f) { // TODO: uint16_t
+ void SetInstanceField(uint32_t i, Field* f) { // TODO: uint16_t
DCHECK_NE(NumInstanceFields(), 0U);
ifields_->Set(i, f);
}
@@ -914,12 +876,12 @@
return (sfields_ != NULL) ? sfields_->GetLength() : 0;
}
- StaticField* GetStaticField(uint32_t i) const { // TODO: uint16_t
+ Field* GetStaticField(uint32_t i) const { // TODO: uint16_t
DCHECK_NE(NumStaticFields(), 0U);
return sfields_->Get(i);
}
- void SetStaticField(uint32_t i, StaticField* f) { // TODO: uint16_t
+ void SetStaticField(uint32_t i, Field* f) { // TODO: uint16_t
DCHECK_NE(NumStaticFields(), 0U);
sfields_->Set(i, f);
}
@@ -1067,7 +1029,7 @@
// All instance fields that refer to objects are guaranteed to be at
// the beginning of the field list. num_reference_instance_fields_
// specifies the number of reference fields.
- ObjectArray<InstanceField>* ifields_;
+ ObjectArray<Field>* ifields_;
// number of fields that are object refs
size_t num_reference_instance_fields_;
@@ -1079,7 +1041,7 @@
const char* source_file_;
// Static fields
- ObjectArray<StaticField>* sfields_;
+ ObjectArray<Field>* sfields_;
// static field storage
//