Reduce meta-data object sizes, introduce meta-data helper classes.

Change-Id: Id14ad218f1c74c659701352fdf1a45bf6444daa3
diff --git a/src/object_test.cc b/src/object_test.cc
index 08abb6f..b1d5885 100644
--- a/src/object_test.cc
+++ b/src/object_test.cc
@@ -42,18 +42,12 @@
 
 TEST_F(ObjectTest, IsInSamePackage) {
   // Matches
-  SirtRef<String> Object_descriptor(String::AllocFromModifiedUtf8("Ljava/lang/Object;"));
-  SirtRef<String> Class_descriptor(String::AllocFromModifiedUtf8("Ljava/lang/Class;"));
-  EXPECT_TRUE(Class::IsInSamePackage(Object_descriptor.get(), Class_descriptor.get()));
-  SirtRef<String> Foo_descriptor(String::AllocFromModifiedUtf8("LFoo;"));
-  SirtRef<String> Bar_descriptor(String::AllocFromModifiedUtf8("LBar;"));
-  EXPECT_TRUE(Class::IsInSamePackage(Foo_descriptor.get(), Bar_descriptor.get()));
+  EXPECT_TRUE(Class::IsInSamePackage("Ljava/lang/Object;", "Ljava/lang/Class;"));
+  EXPECT_TRUE(Class::IsInSamePackage("LFoo;", "LBar;"));
 
   // Mismatches
-  SirtRef<String> File_descriptor(String::AllocFromModifiedUtf8("Ljava/io/File;"));
-  EXPECT_FALSE(Class::IsInSamePackage(Object_descriptor.get(), File_descriptor.get()));
-  SirtRef<String> Method_descriptor(String::AllocFromModifiedUtf8("Ljava/lang/reflect/Method;"));
-  EXPECT_FALSE(Class::IsInSamePackage(Object_descriptor.get(), Method_descriptor.get()));
+  EXPECT_FALSE(Class::IsInSamePackage("Ljava/lang/Object;", "Ljava/io/File;"));
+  EXPECT_FALSE(Class::IsInSamePackage("Ljava/lang/Object;", "Ljava/lang/reflect/Method;"));
 }
 
 TEST_F(ObjectTest, Clone) {
@@ -90,11 +84,10 @@
   self->ClearException();
 
   ASSERT_TRUE(oa->GetClass() != NULL);
-  ASSERT_EQ(2U, oa->GetClass()->NumInterfaces());
-  EXPECT_EQ(class_linker_->FindSystemClass("Ljava/lang/Cloneable;"),
-            oa->GetClass()->GetInterface(0));
-  EXPECT_EQ(class_linker_->FindSystemClass("Ljava/io/Serializable;"),
-            oa->GetClass()->GetInterface(1));
+  ClassHelper oa_ch(oa->GetClass());
+  ASSERT_EQ(2U, oa_ch.NumInterfaces());
+  EXPECT_EQ(class_linker_->FindSystemClass("Ljava/lang/Cloneable;"), oa_ch.GetInterface(0));
+  EXPECT_EQ(class_linker_->FindSystemClass("Ljava/io/Serializable;"), oa_ch.GetInterface(1));
 }
 
 TEST_F(ObjectTest, AllocArray) {
@@ -288,34 +281,50 @@
   ASSERT_TRUE(klass2 != NULL);
 
   Method* m1_1 = klass1->GetVirtualMethod(0);
-  EXPECT_TRUE(m1_1->GetName()->Equals("m1"));
+  MethodHelper mh(m1_1);
+  EXPECT_STREQ(mh.GetName(), "m1");
   Method* m2_1 = klass1->GetVirtualMethod(1);
-  EXPECT_TRUE(m2_1->GetName()->Equals("m2"));
+  mh.ChangeMethod(m2_1);
+  EXPECT_STREQ(mh.GetName(), "m2");
   Method* m3_1 = klass1->GetVirtualMethod(2);
-  EXPECT_TRUE(m3_1->GetName()->Equals("m3"));
+  mh.ChangeMethod(m3_1);
+  EXPECT_STREQ(mh.GetName(), "m3");
   Method* m4_1 = klass1->GetVirtualMethod(3);
-  EXPECT_TRUE(m4_1->GetName()->Equals("m4"));
+  mh.ChangeMethod(m4_1);
+  EXPECT_STREQ(mh.GetName(), "m4");
 
   Method* m1_2 = klass2->GetVirtualMethod(0);
-  EXPECT_TRUE(m1_2->GetName()->Equals("m1"));
+  mh.ChangeMethod(m1_2);
+  EXPECT_STREQ(mh.GetName(), "m1");
   Method* m2_2 = klass2->GetVirtualMethod(1);
-  EXPECT_TRUE(m2_2->GetName()->Equals("m2"));
+  mh.ChangeMethod(m2_2);
+  EXPECT_STREQ(mh.GetName(), "m2");
   Method* m3_2 = klass2->GetVirtualMethod(2);
-  EXPECT_TRUE(m3_2->GetName()->Equals("m3"));
+  mh.ChangeMethod(m3_2);
+  EXPECT_STREQ(mh.GetName(), "m3");
   Method* m4_2 = klass2->GetVirtualMethod(3);
-  EXPECT_TRUE(m4_2->GetName()->Equals("m4"));
+  mh.ChangeMethod(m4_2);
+  EXPECT_STREQ(mh.GetName(), "m4");
 
-  EXPECT_TRUE(m1_1->HasSameNameAndSignature(m1_2));
-  EXPECT_TRUE(m1_2->HasSameNameAndSignature(m1_1));
+  mh.ChangeMethod(m1_1);
+  MethodHelper mh2(m1_2);
+  EXPECT_TRUE(mh.HasSameNameAndSignature(&mh2));
+  EXPECT_TRUE(mh2.HasSameNameAndSignature(&mh));
 
-  EXPECT_TRUE(m2_1->HasSameNameAndSignature(m2_2));
-  EXPECT_TRUE(m2_2->HasSameNameAndSignature(m2_1));
+  mh.ChangeMethod(m2_1);
+  mh2.ChangeMethod(m2_2);
+  EXPECT_TRUE(mh.HasSameNameAndSignature(&mh2));
+  EXPECT_TRUE(mh2.HasSameNameAndSignature(&mh));
 
-  EXPECT_TRUE(m3_1->HasSameNameAndSignature(m3_2));
-  EXPECT_TRUE(m3_2->HasSameNameAndSignature(m3_1));
+  mh.ChangeMethod(m3_1);
+  mh2.ChangeMethod(m3_2);
+  EXPECT_TRUE(mh.HasSameNameAndSignature(&mh2));
+  EXPECT_TRUE(mh2.HasSameNameAndSignature(&mh));
 
-  EXPECT_TRUE(m4_1->HasSameNameAndSignature(m4_2));
-  EXPECT_TRUE(m4_2->HasSameNameAndSignature(m4_1));
+  mh.ChangeMethod(m4_1);
+  mh2.ChangeMethod(m4_2);
+  EXPECT_TRUE(mh.HasSameNameAndSignature(&mh2));
+  EXPECT_TRUE(mh2.HasSameNameAndSignature(&mh));
 }