[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