summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embed.fnc2
-rw-r--r--op.c8
-rw-r--r--proto.h3
3 files changed, 7 insertions, 6 deletions
diff --git a/embed.fnc b/embed.fnc
index a51b6b07a6..5c33ad955e 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -567,7 +567,7 @@ ApaR |HV* |newHVhv |NULLOK HV* hv
Apa |IO* |newIO
Apa |OP* |newLISTOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
#ifdef USE_ITHREADS
-Apa |OP* |newPADOP |I32 type|I32 flags|NULLOK SV* sv
+Apa |OP* |newPADOP |I32 type|I32 flags|NN SV* sv
#endif
Apa |OP* |newPMOP |I32 type|I32 flags
Apa |OP* |newPVOP |I32 type|I32 flags|NULLOK char* pv
diff --git a/op.c b/op.c
index 8c5891f617..8e3e5f8624 100644
--- a/op.c
+++ b/op.c
@@ -3433,8 +3433,8 @@ Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv)
padop->op_padix = pad_alloc(type, SVs_PADTMP);
SvREFCNT_dec(PAD_SVl(padop->op_padix));
PAD_SETSV(padop->op_padix, sv);
- if (sv)
- SvPADTMP_on(sv);
+ assert(sv);
+ SvPADTMP_on(sv);
padop->op_next = (OP*)padop;
padop->op_flags = (U8)flags;
if (PL_opargs[type] & OA_RETSCALAR)
@@ -3449,9 +3449,9 @@ OP *
Perl_newGVOP(pTHX_ I32 type, I32 flags, GV *gv)
{
dVAR;
+ assert(gv);
#ifdef USE_ITHREADS
- if (gv)
- GvIN_PAD_on(gv);
+ GvIN_PAD_on(gv);
return newPADOP(type, flags, SvREFCNT_inc_simple(gv));
#else
return newSVOP(type, flags, SvREFCNT_inc_simple(gv));
diff --git a/proto.h b/proto.h
index a76e001734..f9bcc51e35 100644
--- a/proto.h
+++ b/proto.h
@@ -1552,7 +1552,8 @@ PERL_CALLCONV OP* Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
#ifdef USE_ITHREADS
PERL_CALLCONV OP* Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
__attribute__malloc__
- __attribute__warn_unused_result__;
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_3);
#endif
PERL_CALLCONV OP* Perl_newPMOP(pTHX_ I32 type, I32 flags)