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: