Skip to content

Commit 6330aeb

Browse files
author
Branislav Zahradník
committed
NewOp_v542 - remove unused magic numbers
NewOp's first argument has been unused since 2007 but remains required, polluting the codebase with magic numbers. A new macro is provided that eliminates these magic numbers while maintaining backward/forward compatibility through Perl version identification in its name.
1 parent a919938 commit 6330aeb

File tree

6 files changed

+31
-27
lines changed

6 files changed

+31
-27
lines changed

ext/Devel-Peek/Peek.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
package Devel::Peek;
55

6-
$VERSION = '1.36';
6+
$VERSION = '1.37';
77
$XS_VERSION = $VERSION;
88
$VERSION = eval $VERSION;
99

ext/Devel-Peek/Peek.xs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ S_ck_dump(pTHX_ OP *entersubop, GV *namegv, SV *cv)
396396

397397
/* then attach first (and second) to a new binop */
398398

399-
NewOp(1234, newop, 1, BINOP);
399+
NewOp_v542 (newop, 1, BINOP);
400400
newop->op_type = OP_CUSTOM;
401401
newop->op_ppaddr = S_pp_dump;
402402
newop->op_private= second ? 2 : 1;

ext/XS-APItest/APItest.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use strict;
44
use warnings;
55
use Carp;
66

7-
our $VERSION = '1.40';
7+
our $VERSION = '1.41';
88

99
require XSLoader;
1010

ext/XS-APItest/APItest.xs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ static OP *
667667
THX_mkUNOP(pTHX_ U32 type, OP *first)
668668
{
669669
UNOP *unop;
670-
NewOp(1103, unop, 1, UNOP);
670+
NewOp_v542 (unop, 1, UNOP);
671671
unop->op_type = (OPCODE)type;
672672
op_sibling_splice((OP*)unop, NULL, 0, first);
673673
return (OP *)unop;
@@ -678,7 +678,7 @@ static OP *
678678
THX_mkBINOP(pTHX_ U32 type, OP *first, OP *last)
679679
{
680680
BINOP *binop;
681-
NewOp(1103, binop, 1, BINOP);
681+
NewOp_v542 (binop, 1, BINOP);
682682
binop->op_type = (OPCODE)type;
683683
op_sibling_splice((OP*)binop, NULL, 0, last);
684684
op_sibling_splice((OP*)binop, NULL, 0, first);
@@ -690,7 +690,7 @@ static OP *
690690
THX_mkLISTOP(pTHX_ U32 type, OP *first, OP *sib, OP *last)
691691
{
692692
LISTOP *listop;
693-
NewOp(1103, listop, 1, LISTOP);
693+
NewOp_v542 (listop, 1, LISTOP);
694694
listop->op_type = (OPCODE)type;
695695
op_sibling_splice((OP*)listop, NULL, 0, last);
696696
op_sibling_splice((OP*)listop, NULL, 0, sib);

op.c

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1735,7 +1735,7 @@ Perl_alloc_LOGOP(pTHX_ I32 type, OP *first, OP* other)
17351735
{
17361736
LOGOP *logop;
17371737
OP *kid = first;
1738-
NewOp(1101, logop, 1, LOGOP);
1738+
NewOp_v542 (logop, 1, LOGOP);
17391739
OpTYPE_set(logop, type);
17401740
logop->op_first = first;
17411741
logop->op_other = other;
@@ -4395,7 +4395,7 @@ Perl_cmpchain_start(pTHX_ I32 type, OP *left, OP *right)
43954395
right = newOP(OP_NULL, 0);
43964396
scalar(left);
43974397
scalar(right);
4398-
NewOp(0, bop, 1, BINOP);
4398+
NewOp_v542 (bop, 1, BINOP);
43994399
op = (OP*)bop;
44004400
ASSUME((PL_opargs[type] & OA_CLASS_MASK) == OA_BINOP);
44014401
OpTYPE_set(op, type);
@@ -4418,14 +4418,14 @@ Perl_cmpchain_extend(pTHX_ I32 type, OP *ch, OP *right)
44184418
if (!right)
44194419
right = newOP(OP_NULL, 0);
44204420
scalar(right);
4421-
NewOp(0, bop, 1, BINOP);
4421+
NewOp_v542 (bop, 1, BINOP);
44224422
op = (OP*)bop;
44234423
ASSUME((PL_opargs[type] & OA_CLASS_MASK) == OA_BINOP);
44244424
OpTYPE_set(op, type);
44254425
if (ch->op_type != OP_NULL) {
44264426
UNOP *lch;
44274427
OP *nch, *cleft, *cright;
4428-
NewOp(0, lch, 1, UNOP);
4428+
NewOp_v542 (lch, 1, UNOP);
44294429
nch = (OP*)lch;
44304430
OpTYPE_set(nch, OP_NULL);
44314431
nch->op_flags = OPf_KIDS;
@@ -5716,7 +5716,7 @@ Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
57165716
assert((PL_opargs[type] & OA_CLASS_MASK) == OA_LISTOP
57175717
|| type == OP_CUSTOM);
57185718

5719-
NewOp(1101, listop, 1, LISTOP);
5719+
NewOp_v542 (listop, 1, LISTOP);
57205720
OpTYPE_set(listop, type);
57215721
if (first || last)
57225722
flags |= OPf_KIDS;
@@ -5809,7 +5809,7 @@ Perl_newOP(pTHX_ I32 type, I32 flags)
58095809
|| (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
58105810
|| (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP);
58115811

5812-
NewOp(1101, o, 1, OP);
5812+
NewOp_v542 (o, 1, OP);
58135813
OpTYPE_set(o, type);
58145814
o->op_flags = (U8)flags;
58155815

@@ -5863,7 +5863,7 @@ Perl_newUNOP(pTHX_ I32 type, I32 flags, OP *first)
58635863
if (PL_opargs[type] & OA_MARK)
58645864
first = op_force_list(first);
58655865

5866-
NewOp(1101, unop, 1, UNOP);
5866+
NewOp_v542 (unop, 1, UNOP);
58675867
OpTYPE_set(unop, type);
58685868
unop->op_first = first;
58695869
unop->op_flags = (U8)(flags | OPf_KIDS);
@@ -5896,7 +5896,7 @@ Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP *first, UNOP_AUX_item *aux)
58965896
assert((PL_opargs[type] & OA_CLASS_MASK) == OA_UNOP_AUX
58975897
|| type == OP_CUSTOM);
58985898

5899-
NewOp(1101, unop, 1, UNOP_AUX);
5899+
NewOp_v542 (unop, 1, UNOP_AUX);
59005900
unop->op_type = (OPCODE)type;
59015901
unop->op_ppaddr = PL_ppaddr[type];
59025902
unop->op_first = first;
@@ -5934,7 +5934,7 @@ S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP* dynamic_meth, SV* const_meth
59345934
assert((PL_opargs[type] & OA_CLASS_MASK) == OA_METHOP
59355935
|| type == OP_CUSTOM);
59365936

5937-
NewOp(1101, methop, 1, METHOP);
5937+
NewOp_v542 (methop, 1, METHOP);
59385938
if (dynamic_meth) {
59395939
if (PL_opargs[type] & OA_MARK) dynamic_meth = op_force_list(dynamic_meth);
59405940
methop->op_flags = (U8)(flags | OPf_KIDS);
@@ -6031,7 +6031,7 @@ Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
60316031
return first;
60326032
}
60336033

6034-
NewOp(1101, binop, 1, BINOP);
6034+
NewOp_v542 (binop, 1, BINOP);
60356035

60366036
OpTYPE_set(binop, type);
60376037
binop->op_first = first;
@@ -6074,7 +6074,7 @@ Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
60746074
? 2 /* Otherwise, minimum of 2 hex digits */\
60756075
: NUM_HEX_CHARS(num)))))))
60766076

6077-
/* To make evident, Configure with `-DDEBUGGING`, build, run
6077+
/* To make evident, Configure with `-DDEBUGGING`, build, run
60786078
* `./perl -Ilib -Dy t/op/tr.t`
60796079
*/
60806080
void
@@ -7489,7 +7489,7 @@ Perl_newPMOP(pTHX_ I32 type, I32 flags)
74897489
assert((PL_opargs[type] & OA_CLASS_MASK) == OA_PMOP
74907490
|| type == OP_CUSTOM);
74917491

7492-
NewOp(1101, pmop, 1, PMOP);
7492+
NewOp_v542 (pmop, 1, PMOP);
74937493
OpTYPE_set(pmop, type);
74947494
pmop->op_flags = (U8)flags;
74957495
pmop->op_private = (U8)(0 | (flags >> 8));
@@ -7980,7 +7980,7 @@ Perl_newSVOP(pTHX_ I32 type, I32 flags, SV *sv)
79807980
|| type == OP_RUNCV
79817981
|| type == OP_CUSTOM);
79827982

7983-
NewOp(1101, svop, 1, SVOP);
7983+
NewOp_v542 (svop, 1, SVOP);
79847984
OpTYPE_set(svop, type);
79857985
svop->op_sv = sv;
79867986
svop->op_next = (OP*)svop;
@@ -8035,7 +8035,7 @@ Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv)
80358035
|| (PL_opargs[type] & OA_CLASS_MASK) == OA_FILESTATOP
80368036
|| type == OP_CUSTOM);
80378037

8038-
NewOp(1101, padop, 1, PADOP);
8038+
NewOp_v542 (padop, 1, PADOP);
80398039
OpTYPE_set(padop, type);
80408040
padop->op_padix =
80418041
pad_alloc(type, isGV(sv) ? SVf_READONLY : SVs_PADTMP);
@@ -8102,7 +8102,7 @@ Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
81028102
|| type == OP_CUSTOM
81038103
|| (PL_opargs[type] & OA_CLASS_MASK) == OA_LOOPEXOP);
81048104

8105-
NewOp(1101, pvop, 1, PVOP);
8105+
NewOp_v542 (pvop, 1, PVOP);
81068106
OpTYPE_set(pvop, type);
81078107
pvop->op_pv = pv;
81088108
pvop->op_next = (OP*)pvop;
@@ -8903,7 +8903,7 @@ Perl_newSTATEOP(pTHX_ I32 flags, char *label, OP *o)
89038903

89048904
flags &= ~SVf_UTF8;
89058905

8906-
NewOp(1101, cop, 1, COP);
8906+
NewOp_v542 (cop, 1, COP);
89078907
if (PERLDB_LINE && CopLINE(PL_curcop) && PL_curstash != PL_debstash) {
89088908
OpTYPE_set(cop, OP_DBSTATE);
89098909
}
@@ -9617,7 +9617,7 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop,
96179617
o = listop;
96189618

96199619
if (!loop) {
9620-
NewOp(1101,loop,1,LOOP);
9620+
NewOp_v542 (loop,1,LOOP);
96219621
OpTYPE_set(loop, OP_ENTERLOOP);
96229622
loop->op_private = 0;
96239623
loop->op_next = (OP*)loop;
@@ -9931,7 +9931,7 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont)
99319931
{
99329932
/* no space; allocate new op */
99339933
LOOP *tmp;
9934-
NewOp(1234,tmp,1,LOOP);
9934+
NewOp_v542 (tmp,1,LOOP);
99359935
Copy(loop,tmp,1,LISTOP);
99369936
assert(loop->op_last->op_sibparent == (OP*)loop);
99379937
OpLASTSIB_set(loop->op_last, (OP*)tmp); /*point back to new parent */

op.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -702,8 +702,12 @@ least an C<UNOP>.
702702
#include "reentr.h"
703703
#endif
704704

705-
#define NewOp(m,var,c,type) \
706-
(var = (type *) Perl_Slab_Alloc(aTHX_ c*sizeof(type)))
705+
#define NewOp(m,var,c,type) \
706+
NewOp_v542 (0, var, c, type)
707+
708+
#define NewOp_v542(Var, Count, Type) \
709+
(Var = (Type *) Perl_Slab_Alloc (aTHX_ Count * sizeof (Type)))
710+
707711
#define NewOpSz(m,var,size) \
708712
(var = (OP *) Perl_Slab_Alloc(aTHX_ size))
709713
#define FreeOp(p) Perl_Slab_Free(aTHX_ p)
@@ -918,7 +922,7 @@ Reenable a member of the XOP which has been disabled.
918922
*/
919923

920924
struct custom_op {
921-
U32 xop_flags;
925+
U32 xop_flags;
922926
const char *xop_name;
923927
const char *xop_desc;
924928
U32 xop_class;

0 commit comments

Comments
 (0)