Fix for loops and eliminate some other undesirable idioms.

Previously, we were using a non-standard C dialect which did not permit
the nicer variable scoping in loops.  Now that we are using C++ in the
collector we can guarantee that feature is available.  This change also
rearranges some of the surrounding code to take advantage of the more
flexible scoping rules.

Change-Id: I9be35794cc12bcbc0d5299fe387d4bc406481075
diff --git a/vm/alloc/Visit.cpp b/vm/alloc/Visit.cpp
index 6ca1439..b329595 100644
--- a/vm/alloc/Visit.cpp
+++ b/vm/alloc/Visit.cpp
@@ -36,12 +36,10 @@
 static void visitHashTable(RootVisitor *visitor, HashTable *table,
                            RootType type, void *arg)
 {
-    int i;
-
     assert(visitor != NULL);
     assert(table != NULL);
     dvmHashTableLock(table);
-    for (i = 0; i < table->tableSize; ++i) {
+    for (int i = 0; i < table->tableSize; ++i) {
         HashEntry *entry = &table->pEntries[i];
         if (entry->data != NULL && entry->data != HASH_TOMBSTONE) {
             (*visitor)(&entry->data, 0, type, arg);
@@ -56,11 +54,9 @@
 static void visitReferenceTable(RootVisitor *visitor, ReferenceTable *table,
                                 u4 threadId, RootType type, void *arg)
 {
-    Object **entry;
-
     assert(visitor != NULL);
     assert(table != NULL);
-    for (entry = table->table; entry < table->nextEntry; ++entry) {
+    for (Object **entry = table->table; entry < table->nextEntry; ++entry) {
         assert(entry != NULL);
         (*visitor)(entry, threadId, type, arg);
     }
@@ -76,8 +72,7 @@
     assert(table != NULL);
     Object **entry = table->table;
     int numEntries = dvmIndirectRefTableEntries(table);
-    int i;
-    for (i = 0; i < numEntries; ++i) {
+    for (int i = 0; i < numEntries; ++i) {
         (*visitor)(&entry[i], threadId, type, arg);
     }
 }
@@ -88,23 +83,19 @@
  */
 static void visitThreadStack(RootVisitor *visitor, Thread *thread, void *arg)
 {
-    const StackSaveArea *saveArea;
-    u4 *fp;
-    u4 threadId;
-
     assert(visitor != NULL);
     assert(thread != NULL);
-    threadId = thread->threadId;
-    fp = (u4 *)thread->curFrame;
-    for (; fp != NULL; fp = (u4 *)saveArea->prevFrame) {
+    u4 threadId = thread->threadId;
+    const StackSaveArea *saveArea;
+    for (u4 *fp = (u4 *)thread->curFrame;
+         fp != NULL;
+         fp = (u4 *)saveArea->prevFrame) {
         Method *method;
         saveArea = SAVEAREA_FROM_FP(fp);
         method = (Method *)saveArea->method;
         if (method != NULL && !dvmIsNativeMethod(method)) {
             const RegisterMap* pMap = dvmGetExpandedRegisterMap(method);
             const u1* regVector = NULL;
-            size_t i;
-
             if (pMap != NULL) {
                 /* found map, get registers for this address */
                 int addr = saveArea->xtra.currentPc - method->insns;
@@ -116,7 +107,7 @@
                  * info for the current PC.  Perform a conservative
                  * scan.
                  */
-                for (i = 0; i < method->registersSize; ++i) {
+                for (size_t i = 0; i < method->registersSize; ++i) {
                     if (dvmIsValidObject((Object *)fp[i])) {
                         (*visitor)(&fp[i], threadId, ROOT_JAVA_FRAME, arg);
                     }
@@ -131,7 +122,7 @@
                  * A '1' bit indicates a live reference.
                  */
                 u2 bits = 1 << 1;
-                for (i = 0; i < method->registersSize; ++i) {
+                for (size_t i = 0; i < method->registersSize; ++i) {
                     bits >>= 1;
                     if (bits == 1) {
                         /* set bit 9 so we can tell when we're empty */