Add a default constructor to JValue.
Change-Id: I7abe801b26f5003c480215c1f1ca64dfc07667ed
diff --git a/src/object.cc b/src/object.cc
index cd6b51f..f863a39 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -248,36 +248,43 @@
Set64(object, j);
}
+union Bits {
+ jdouble d;
+ jfloat f;
+ jint i;
+ jlong j;
+};
+
float Field::GetFloat(const Object* object) const {
DCHECK_EQ(Primitive::kPrimFloat, FieldHelper(this).GetTypeAsPrimitiveType())
<< PrettyField(this);
- JValue float_bits;
- float_bits.i = Get32(object);
- return float_bits.f;
+ Bits bits;
+ bits.i = Get32(object);
+ return bits.f;
}
void Field::SetFloat(Object* object, float f) const {
DCHECK_EQ(Primitive::kPrimFloat, FieldHelper(this).GetTypeAsPrimitiveType())
<< PrettyField(this);
- JValue float_bits;
- float_bits.f = f;
- Set32(object, float_bits.i);
+ Bits bits;
+ bits.f = f;
+ Set32(object, bits.i);
}
double Field::GetDouble(const Object* object) const {
DCHECK_EQ(Primitive::kPrimDouble, FieldHelper(this).GetTypeAsPrimitiveType())
<< PrettyField(this);
- JValue double_bits;
- double_bits.j = Get64(object);
- return double_bits.d;
+ Bits bits;
+ bits.j = Get64(object);
+ return bits.d;
}
void Field::SetDouble(Object* object, double d) const {
DCHECK_EQ(Primitive::kPrimDouble, FieldHelper(this).GetTypeAsPrimitiveType())
<< PrettyField(this);
- JValue double_bits;
- double_bits.d = d;
- Set64(object, double_bits.j);
+ Bits bits;
+ bits.d = d;
+ Set64(object, bits.j);
}
Object* Field::GetObject(const Object* object) const {