Skip to content

Commit 3892d1b

Browse files
Branislav Zahradníkdemerphq
Branislav Zahradník
authored andcommitted
Refactor opcode.pl - pp_proto.h - move generator code to function
1 parent 6670cf8 commit 3892d1b

File tree

1 file changed

+27
-15
lines changed

1 file changed

+27
-15
lines changed

regen/opcode.pl

+27-15
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
sub generate_opnames_h_epilogue;
3434
sub generate_opnames_h_opcode_predicates;
3535

36+
sub generate_pp_proto_h;
37+
3638
my $restrict_to_core = "if defined(PERL_CORE) || defined(PERL_EXT)";
3739

3840
BEGIN {
@@ -972,6 +974,7 @@ package main;
972974

973975
generate_opcode_h;
974976
generate_opnames_h;
977+
generate_pp_proto_h;
975978

976979
sub gen_op_is_macro {
977980
my ($op_is, $macname) = @_;
@@ -1003,23 +1006,9 @@ sub gen_op_is_macro {
10031006
}
10041007
}
10051008

1006-
my $pp = open_new('pp_proto.h', '>',
1007-
{ by => 'opcode.pl', from => 'its data' });
1008-
1009-
{
1010-
my %funcs;
1011-
for (@ops) {
1012-
my $name = $alias{$_} ? $alias{$_}[0] : "Perl_pp_$_";
1013-
++$funcs{$name};
1014-
}
1015-
for (sort keys %funcs) {
1016-
print $pp qq{PERL_CALLCONV OP *$_(pTHX) __attribute__visibility__("hidden");\n};
1017-
}
1018-
}
1019-
10201009
OP_PRIVATE::print_B_Op_private($oprivpm);
10211010

1022-
foreach ($pp, $oprivpm) {
1011+
foreach ($oprivpm) {
10231012
read_only_bottom_close_and_rename($_);
10241013
}
10251014

@@ -1324,3 +1313,26 @@ sub generate_opnames_h_opcode_predicates {
13241313
gen_op_is_macro( \%OP_IS_DIRHOP, 'OP_IS_DIRHOP');
13251314
gen_op_is_macro( \%OP_IS_INFIX_BIT, 'OP_IS_INFIX_BIT');
13261315
}
1316+
1317+
sub generate_pp_proto_h {
1318+
my $pp = open_new('pp_proto.h', '>', {
1319+
by => 'opcode.pl',
1320+
from => 'its data',
1321+
});
1322+
1323+
my $old = select $pp;
1324+
1325+
my %funcs;
1326+
for (@ops) {
1327+
my $name = $alias{$_} ? $alias{$_}[0] : "Perl_pp_$_";
1328+
++$funcs{$name};
1329+
}
1330+
1331+
for (sort keys %funcs) {
1332+
print $pp qq{PERL_CALLCONV OP *$_(pTHX) __attribute__visibility__("hidden");\n};
1333+
}
1334+
1335+
read_only_bottom_close_and_rename(select);
1336+
1337+
select $old;
1338+
}

0 commit comments

Comments
 (0)