Author: Whiteknight
Date: Thu Aug 14 16:52:47 2008
New Revision: 30239

Modified:
   branches/gsoc_pdd09/src/gc/gc_it.c
   branches/gsoc_pdd09/src/pmc/class.pmc
   branches/gsoc_pdd09/src/pmc/object.pmc

Log:
[gsoc_pdd09] add a series of obnoxious diagnostic messages.

Modified: branches/gsoc_pdd09/src/gc/gc_it.c
==============================================================================
--- branches/gsoc_pdd09/src/gc/gc_it.c  (original)
+++ branches/gsoc_pdd09/src/gc/gc_it.c  Thu Aug 14 16:52:47 2008
@@ -1341,9 +1341,9 @@
 UINTVAL
 gc_it_pmc_dead(ARGIN(PMC * p))
 {
-    return(p->pmc_ext    == (PMC *)0xdeadbeef ||
-        p->vtable        == (PMC *)0xdeadbeef ||
-        PMC_pmc_val(pmc) == (PMC *)0xdeadbeef);
+    return(p->pmc_ext    == (PMC_EXT *)0xdeadbeef ||
+        p->vtable        == (void *)0xdeadbeef ||
+        PMC_pmc_val(p)   == (PMC *)0xdeadbeef);
 }
 
 #  endif

Modified: branches/gsoc_pdd09/src/pmc/class.pmc
==============================================================================
--- branches/gsoc_pdd09/src/pmc/class.pmc       (original)
+++ branches/gsoc_pdd09/src/pmc/class.pmc       Thu Aug 14 16:52:47 2008
@@ -173,6 +173,11 @@
     INTVAL        type_num;
 
     /* Ensure we actually have some initialization info. */
+#  if GC_IT_DEBUG
+    if (gc_it_pmc_dead(self)) {
+        fprintf(stderr, "init_class_from_hash from dead PMC %p\n", self);
+    }
+# endif
     if (PMC_IS_NULL(info))
         return;
 

Modified: branches/gsoc_pdd09/src/pmc/object.pmc
==============================================================================
--- branches/gsoc_pdd09/src/pmc/object.pmc      (original)
+++ branches/gsoc_pdd09/src/pmc/object.pmc      Thu Aug 14 16:52:47 2008
@@ -731,6 +731,12 @@
         PARROT_ASSERT(master->vtables[type_num]->pmc_class);
         /* don't want the referenced class disappearing on us */
         LOCK_INTERPRETER(master);
+#  if GC_IT_DEBUG
+        if (gc_it_pmc_dead(master->vtables[type_num]->pmc_class)) {
+            fprintf(stderr, "object->share_ro uses dead pmc class %p\n",
+                master->vtables[type_num]->pmc_class);
+        }
+#  endif
         SELF->vtable->pmc_class = master->vtables[type_num]->pmc_class;
         UNLOCK_INTERPRETER(master);
 

Reply via email to