Remove some partial gc code.

This code conflicts with the concurrent collector.

Change-Id: I640d68943b72a967ff39989a445be87ce5ee781c
diff --git a/vm/alloc/MarkSweep.c b/vm/alloc/MarkSweep.c
index e5cbf81..574a731 100644
--- a/vm/alloc/MarkSweep.c
+++ b/vm/alloc/MarkSweep.c
@@ -509,160 +509,6 @@
     }
 }
 
-/*
- * Variants for partial GC. Scan immune objects, and rebuild the card
- * table.
- */
-
-/*
- * Mark an object which was found in an immune object.
- */
-static void scanImmuneReference(const Object *obj, GcMarkContext *ctx)
-{
-    if (obj != NULL) {
-        if (obj < (Object *)ctx->immuneLimit) {
-            assert(isMarked(obj, ctx));
-        } else {
-            ctx->crossGen = true;
-            markObjectNonNull(obj, ctx, true, false);
-        }
-    }
-}
-
-/*
- * Scans instance fields.
- */
-static void scanImmuneInstanceFields(const Object *obj, GcMarkContext *ctx)
-{
-    assert(obj != NULL);
-    assert(obj->clazz != NULL);
-    assert(ctx != NULL);
-
-    if (obj->clazz->refOffsets != CLASS_WALK_SUPER) {
-        unsigned int refOffsets = obj->clazz->refOffsets;
-        while (refOffsets != 0) {
-            const int rshift = CLZ(refOffsets);
-            refOffsets &= ~(CLASS_HIGH_BIT >> rshift);
-            scanImmuneReference(
-                dvmGetFieldObject((Object*)obj, CLASS_OFFSET_FROM_CLZ(rshift)),
-                ctx);
-        }
-    } else {
-        ClassObject *clazz;
-        int i;
-        for (clazz = obj->clazz; clazz != NULL; clazz = clazz->super) {
-            InstField *field = clazz->ifields;
-            for (i = 0; i < clazz->ifieldRefCount; ++i, ++field) {
-                void *addr = BYTE_OFFSET((Object *)obj, field->byteOffset);
-                scanImmuneReference(((JValue *)addr)->l, ctx);
-            }
-        }
-    }
-}
-
-/*
- * Scans the header, static field references, and interface
- * pointers of a class object.
- */
-static void scanImmuneClassObject(const ClassObject *obj, GcMarkContext *ctx)
-{
-    int i;
-
-    assert(obj != NULL);
-    assert(obj->obj.clazz == gDvm.classJavaLangClass);
-    assert(ctx != NULL);
-
-    scanImmuneReference((Object *)obj->obj.clazz, ctx);
-    if (IS_CLASS_FLAG_SET(obj, CLASS_ISARRAY)) {
-        scanImmuneReference((Object *)obj->elementClass, ctx);
-    }
-    /* Do super and the interfaces contain Objects and not dex idx values? */
-    if (obj->status > CLASS_IDX) {
-        scanImmuneReference((Object *)obj->super, ctx);
-    }
-    scanImmuneReference(obj->classLoader, ctx);
-    /* Scan static field references. */
-    for (i = 0; i < obj->sfieldCount; ++i) {
-        char ch = obj->sfields[i].field.signature[0];
-        if (ch == '[' || ch == 'L') {
-            scanImmuneReference(obj->sfields[i].value.l, ctx);
-        }
-    }
-    /* Scan the instance fields. */
-    scanImmuneInstanceFields((const Object *)obj, ctx);
-    /* Scan interface references. */
-    if (obj->status > CLASS_IDX) {
-        for (i = 0; i < obj->interfaceCount; ++i) {
-            scanImmuneReference((Object *)obj->interfaces[i], ctx);
-        }
-    }
-}
-
-/*
- * Scans the header of all array objects.  If the array object is
- * specialized to a reference type, scans the array data as well.
- */
-static void scanImmuneArrayObject(const ArrayObject *obj, GcMarkContext *ctx)
-{
-    size_t i;
-
-    assert(obj != NULL);
-    assert(obj->obj.clazz != NULL);
-    assert(ctx != NULL);
-    /* Scan the class object reference. */
-    scanImmuneReference((Object *)obj->obj.clazz, ctx);
-    if (IS_CLASS_FLAG_SET(obj->obj.clazz, CLASS_ISOBJECTARRAY)) {
-        /* Scan the array contents. */
-        Object **contents = (Object **)obj->contents;
-        for (i = 0; i < obj->length; ++i) {
-            scanImmuneReference(contents[i], ctx);
-        }
-    }
-}
-
-/*
- * Scans the header and field references of a data object.
- */
-static void scanImmuneDataObject(DataObject *obj, GcMarkContext *ctx)
-{
-    assert(obj != NULL);
-    assert(obj->obj.clazz != NULL);
-    assert(ctx != NULL);
-    /* Scan the class object. */
-    scanImmuneReference((Object *)obj->obj.clazz, ctx);
-    /* Scan the instance fields. */
-    scanImmuneInstanceFields((const Object *)obj, ctx);
-    if (IS_CLASS_FLAG_SET(obj->obj.clazz, CLASS_ISREFERENCE)) {
-        scanImmuneReference((Object *)obj, ctx);
-    }
-}
-
-/*
- * Scans an object reference.  Determines the type of the reference
- * and dispatches to a specialized scanning routine.
- */
-static void scanImmuneObject(const Object *obj, GcMarkContext *ctx)
-{
-    assert(obj != NULL);
-    assert(obj->clazz != NULL);
-    assert(ctx != NULL);
-    assert(obj < (Object *)ctx->immuneLimit);
-
-#if WITH_HPROF
-    if (gDvm.gcHeap->hprofContext != NULL) {
-        hprofDumpHeapObject(gDvm.gcHeap->hprofContext, obj);
-    }
-#endif
-    /* Dispatch a type-specific scan routine. */
-    if (obj->clazz == gDvm.classJavaLangClass) {
-        scanImmuneClassObject((ClassObject *)obj, ctx);
-    } else if (IS_CLASS_FLAG_SET(obj->clazz, CLASS_ISARRAY)) {
-        scanImmuneArrayObject((ArrayObject *)obj, ctx);
-    } else {
-        scanImmuneDataObject((DataObject *)obj, ctx);
-    }
-}
-
 static void
 processMarkStack(GcMarkContext *ctx)
 {
@@ -717,58 +563,8 @@
 #ifndef NDEBUG
     gLastFinger = 0;
 #endif
-    if (gDvm.executionMode == kExecutionModeInterpPortable) {
-        /* The portable interpreter dirties cards on write; other
-         * modes do not yet do so.
-         * TODO: Bring the fast interpreter and JIT into the fold.
-         */
-        HeapBitmap markBits[HEAP_SOURCE_MAX_HEAP_COUNT];
-        HeapBitmap liveBits[HEAP_SOURCE_MAX_HEAP_COUNT];
-        size_t numBitmaps, i;
-        numBitmaps = dvmHeapSourceGetNumHeaps();
-        dvmHeapSourceGetObjectBitmaps(liveBits, markBits, numBitmaps);
-        for (i = 0; i < numBitmaps; i++) {
-            /* The use of finger to tell visited from unvisited objects
-             * requires we walk the bitmaps from low to high
-             * addresses. This code assumes [and asserts] that the order
-             * of the heaps returned is the reverse of that.
-             */
-            size_t j = numBitmaps-1-i;
-            assert(j == 0 || (markBits[j].base < markBits[j-1].base));
-            if (markBits[j].base < (uintptr_t)ctx->immuneLimit) {
-                uintptr_t minAddr = markBits[j].base;
-                uintptr_t maxAddr = markBits[j].base +
-                    HB_MAX_OFFSET(&markBits[j]);
-                u1 *minCard = dvmCardFromAddr((void *)minAddr);
-                u1 *maxCard = dvmCardFromAddr((void *)maxAddr);
+    dvmHeapBitmapWalk(ctx->bitmap, scanBitmapCallback, ctx);
 
-                u1 *card;
-                /* TODO: This double-loop should be made faster. In
-                 * particular the inner loop could get in bed with the
-                 * bitmap scanning routines.
-                 */
-                for (card = minCard; card <= maxCard; card++) {
-                    if (*card == GC_CARD_DIRTY) {
-                        uintptr_t addr = (uintptr_t)dvmAddrFromCard(card);
-                        uintptr_t endAddr = addr + GC_CARD_SIZE;
-                        ctx->crossGen  = false;
-                        for ( ; addr < endAddr; addr += 8) {
-                            if (dvmIsValidObject((void *)addr)) {
-                                scanImmuneObject((void *)addr, ctx);
-                            }
-                        }
-                        if (! ctx->crossGen) {
-                            *card = GC_CARD_CLEAN;
-                        }
-                    }
-                }
-            } else {
-                dvmHeapBitmapWalk(&markBits[j], scanBitmapCallback, ctx);
-            }
-        }
-    } else {
-        dvmHeapBitmapWalk(ctx->bitmap, scanBitmapCallback, ctx);
-    }
     /* We've walked the mark bitmaps.  Scan anything that's
      * left on the mark stack.
      */