diff options
author | Carl Shapiro <cshapiro@google.com> | 2011-05-06 17:02:43 -0700 |
---|---|---|
committer | Carl Shapiro <cshapiro@google.com> | 2011-05-06 17:02:43 -0700 |
commit | a7323974309c3b81cfe342db635d0bf30f36ff62 (patch) | |
tree | f311a4f332cd32c7f937696fb2d4a9aa5c9240db /vm/alloc/MarkSweep.cpp | |
parent | dc2a1881fe75a8dd961fb24509621c7c97694c9a (diff) | |
download | android_dalvik-a7323974309c3b81cfe342db635d0bf30f36ff62.tar.gz android_dalvik-a7323974309c3b81cfe342db635d0bf30f36ff62.tar.bz2 android_dalvik-a7323974309c3b81cfe342db635d0bf30f36ff62.zip |
Establish a subclass relationships among the field types.
Change-Id: Id349b359489bb6b1bbb4ab78d29d85c0e6b33799
Diffstat (limited to 'vm/alloc/MarkSweep.cpp')
-rw-r--r-- | vm/alloc/MarkSweep.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/vm/alloc/MarkSweep.cpp b/vm/alloc/MarkSweep.cpp index 79588f2eb..710f2e661 100644 --- a/vm/alloc/MarkSweep.cpp +++ b/vm/alloc/MarkSweep.cpp @@ -392,7 +392,7 @@ static void scanFields(const Object *obj, GcMarkContext *ctx) while (refOffsets != 0) { size_t rshift = CLZ(refOffsets); size_t offset = CLASS_OFFSET_FROM_CLZ(rshift); - Object *ref = dvmGetFieldObject((Object*)obj, offset); + Object *ref = dvmGetFieldObject(obj, offset); markObject(ref, ctx); refOffsets &= ~(CLASS_HIGH_BIT >> rshift); } @@ -402,8 +402,8 @@ static void scanFields(const Object *obj, GcMarkContext *ctx) clazz = clazz->super) { InstField *field = clazz->ifields; for (int i = 0; i < clazz->ifieldRefCount; ++i, ++field) { - void *addr = BYTE_OFFSET((Object *)obj, field->byteOffset); - Object *ref = (Object *)((JValue *)addr)->l; + void *addr = BYTE_OFFSET(obj, field->byteOffset); + Object *ref = ((JValue *)addr)->l; markObject(ref, ctx); } } @@ -418,9 +418,9 @@ static void scanStaticFields(const ClassObject *clazz, GcMarkContext *ctx) assert(clazz != NULL); assert(ctx != NULL); for (int i = 0; i < clazz->sfieldCount; ++i) { - char ch = clazz->sfields[i].field.signature[0]; + char ch = clazz->sfields[i].signature[0]; if (ch == '[' || ch == 'L') { - Object *obj = (Object *)clazz->sfields[i].value.l; + Object *obj = clazz->sfields[i].value.l; markObject(obj, ctx); } } |