=cut */
STATIC STRLEN
-S_is_utf8_char_slow(pTHX_ const U8 *s, const STRLEN len)
+S_is_utf8_char_slow(const U8 *s, const STRLEN len)
{
U8 u = *s;
STRLEN slen;
Perl_is_utf8_char(pTHX_ const U8 *s)
{
const STRLEN len = UTF8SKIP(s);
+ PERL_UNUSED_CONTEXT;
#ifdef IS_UTF8_CHAR
if (IS_UTF8_CHAR_FAST(len))
return IS_UTF8_CHAR(s, len) ? len : 0;
const U8* x = s;
const U8* send;
+ PERL_UNUSED_CONTEXT;
if (!len)
len = strlen((const char *)s);
send = s + len;
const U8* x = s;
const U8* send;
STRLEN c;
+ PERL_UNUSED_CONTEXT;
if (!len)
len = strlen((const char *)s);
U8 *
Perl_utf8_hop(pTHX_ const U8 *s, I32 off)
{
+ PERL_UNUSED_CONTEXT;
/* Note: cannot use UTF8_IS_...() too eagerly here since e.g
* the bitops (especially ~) can create illegal UTF-8.
* In other words: in Perl UTF-8 is not just for Unicode. */
const U8 *send;
I32 count = 0;
+ PERL_UNUSED_CONTEXT;
if (!*is_utf8)
return (U8 *)start;
*is_utf8 = 0;
- Newxz(d, (*len) - count + 1, U8);
+ Newx(d, (*len) - count + 1, U8);
s = start; start = d;
while (s < send) {
U8 c = *s++;
const U8 * const send = s + (*len);
U8 *d;
U8 *dst;
+ PERL_UNUSED_CONTEXT;
- Newxz(d, (*len) * 2 + 1, U8);
+ Newx(d, (*len) * 2 + 1, U8);
dst = d;
while (s < send) {
if (!gv_fetchmeth(stash, "SWASHNEW", 8, -1)) { /* demand load utf8 */
ENTER;
errsv_save = newSVsv(ERRSV);
+ /* It is assumed that callers of this routine are not passing in any
+ user derived data. */
+ /* Need to do this after save_re_context() as it will set PL_tainted to
+ 1 while saving $1 etc (see the code after getrx: in Perl_magic_get).
+ Even line to create errsv_save can turn on PL_tainted. */
+ SAVEBOOL(PL_tainted);
+ PL_tainted = 0;
Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, newSVpvn(pkg,pkg_len),
- Nullsv);
+ NULL);
if (!SvTRUE(ERRSV))
sv_setsv(ERRSV, errsv_save);
SvREFCNT_dec(errsv_save);
STRLEN lcur, xcur, scur;
HV* const hv = (HV*)SvRV(swash);
- SV** const listsvp = hv_fetch(hv, "LIST", 4, FALSE);
- SV** const typesvp = hv_fetch(hv, "TYPE", 4, FALSE);
- SV** const bitssvp = hv_fetch(hv, "BITS", 4, FALSE);
- SV** const nonesvp = hv_fetch(hv, "NONE", 4, FALSE);
- SV** const extssvp = hv_fetch(hv, "EXTRAS", 6, FALSE);
+ SV** const listsvp = hv_fetchs(hv, "LIST", FALSE);
+ SV** const typesvp = hv_fetchs(hv, "TYPE", FALSE);
+ SV** const bitssvp = hv_fetchs(hv, "BITS", FALSE);
+ SV** const nonesvp = hv_fetchs(hv, "NONE", FALSE);
+ SV** const extssvp = hv_fetchs(hv, "EXTRAS", FALSE);
const U8* const typestr = (U8*)SvPV_nolen(*typesvp);
const int typeto = typestr[0] == 'T' && typestr[1] == 'o';
const STRLEN bits = SvUV(*bitssvp);
othersvp = hv_fetch(hv, (char *)namestr, namelen, FALSE);
otherhv = (HV*)SvRV(*othersvp);
- otherbitssvp = hv_fetch(otherhv, "BITS", 4, FALSE);
+ otherbitssvp = hv_fetchs(otherhv, "BITS", FALSE);
otherbits = (STRLEN)SvUV(*otherbitssvp);
if (bits < otherbits)
Perl_croak(aTHX_ "panic: swash_get found swatch size mismatch");
}
if (opc == '+' && otherval)
- ; /* replace with otherval */
+ /*EMPTY*/; /* replace with otherval */
else if (opc == '!' && !otherval)
otherval = 1;
else if (opc == '-' && otherval)