Merge "Fix minor bugs which prevented methods from loading correctly." into dalvik-dev
diff --git a/src/dex_file.cc b/src/dex_file.cc
index bb016b0..9526b5a 100644
--- a/src/dex_file.cc
+++ b/src/dex_file.cc
@@ -105,7 +105,7 @@
   // Load instance fields.
   if (klass->NumInstanceFields() != 0) {
     // TODO: append instance fields to class object
-    klass->ifields_ = new InstanceField[klass->NumInstanceFields()];
+    klass->ifields_ = new InstanceField[klass->NumInstanceFields()]();
     uint32_t last_idx = 0;
     for (size_t i = 0; i < klass->NumInstanceFields(); ++i) {
       RawDexFile::Field raw_field;
@@ -117,7 +117,7 @@
   // Load direct methods.
   if (klass->NumDirectMethods() != 0) {
     // TODO: append direct methods to class object
-    klass->direct_methods_ = new Method[klass->NumDirectMethods()];
+    klass->direct_methods_ = new Method[klass->NumDirectMethods()]();
     uint32_t last_idx = 0;
     for (size_t i = 0; i < klass->NumDirectMethods(); ++i) {
       RawDexFile::Method raw_method;
@@ -130,8 +130,7 @@
   // Load virtual methods.
   if (klass->NumVirtualMethods() != 0) {
     // TODO: append virtual methods to class object
-    klass->virtual_methods_ = new Method[klass->NumVirtualMethods()];
-    memset(klass->virtual_methods_, 0xff, sizeof(Method));
+    klass->virtual_methods_ = new Method[klass->NumVirtualMethods()]();
     uint32_t last_idx = 0;
     for (size_t i = 0; i < klass->NumVirtualMethods(); ++i) {
       RawDexFile::Method raw_method;
diff --git a/src/object.cc b/src/object.cc
index b691480..a380b5a 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -57,7 +57,7 @@
 uint32_t Method::NumArgRegisters() {
   CHECK(shorty_ != NULL);
   uint32_t num_registers = 0;
-  for (size_t i = 1; shorty_[0] != '\0'; ++i) {
+  for (size_t i = 1; shorty_[i] != '\0'; ++i) {
     char ch = shorty_[i];
     if (ch == 'D' || ch == 'J') {
       num_registers += 2;