Merge "Compute a length based on heap size instead of card table size." into dalvik-dev
diff --git a/vm/alloc/CardTable.c b/vm/alloc/CardTable.c
index bbbb4ad..2de586e 100644
--- a/vm/alloc/CardTable.c
+++ b/vm/alloc/CardTable.c
@@ -179,8 +179,8 @@
             moveCardsToModUnion((u1*)base[i], (u1*)limit[i]);
         } else {
             u1 *baseCard = dvmCardFromAddr((u1*)base[i]);
-            u1 *limitCard = dvmCardFromAddr((u1*)limit[i]);
-            memset(baseCard, GC_CARD_CLEAN, limitCard - baseCard);
+            size_t length = (limit[i] - base[i]) >> GC_CARD_SHIFT;
+            memset(baseCard, GC_CARD_CLEAN, length);
         }
     }
 }