[svn:parrot] r39257 - trunk/lib/Parrot/Pmc2c

bacek at svn.parrot.org bacek at svn.parrot.org
Sat May 30 01:44:39 UTC 2009


Author: bacek
Date: Sat May 30 01:44:39 2009
New Revision: 39257
URL: https://trac.parrot.org/parrot/changeset/39257

Log:
[pmc2c] Fix handling of dynpmc in switch-based VTABLE. Fix pcc signatures for fallback.

Modified:
   trunk/lib/Parrot/Pmc2c/PMCEmitter.pm

Modified: trunk/lib/Parrot/Pmc2c/PMCEmitter.pm
==============================================================================
--- trunk/lib/Parrot/Pmc2c/PMCEmitter.pm	Sat May 30 01:44:18 2009	(r39256)
+++ trunk/lib/Parrot/Pmc2c/PMCEmitter.pm	Sat May 30 01:44:39 2009	(r39257)
@@ -983,7 +983,7 @@
         
         my $body = <<"BODY";
     INTVAL type = VTABLE_type(INTERP, value);
-    if (SELF.type() > enum_class_core_max) /* For dynpmc fallback to MMD */
+    if (SELF.type() >= enum_class_core_max) /* For dynpmc fallback to MMD */
         type = enum_class_core_max;
     switch(type) {
 $cases
@@ -1042,10 +1042,9 @@
     my ($self, $ssig, @parameters) = @_;
 
     my $letter = substr($ssig, 0, 1);
-    my $pcc_signature = "PP->" . $letter;
     if ($letter eq 'I') {
         return (
-            $pcc_signature,
+            "PP->" . $letter,
             "INTVAL retval;",
             ', &retval',
             'return retval;',
@@ -1053,7 +1052,7 @@
     }
     elsif ($letter eq 'P') {
         return (
-            $pcc_signature,
+            'PPP->P',
             '',
             ", &$parameters[1]",
             "return $parameters[1];",
@@ -1061,7 +1060,7 @@
     }
     elsif ($letter eq 'v') {
         return (
-            $pcc_signature,
+            'PP->',
             '',
             '',
             'return;',


More information about the parrot-commits mailing list