X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=utf8.c;h=6155fabe3cdad5b69a0306fba48dc81558870ba5;hb=6c3fb703f2b4baeb80013bb4dcb062d7252ba482;hp=984cd1439a6dea55fceac8c59a86ccb7dcca8fc3;hpb=b5f8cc5c1ad883dce8b5a96bed64f2340aa86716;p=p5sagit%2Fp5-mst-13.2.git diff --git a/utf8.c b/utf8.c index 984cd14..6155fab 100644 --- a/utf8.c +++ b/utf8.c @@ -232,7 +232,7 @@ Perl_is_utf8_string(pTHX_ U8 *s, STRLEN len) U8* send; STRLEN c; - if (!len) + if (!len && s) len = strlen((char *)s); send = s + len; @@ -272,7 +272,7 @@ Perl_is_utf8_string_loc(pTHX_ U8 *s, STRLEN len, U8 **p) U8* send; STRLEN c; - if (!len) + if (!len && s) len = strlen((char *)s); send = s + len; @@ -1564,13 +1564,16 @@ Perl_swash_init(pTHX_ char* pkg, char* name, SV *listsv, I32 minbits, I32 none) SV* retval; SV* tokenbufsv = sv_2mortal(NEWSV(0,0)); dSP; - HV *stash = gv_stashpvn(pkg, strlen(pkg), FALSE); + size_t pkg_len = strlen(pkg); + size_t name_len = strlen(name); + HV *stash = gv_stashpvn(pkg, pkg_len, FALSE); SV* errsv_save; if (!gv_fetchmeth(stash, "SWASHNEW", 8, -1)) { /* demand load utf8 */ ENTER; errsv_save = newSVsv(ERRSV); - Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, newSVpv(pkg,0), Nullsv); + Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, newSVpvn(pkg,pkg_len), + Nullsv); if (!SvTRUE(ERRSV)) sv_setsv(ERRSV, errsv_save); SvREFCNT_dec(errsv_save); @@ -1580,8 +1583,8 @@ Perl_swash_init(pTHX_ char* pkg, char* name, SV *listsv, I32 minbits, I32 none) PUSHSTACKi(PERLSI_MAGIC); PUSHMARK(SP); EXTEND(SP,5); - PUSHs(sv_2mortal(newSVpvn(pkg, strlen(pkg)))); - PUSHs(sv_2mortal(newSVpvn(name, strlen(name)))); + PUSHs(sv_2mortal(newSVpvn(pkg, pkg_len))); + PUSHs(sv_2mortal(newSVpvn(name, name_len))); PUSHs(listsv); PUSHs(sv_2mortal(newSViv(minbits))); PUSHs(sv_2mortal(newSViv(none)));