X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=padop_on_crack.c.inc;h=89dc27b4bd5f92808e0fb68f6680f4c9a3a73560;hb=bd040be664b763fb8e5a01c5365e5e5c0bed2e00;hp=28078a75210b8cb0de2f65771d3bde5b12efc20c;hpb=e158cf8f49978f42fb2380d3f84c5df963a39a3f;p=p5sagit%2FFunction-Parameters.git diff --git a/padop_on_crack.c.inc b/padop_on_crack.c.inc index 28078a7..89dc27b 100644 --- a/padop_on_crack.c.inc +++ b/padop_on_crack.c.inc @@ -1052,6 +1052,23 @@ static PADOFFSET S_pad_findmy(pTHX_ const char *name, U32 flags) { #endif +#ifndef pad_findmy_pvs + #define pad_findmy_pvs(S, FLAGS) S_pad_findmy(aTHX_ "" S "", FLAGS) +#endif + +static OP *S_newDEFSVOP(pTHX) { + dVAR; + const PADOFFSET offset = pad_findmy_pvs("$_", 0); + if (offset == NOT_IN_PAD || PAD_COMPNAME_FLAGS_isOUR(offset)) { + return newSVREF(newGVOP(OP_GV, 0, PL_defgv)); + } + else { + OP * const o = newOP(OP_PADSV, 0); + o->op_targ = offset; + return o; + } +} + static U32 S_intro_my(pTHX) { dVAR; SV **svp;