Further clean-up now that class == NULL has been eliminated.
Change-Id: I8be4bb4e46813ec04a0f8cd22d30f9e9b28895f0
diff --git a/vm/alloc/MarkSweep.c b/vm/alloc/MarkSweep.c
index 5d2f859..c87c043 100644
--- a/vm/alloc/MarkSweep.c
+++ b/vm/alloc/MarkSweep.c
@@ -509,23 +509,15 @@
assert(obj != NULL);
assert(ctx != NULL);
- /* Check that the object is aligned. */
- assert(((uintptr_t)obj & 7) == 0);
+ assert(obj->clazz != NULL);
clazz = obj->clazz;
- /* Check that the class object is aligned. */
- assert(((uintptr_t)clazz & 7) == 0);
/* Dispatch a type-specific scan routine. */
if (clazz == gDvm.classJavaLangClass) {
scanClassObject((ClassObject *)obj, ctx);
- } else if (clazz == NULL) {
- return;
+ } else if (IS_CLASS_FLAG_SET(clazz, CLASS_ISARRAY)) {
+ scanArrayObject((ArrayObject *)obj, ctx);
} else {
- assert(clazz != NULL);
- if (IS_CLASS_FLAG_SET(clazz, CLASS_ISARRAY)) {
- scanArrayObject((ArrayObject *)obj, ctx);
- } else {
- scanDataObject((DataObject *)obj, ctx);
- }
+ scanDataObject((DataObject *)obj, ctx);
}
}
diff --git a/vm/alloc/Visit.c b/vm/alloc/Visit.c
index 5f7aa9f..103b1f6 100644
--- a/vm/alloc/Visit.c
+++ b/vm/alloc/Visit.c
@@ -156,16 +156,14 @@
{
assert(visitor != NULL);
assert(obj != NULL);
+ assert(obj->clazz != NULL);
LOGV("Entering dvmVisitObject(visitor=%p,obj=%p)", visitor, obj);
if (obj->clazz == gDvm.classJavaLangClass) {
visitClassObject(visitor, (ClassObject *)obj);
+ } else if (IS_CLASS_FLAG_SET(obj->clazz, CLASS_ISARRAY)) {
+ visitArrayObject(visitor, obj);
} else {
- assert(obj->clazz != NULL);
- if (IS_CLASS_FLAG_SET(obj->clazz, CLASS_ISARRAY)) {
- visitArrayObject(visitor, obj);
- } else {
- visitDataObject(visitor, obj);
- }
+ visitDataObject(visitor, obj);
}
LOGV("Exiting dvmVisitObject(visitor=%p,obj=%p)", visitor, obj);
}