OSDN Git Service

Merge "Fix for a crash when GC weak references."
authorRomain Guy <romainguy@android.com>
Thu, 24 Feb 2011 19:24:47 +0000 (11:24 -0800)
committerAndroid Code Review <code-review@android.com>
Thu, 24 Feb 2011 19:24:47 +0000 (11:24 -0800)
vm/alloc/MarkSweep.c

index bde1b49..37517e9 100644 (file)
@@ -760,8 +760,7 @@ void dvmClearWhiteRefs(Object **list)
     while (*list != NULL) {
         ref = dequeuePendingReference(list);
         referent = dvmGetFieldObject(ref, referentOffset);
-        assert(referent != NULL);
-        if (!isMarked(referent, ctx)) {
+        if (referent != NULL && !isMarked(referent, ctx)) {
             /* Referent is white, clear it. */
             clearReference(ref);
             if (isEnqueuable(ref)) {