/* doop.c
*
* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2004, 2005, 2006, by Larry Wall and others
+ * 2000, 2001, 2002, 2004, 2005, 2006, 2007, by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
const I32 grows = PL_op->op_private & OPpTRANS_GROWS;
STRLEN len;
- SV* const rv = (SV*)cSVOP->op_sv;
+ SV* const rv =
+#ifdef USE_ITHREADS
+ PAD_SVl(cPADOP->op_padix);
+#else
+ (SV*)cSVOP->op_sv;
+#endif
HV* const hv = (HV*)SvRV(rv);
SV* const * svp = hv_fetchs(hv, "NONE", FALSE);
const UV none = svp ? SvUV(*svp) : 0x7fffffff;
I32 matches = 0;
STRLEN len;
- SV* const rv = (SV*)cSVOP->op_sv;
+ SV* const rv =
+#ifdef USE_ITHREADS
+ PAD_SVl(cPADOP->op_padix);
+#else
+ (SV*)cSVOP->op_sv;
+#endif
HV* const hv = (HV*)SvRV(rv);
SV* const * const svp = hv_fetchs(hv, "NONE", FALSE);
const UV none = svp ? SvUV(*svp) : 0x7fffffff;
const I32 squash = PL_op->op_private & OPpTRANS_SQUASH;
const I32 del = PL_op->op_private & OPpTRANS_DELETE;
const I32 grows = PL_op->op_private & OPpTRANS_GROWS;
- SV * const rv = (SV*)cSVOP->op_sv;
+ SV* const rv =
+#ifdef USE_ITHREADS
+ PAD_SVl(cPADOP->op_padix);
+#else
+ (SV*)cSVOP->op_sv;
+#endif
HV * const hv = (HV*)SvRV(rv);
SV * const *svp = hv_fetchs(hv, "NONE", FALSE);
const UV none = svp ? SvUV(*svp) : 0x7fffffff;
UV retnum = 0;
if (offset < 0)
- return retnum;
+ return 0;
if (size < 1 || (size & (size-1))) /* size < 1 or not a power of two */
Perl_croak(aTHX_ "Illegal number of bits in vec");
/* Avoid triggering overloading again by using temporaries.
Maybe there should be a variant of sv_utf8_upgrade that takes pvn
*/
- right = sv_2mortal(newSVpvn(rsave, rightlen));
+ right = newSVpvn_flags(rsave, rightlen, SVs_TEMP);
sv_utf8_upgrade(right);
rsave = rc = SvPV_nomg_const(right, rightlen);
right_utf = TRUE;
}
else if (!left_utf && right_utf) {
- left = sv_2mortal(newSVpvn(lsave, leftlen));
+ left = newSVpvn_flags(lsave, leftlen, SVs_TEMP);
sv_utf8_upgrade(left);
lsave = lc = SvPV_nomg_const(left, leftlen);
left_utf = TRUE;