Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions class.c
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,7 @@ static void S_ensure_module_version(pTHX_ SV *module, SV *version)
static void S_split_attr_nameval(pTHX_ SV *sv, SV **namp, SV **valp)
{
STRLEN svlen = SvCUR(sv);
bool do_utf8 = SvUTF8(sv);
U32 do_utf8 = SvUTF8(sv) ? SVf_UTF8 : 0;

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

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

if(value_max >= value_at)
*valp = sv_2mortal(newSVpvn_utf8(value_at, value_max - value_at + 1, do_utf8));
*valp = newSVpvn_flags(value_at, value_max - value_at + 1, SVs_TEMP|do_utf8);
else
*valp = NULL;
}
Expand Down
6 changes: 3 additions & 3 deletions hv.c
Original file line number Diff line number Diff line change
Expand Up @@ -648,11 +648,11 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,

if (keysv || is_utf8) {
if (!keysv) {
keysv = newSVpvn_utf8(key, klen, TRUE);
keysv = newSVpvn_flags(key, klen, SVf_UTF8|SVs_TEMP);
} else {
keysv = newSVsv(keysv);
keysv = sv_2mortal(newSVsv(keysv));
}
mg_copy(MUTABLE_SV(hv), sv, (char *)sv_2mortal(keysv), HEf_SVKEY);
mg_copy(MUTABLE_SV(hv), sv, (char *)keysv, HEf_SVKEY);
} else {
mg_copy(MUTABLE_SV(hv), sv, key, klen);
}
Expand Down