Put wrappers on all stores of Object pointers into heap Objects.
Also:
Changed ++ loops to [i] loops where I'm touching.
Added some asserts.
Added dvmHeapSourceContainsAddress
Added dvmIsValidObjectAddress
Change-Id: I6586688246064aecabb1e22e1dca276fecee7795
diff --git a/vm/native/dalvik_system_VMStack.c b/vm/native/dalvik_system_VMStack.c
index 4a1ce53..8db4a6b 100644
--- a/vm/native/dalvik_system_VMStack.c
+++ b/vm/native/dalvik_system_VMStack.c
@@ -150,18 +150,16 @@
/*
* Fill in the array.
*/
- ClassObject** objects = (ClassObject**) classes->contents;
-
- unsigned int sidx = 0;
- for (idx = kSkip; (int) idx < methodCount && sidx < size; idx++) {
- const Method* meth = methods[idx];
-
- if (dvmIsReflectionMethod(meth))
+ unsigned int objCount = 0;
+ for (idx = kSkip; (int) idx < methodCount; idx++) {
+ if (dvmIsReflectionMethod(methods[idx])) {
continue;
-
- *objects++ = meth->clazz;
- sidx++;
+ }
+ dvmSetObjectArrayElement(classes, objCount,
+ (Object *)methods[idx]->clazz);
+ objCount++;
}
+ assert(objCount == classes->length);
bail:
free(methods);