merge in ics-mr1-release history after reset to ics-mr1
diff --git a/vm/IndirectRefTable.cpp b/vm/IndirectRefTable.cpp
index e6d0a7e..c38458d 100644
--- a/vm/IndirectRefTable.cpp
+++ b/vm/IndirectRefTable.cpp
@@ -38,9 +38,7 @@
if (table_ == NULL) {
return false;
}
-#ifndef NDEBUG
memset(table_, 0xd1, initialCount * sizeof(IndirectRefSlot));
-#endif
segmentState.all = IRT_FIRST_SEGMENT;
alloc_entries_ = initialCount;
@@ -116,6 +114,9 @@
return NULL;
}
+ memset(newTable + alloc_entries_, 0xd1,
+ (newSize - alloc_entries_) * sizeof(IndirectRefSlot));
+
alloc_entries_ = newSize;
table_ = newTable;
}
diff --git a/vm/compiler/InlineTransformation.cpp b/vm/compiler/InlineTransformation.cpp
index 387dd61..53278a7 100644
--- a/vm/compiler/InlineTransformation.cpp
+++ b/vm/compiler/InlineTransformation.cpp
@@ -46,6 +46,13 @@
MIR *newGetterMIR = (MIR *)dvmCompilerNew(sizeof(MIR), true);
DecodedInstruction getterInsn;
+ /*
+ * Not all getter instructions have vC but vC will be read by
+ * dvmCompilerGetDalvikDisassembly unconditionally.
+ * Initialize it here to get Valgrind happy.
+ */
+ getterInsn.vC = 0;
+
dexDecodeInstruction(calleeMethod->insns, &getterInsn);
if (!dvmCompilerCanIncludeThisInstruction(calleeMethod, &getterInsn))
@@ -137,6 +144,13 @@
MIR *newSetterMIR = (MIR *)dvmCompilerNew(sizeof(MIR), true);
DecodedInstruction setterInsn;
+ /*
+ * Not all setter instructions have vC but vC will be read by
+ * dvmCompilerGetDalvikDisassembly unconditionally.
+ * Initialize it here to get Valgrind happy.
+ */
+ setterInsn.vC = 0;
+
dexDecodeInstruction(calleeMethod->insns, &setterInsn);
if (!dvmCompilerCanIncludeThisInstruction(calleeMethod, &setterInsn))