Author: allison
Date: Tue Oct 2 01:11:40 2007
New Revision: 21742
Modified:
branches/pdd15oo/src/mmd.c
branches/pdd15oo/src/pmc/class.pmc
Log:
[pdd15oo] Objects do report a different type number than their base type, but
they aren't references.
Modified: branches/pdd15oo/src/mmd.c
==============================================================================
--- branches/pdd15oo/src/mmd.c (original)
+++ branches/pdd15oo/src/mmd.c Tue Oct 2 01:11:40 2007
@@ -336,7 +336,7 @@
static PMC *
mmd_deref(PARROT_INTERP, NOTNULL(PMC *value))
{
- if (VTABLE_type(interp, value) != value->vtable->base_type)
+ if (!PObj_is_object_TEST(value) && VTABLE_type(interp, value) !=
value->vtable->base_type)
return VTABLE_get_pmc(interp, value);
else
return value;
Modified: branches/pdd15oo/src/pmc/class.pmc
==============================================================================
--- branches/pdd15oo/src/pmc/class.pmc (original)
+++ branches/pdd15oo/src/pmc/class.pmc Tue Oct 2 01:11:40 2007
@@ -1115,6 +1115,9 @@
PObj_custom_mark_SET(object);
PObj_active_destroy_SET(object);
+ /* Flag that it is an object */
+ PObj_is_object_SET(object);
+
/* Initialize the object's underlying structure, pointing it to this
* class. */
obj_guts = mem_allocate_zeroed_typed(Parrot_Object);