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

Reply via email to