# define SU_D(X) STMT_START X STMT_END
static void su_debug_log(const char *fmt, ...) {
va_list va;
+ SV *sv;
dTHX;
va_start(va, fmt);
- PerlIO_vprintf(Perl_debug_log, fmt, va);
+ sv = get_sv(__PACKAGE__ "::DEBUG", 0);
+ if (sv && SvTRUE(sv))
+ PerlIO_vprintf(Perl_debug_log, fmt, va);
va_end(va);
return;
}
if (SvRMAGICAL(av)) {
const MAGIC * const tied_magic = mg_find((SV *) av, PERL_MAGIC_tied);
if (tied_magic) {
- SV * const * const negative_indices_glob =
- hv_fetch(SvSTASH(SvRV(SvTIED_obj((SV *) (av), tied_magic))),
- NEGATIVE_INDICES_VAR, 16, 0);
+ SV * const * const negative_indices_glob = hv_fetch(
+ SvSTASH(SvRV(SvTIED_obj((SV *) (av), tied_magic))),
+ NEGATIVE_INDICES_VAR, sizeof(NEGATIVE_INDICES_VAR)-1, 0
+ );
if (negative_indices_glob && SvTRUE(GvSV(*negative_indices_glob)))
return key;
}