[svn:parrot] r38464 - branches/tt528_vtinit/lib/Parrot/Pmc2c

bacek at svn.parrot.org bacek at svn.parrot.org
Mon May 4 13:07:14 UTC 2009


Author: bacek
Date: Mon May  4 13:07:13 2009
New Revision: 38464
URL: https://trac.parrot.org/parrot/changeset/38464

Log:
Don't call PMC functions directly. Use interp->vtables instead.

Look's like DYNSUPER and Parent.SUPER isn't used now. Because DYNSUPER
previously generates broken C code. And Other.SUPER can't be found by
grep. But change it for consistency sake.

Modified:
   branches/tt528_vtinit/lib/Parrot/Pmc2c/MethodEmitter.pm

Modified: branches/tt528_vtinit/lib/Parrot/Pmc2c/MethodEmitter.pm
==============================================================================
--- branches/tt528_vtinit/lib/Parrot/Pmc2c/MethodEmitter.pm	Mon May  4 13:06:51 2009	(r38463)
+++ branches/tt528_vtinit/lib/Parrot/Pmc2c/MethodEmitter.pm	Mon May  4 13:07:13 2009	(r38464)
@@ -250,7 +250,7 @@
             \bDYNSUPER\b      # Macro: DYNSUPER
             \(\s*(.*?)\)      # capture argument list
           }x,
-            sub { "interp->vtables[$supertype].$name(" . full_arguments($1) . ')' }
+            sub { "interp->vtables[$supertype]->$name(" . full_arguments($1) . ')' }
         );
 
         # Rewrite OtherClass.SUPER(args...)
@@ -260,7 +260,7 @@
             \.SUPER\b         # Macro: SUPER
             \(\s*(.*?)\)      # capture argument list
           }x,
-            sub { "Parrot_${1}_$name(" . full_arguments($2) . ')' }
+            sub { "interp->vtables[enum_class_${1}]->$name(" . full_arguments($2) . ')' }
         );
 
         # Rewrite SUPER(args...)
@@ -269,7 +269,7 @@
             \bSUPER\b         # Macro: SUPER
             \(\s*(.*?)\)      # capture argument list
           }x,
-            sub { "$supermethod(" . full_arguments($1) . ')' }
+            sub { "interp->vtables[$supertype]->$name(" . full_arguments($1) . ')' }
         );
     }
 


More information about the parrot-commits mailing list