/* doop.c
*
* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- * 2001, 2002, 2004, 2005, 2006, 2007, 2008, by Larry Wall and others
+ * 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 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.
if (complement && !del)
rlen = tbl[0x100];
-#ifdef MACOS_TRADITIONAL
-#define comp CoMP /* "comp" is a keyword in some compilers ... */
-#endif
-
if (PL_op->op_private & OPpTRANS_SQUASH) {
UV pch = 0xfeedface;
while (s < send) {
}
#ifdef UV_IS_QUAD
else if (size == 64) {
- if (ckWARN(WARN_PORTABLE))
- Perl_warner(aTHX_ packWARN(WARN_PORTABLE),
- "Bit vector size > 32 non-portable");
+ Perl_ck_warner(aTHX_ packWARN(WARN_PORTABLE),
+ "Bit vector size > 32 non-portable");
if (uoffset >= srclen)
retnum = 0;
else if (uoffset + 1 >= srclen)
s[uoffset + 3];
#ifdef UV_IS_QUAD
else if (size == 64) {
- if (ckWARN(WARN_PORTABLE))
- Perl_warner(aTHX_ packWARN(WARN_PORTABLE),
- "Bit vector size > 32 non-portable");
+ Perl_ck_warner(aTHX_ packWARN(WARN_PORTABLE),
+ "Bit vector size > 32 non-portable");
retnum =
((UV) s[uoffset ] << 56) +
((UV) s[uoffset + 1] << 48) +
}
#ifdef UV_IS_QUAD
else if (size == 64) {
- if (ckWARN(WARN_PORTABLE))
- Perl_warner(aTHX_ packWARN(WARN_PORTABLE),
- "Bit vector size > 32 non-portable");
+ Perl_ck_warner(aTHX_ packWARN(WARN_PORTABLE),
+ "Bit vector size > 32 non-portable");
s[offset ] = (U8)((lval >> 56) & 0xff);
s[offset+1] = (U8)((lval >> 48) & 0xff);
s[offset+2] = (U8)((lval >> 40) & 0xff);
}
nope:
- if (svrecode)
- SvREFCNT_dec(svrecode);
+ SvREFCNT_dec(svrecode);
Safefree(temp_buffer);
return count;
if (sv != left || (optype != OP_BIT_AND && !SvOK(sv) && !SvGMAGICAL(sv)))
sv_setpvs(sv, ""); /* avoid undef warning on |= and ^= */
- lsave = lc = SvPV_nomg_const(left, leftlen);
+ if (sv == left) {
+ lsave = lc = SvPV_force_nomg(left, leftlen);
+ }
+ else {
+ lsave = lc = SvPV_nomg_const(left, leftlen);
+ SvPV_force_nomg_nolen(sv);
+ }
rsave = rc = SvPV_nomg_const(right, rightlen);
/* This need to come after SvPV to ensure that string overloading has
}
LvTYPE(TARG) = 'k';
if (LvTARG(TARG) != (const SV *)keys) {
- if (LvTARG(TARG))
- SvREFCNT_dec(LvTARG(TARG));
+ SvREFCNT_dec(LvTARG(TARG));
LvTARG(TARG) = SvREFCNT_inc_simple(keys);
}
PUSHs(TARG);