[svn:parrot] r44834 - branches/fix_hll_mmd/lib/Parrot/Pmc2c/PMC
chromatic at svn.parrot.org
chromatic at svn.parrot.org
Wed Mar 10 00:19:18 UTC 2010
Author: chromatic
Date: Wed Mar 10 00:19:16 2010
New Revision: 44834
URL: https://trac.parrot.org/parrot/changeset/44834
Log:
[lib] Allowed Objects inheriting from PMCProxy to pass through the proxied PMC
to MMD math vtables, if they exist.
Modified:
branches/fix_hll_mmd/lib/Parrot/Pmc2c/PMC/Object.pm
Modified: branches/fix_hll_mmd/lib/Parrot/Pmc2c/PMC/Object.pm
==============================================================================
--- branches/fix_hll_mmd/lib/Parrot/Pmc2c/PMC/Object.pm Tue Mar 9 23:34:32 2010 (r44833)
+++ branches/fix_hll_mmd/lib/Parrot/Pmc2c/PMC/Object.pm Wed Mar 10 00:19:16 2010 (r44834)
@@ -1,6 +1,6 @@
package Parrot::Pmc2c::PMC::Object;
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
use base 'Parrot::Pmc2c::PMC';
@@ -69,12 +69,8 @@
Parrot_pcc_invoke_sub_from_c_args(interp, meth, "Pi$pcc_sig", pmc$pcc_args);
$pcc_return_stmt
}
- /* method name is $vt_method_name */
-EOC
- # Multiply dispatched math opcodes shouldn't be invoked on a proxy object.
- unless ($self->vtable_method_does_multi($vt_method_name)) {
- $method_body_text .= <<"EOC";
+ /* method name is $vt_method_name */
if (cur_class->vtable->base_type == enum_class_PMCProxy) {
/* Get the PMC instance and call the vtable method on that. */
STRING * const proxy = CONST_STRING_GEN(interp, "proxy");
@@ -85,11 +81,8 @@
$void_return
}
}
-EOC
- }
-
- $method_body_text .= <<"EOC";
}
+
${return}SUPER($superargs);
$void_return
EOC
More information about the parrot-commits
mailing list