Author: jonathan
Date: Tue Jul 29 10:02:37 2008
New Revision: 29850

Modified:
   trunk/src/pmc/class.pmc

Log:
[rakudo] A different fix for the class created from namespace and MMD bug.

Modified: trunk/src/pmc/class.pmc
==============================================================================
--- trunk/src/pmc/class.pmc     (original)
+++ trunk/src/pmc/class.pmc     Tue Jul 29 10:02:37 2008
@@ -191,6 +191,7 @@
         if (name_arg->vtable->base_type == enum_class_NameSpace) {
             new_namespace = name_arg;
             name_arg      = Parrot_ns_get_name(interp, new_namespace);
+            VTABLE_shift_string(interp, name_arg);
         }
         else {
             PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
@@ -498,16 +499,9 @@
             case enum_class_String:
             case enum_class_Key:
             case enum_class_ResizableStringArray:
-                arg = pmc_new(interp, enum_class_Hash);
-                VTABLE_set_pmc_keyed_str(interp, arg, name_str, init_data);
-                break;
-
             case enum_class_NameSpace:
                 arg = pmc_new(interp, enum_class_Hash);
-                Parrot_PCCINVOKE(interp, init_data, CONST_STRING(interp, 
"get_name"),
-                    "->P", &ns_name);
-                VTABLE_shift_string(interp, ns_name); /* strip HLL name */
-                VTABLE_set_pmc_keyed_str(interp, arg, name_str, ns_name);
+                VTABLE_set_pmc_keyed_str(interp, arg, name_str, init_data);
                 break;
 
             case enum_class_Hash:

Reply via email to