Revert "Trim pre-Zygote fork, fix under-estimate of heap limit."

This reverts commit 2f8d5e11f735e9ee8e235c31b3f113f6c90ad63c.
diff --git a/vm/alloc/HeapSource.cpp b/vm/alloc/HeapSource.cpp
index 9904c6c..2815577 100644
--- a/vm/alloc/HeapSource.cpp
+++ b/vm/alloc/HeapSource.cpp
@@ -610,9 +610,6 @@
     assert(gDvm.zygote);
 
     if (!gDvm.newZygoteHeapAllocated) {
-       /* Ensure heaps are trimmed to minimize footprint pre-fork.
-        */
-        trimHeaps();
         /* Create a new heap for post-fork zygote allocations.  We only
          * try once, even if it fails.
          */
@@ -660,25 +657,6 @@
 }
 
 /*
- * Returns a high water mark, between base and limit all objects must have been
- * allocated.
- */
-void *dvmHeapSourceGetLimit()
-{
-    HeapSource *hs = gHs;
-    void *max_brk = hs->heaps[0].brk;
-
-#ifndef NDEBUG
-    for (size_t i = 1; i < hs->numHeaps; i++) {
-        Heap *const heap = &hs->heaps[i];
-        void *heap_brk = heap->brk;
-        assert (max_brk > heap_brk);
-    }
-#endif
-    return max_brk;
-}
-
-/*
  * Returns the requested value. If the per-heap stats are requested, fill
  * them as well.
  *
@@ -699,8 +677,7 @@
 
         switch (spec) {
         case HS_FOOTPRINT:
-            value = heap->brk - heap->base;
-            assert(value == mspace_footprint(heap->msp));
+            value = mspace_footprint(heap->msp);
             break;
         case HS_ALLOWED_FOOTPRINT:
             value = mspace_max_allowed_footprint(heap->msp);
@@ -1000,7 +977,7 @@
 {
     HS_BOILERPLATE();
 
-    return (dvmHeapSourceGetBase() <= ptr) && (ptr <= dvmHeapSourceGetLimit());
+    return (dvmHeapBitmapCoversAddress(&gHs->liveBits, ptr));
 }
 
 /*
diff --git a/vm/alloc/HeapSource.h b/vm/alloc/HeapSource.h
index 4c82c7d..66f2a6a 100644
--- a/vm/alloc/HeapSource.h
+++ b/vm/alloc/HeapSource.h
@@ -93,12 +93,6 @@
 void *dvmHeapSourceGetBase(void);
 
 /*
- * Returns a high water mark, between base and limit all objects must have been
- * allocated.
- */
-void *dvmHeapSourceGetLimit(void);
-
-/*
  * Returns the requested value. If the per-heap stats are requested, fill
  * them as well.
  */
diff --git a/vm/alloc/MarkSweep.cpp b/vm/alloc/MarkSweep.cpp
index 268d880..d4f4669 100644
--- a/vm/alloc/MarkSweep.cpp
+++ b/vm/alloc/MarkSweep.cpp
@@ -560,7 +560,7 @@
 
     footprint = dvmHeapSourceGetValue(HS_FOOTPRINT, NULL, 0);
     base = &h->cardTableBase[0];
-    limit = dvmCardFromAddr((u1 *)dvmHeapSourceGetLimit());
+    limit = dvmCardFromAddr((u1 *)dvmHeapSourceGetBase() + footprint);
     assert(limit <= &h->cardTableBase[h->cardTableLength]);
 
     ptr = base;