Skip to content

Commit 43cb571

Browse files
committed
Use newSVpvn_flags() rather than sv_2mortal(newSVpvn_utf8)
1 parent e792078 commit 43cb571

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

class.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ static void S_ensure_module_version(pTHX_ SV *module, SV *version)
472472
static void S_split_attr_nameval(pTHX_ SV *sv, SV **namp, SV **valp)
473473
{
474474
STRLEN svlen = SvCUR(sv);
475-
bool do_utf8 = SvUTF8(sv);
475+
U32 do_utf8 = SvUTF8(sv) ? SVf_UTF8 : 0;
476476

477477
const char *paren_at = (const char *)memchr(SvPVX(sv), '(', svlen);
478478
if(paren_at) {
@@ -486,7 +486,7 @@ static void S_split_attr_nameval(pTHX_ SV *sv, SV **namp, SV **valp)
486486
*/
487487
/* diag_listed_as: SKIPME */
488488
croak("Malformed attribute string");
489-
*namp = sv_2mortal(newSVpvn_utf8(SvPVX(sv), namelen, do_utf8));
489+
*namp = newSVpvn_flags(SvPVX(sv), namelen, SVs_TEMP|do_utf8);
490490

491491
const char *value_at = paren_at + 1;
492492
const char *value_max = SvPVX(sv) + svlen - 2;
@@ -500,7 +500,7 @@ static void S_split_attr_nameval(pTHX_ SV *sv, SV **namp, SV **valp)
500500
value_max -= 1;
501501

502502
if(value_max >= value_at)
503-
*valp = sv_2mortal(newSVpvn_utf8(value_at, value_max - value_at + 1, do_utf8));
503+
*valp = newSVpvn_flags(value_at, value_max - value_at + 1, SVs_TEMP|do_utf8);
504504
else
505505
*valp = NULL;
506506
}

hv.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -648,11 +648,11 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
648648

649649
if (keysv || is_utf8) {
650650
if (!keysv) {
651-
keysv = newSVpvn_utf8(key, klen, TRUE);
651+
keysv = newSVpvn_flags(key, klen, SVf_UTF8|SVs_TEMP);
652652
} else {
653-
keysv = newSVsv(keysv);
653+
keysv = sv_2mortal(newSVsv(keysv));
654654
}
655-
mg_copy(MUTABLE_SV(hv), sv, (char *)sv_2mortal(keysv), HEf_SVKEY);
655+
mg_copy(MUTABLE_SV(hv), sv, (char *)keysv, HEf_SVKEY);
656656
} else {
657657
mg_copy(MUTABLE_SV(hv), sv, key, klen);
658658
}

0 commit comments

Comments
 (0)