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;