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);