diff options
-rw-r--r-- | opcode.h | 4 | ||||
-rwxr-xr-x | opcode.pl | 16 |
2 files changed, 17 insertions, 3 deletions
@@ -894,8 +894,8 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ MEMBER_TO_FPTR(Perl_pp_aelem), MEMBER_TO_FPTR(Perl_pp_aslice), MEMBER_TO_FPTR(Perl_pp_each), - MEMBER_TO_FPTR(Perl_pp_values), - MEMBER_TO_FPTR(Perl_pp_keys), + MEMBER_TO_FPTR(Perl_do_kv), + MEMBER_TO_FPTR(Perl_do_kv), MEMBER_TO_FPTR(Perl_pp_delete), MEMBER_TO_FPTR(Perl_pp_exists), MEMBER_TO_FPTR(Perl_pp_rv2hv), @@ -33,6 +33,19 @@ while (<DATA>) { $args{$key} = $args; } +# Set up aliases + +my %alias; + +# Format is "this function" => "does these op names" +my @raw_alias = ( + Perl_do_kv => 'keys values', + ); + +while (my ($func, $names) = splice @raw_alias, 0, 2) { + $alias{$_} = $func foreach split ' ', $names; +} + # Emit defines. $i = 0; @@ -170,7 +183,8 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */ END for (@ops) { - print "\tMEMBER_TO_FPTR(Perl_pp_$_),\n" unless $_ eq "custom"; + my $name = $alias{$_} || "Perl_pp_$_"; + print "\tMEMBER_TO_FPTR($name),\n" unless $_ eq "custom"; } print <<END; |