/* This would just be an irritant now loading works */
Perl_warner(aTHX_ packWARN(WARN_IO), ":encoding without 'use Encode'");
#endif
- ENTER;
/* The SV is magically freed by load_module */
load_module(PERL_LOADMOD_NOIMPORT, newSVpvn("Encode", 6), Nullsv, Nullsv);
assert(sp == PL_stack_sp);
- LEAVE;
}
PUSHMARK(sp);
PUTBACK;
PERL_ARGS_ASSERT_APPLY_ATTRS;
/* fake up C<use attributes $pkg,$rv,@attrs> */
- ENTER; /* need to protect against side-effects of 'use' */
#define ATTRSMODULE "attributes"
#define ATTRSMODULE_PM "attributes.pm"
newSVOP(OP_CONST, 0,
newRV(target)),
dup_attrlist(attrs))));
- LEAVE;
}
STATIC void
target->op_type == OP_PADAV);
/* Ensure that attributes.pm is loaded. */
- ENTER; /* need to protect against side-effects of 'use' */
/* Don't force the C<use> if we don't need it. */
svp = hv_fetchs(GvHVn(PL_incgv), ATTRSMODULE_PM, FALSE);
if (svp && *svp != &PL_sv_undef)
else
Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT,
newSVpvs(ATTRSMODULE), NULL);
- LEAVE;
/* Need package name for method call. */
pack = newSVOP(OP_CONST, 0, newSVpvs(ATTRSMODULE));
* that it has a PL_parser to play with while doing that, and also
* that it doesn't mess with any existing parser, by creating a tmp
* new parser with lex_start(). This won't actually be used for much,
- * since pp_require() will create another parser for the real work. */
+ * since pp_require() will create another parser for the real work.
+ * The ENTER/LEAVE pair protect callers from any side effects of use. */
ENTER;
SAVEVPTR(PL_curcop);