[vmkit-commits] [vmkit] r57916 - /vmkit/trunk/lib/JnJVM/Classpath/ClasspathReflect.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Oct 21 12:02:24 PDT 2008


Author: geoffray
Date: Tue Oct 21 14:02:23 2008
New Revision: 57916

URL: http://llvm.org/viewvc/llvm-project?rev=57916&view=rev
Log:
Missed that one: It was causing a sigsegv when collecting in "inappropriate"
moments.


Modified:
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathReflect.h

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathReflect.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathReflect.h?rev=57916&r1=57915&r2=57916&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathReflect.h (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathReflect.h Tue Oct 21 14:02:23 2008
@@ -37,7 +37,7 @@
     obj->pd->MARK_AND_TRACE;
     obj->signers->MARK_AND_TRACE;
     obj->constructor->MARK_AND_TRACE;
-    obj->vmdata->classLoader->MARK_AND_TRACE;
+    if (obj->vmdata) obj->vmdata->classLoader->MARK_AND_TRACE;
   }
 };
 
@@ -54,7 +54,8 @@
     obj->JavaObject::CALL_TRACER;
     obj->name->MARK_AND_TRACE;
     obj->declaringClass->MARK_AND_TRACE;
-    obj->slot->classDef->classLoader->MARK_AND_TRACE;
+    // No need to see if classDef != NULL, it must be.
+    if (obj->slot) obj->slot->classDef->classLoader->MARK_AND_TRACE;
   }
 
 };
@@ -72,7 +73,7 @@
     obj->JavaObject::CALL_TRACER;
     obj->name->MARK_AND_TRACE;
     obj->declaringClass->MARK_AND_TRACE;
-    obj->slot->classDef->classLoader->MARK_AND_TRACE;
+    if (obj->slot) obj->slot->classDef->classLoader->MARK_AND_TRACE;
   }
 
 };
@@ -87,7 +88,7 @@
   static void STATIC_TRACER(JavaObjectConstructor) {
     obj->JavaObject::CALL_TRACER;
     obj->clazz->MARK_AND_TRACE;
-    obj->slot->classDef->classLoader->MARK_AND_TRACE;
+    if (obj->slot) obj->slot->classDef->classLoader->MARK_AND_TRACE;
   }
 
 };





More information about the vmkit-commits mailing list