diff options
author | Adrian M. Enache <enache@rdslink.ro> | 2003-12-11 23:04:03 +0000 |
---|---|---|
committer | Enache Adrian <enache@rdslink.ro> | 2003-12-11 23:04:03 +0000 |
commit | 979acdb57942c7eba962592584b8668e204b0c71 (patch) | |
tree | 99449beaf9d8e825baf38c2b22033a13af7857da | |
parent | 8f78557a961555c7d3a0f903d990f4f78b07624a (diff) | |
download | perl-979acdb57942c7eba962592584b8668e204b0c71.tar.gz |
#21866 was wrong. another try to plumb that damn leak.
p4raw-id: //depot/perl@21876
-rw-r--r-- | mg.c | 2 | ||||
-rw-r--r-- | sv.c | 3 |
2 files changed, 2 insertions, 3 deletions
@@ -384,7 +384,7 @@ Perl_mg_free(pTHX_ SV *sv) if (vtbl && vtbl->svt_free) CALL_FPTR(vtbl->svt_free)(aTHX_ sv, mg); if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) { - if (mg->mg_len > 0) + if (mg->mg_len > 0 || mg->mg_type == PERL_MAGIC_utf8) Safefree(mg->mg_ptr); else if (mg->mg_len == HEf_SVKEY) SvREFCNT_dec((SV*)mg->mg_ptr); @@ -6060,8 +6060,7 @@ Perl_sv_pos_b2u(pTHX_ register SV* sv, I32* offsetp) assert(mg); if (!mg->mg_ptr) { - mg->mg_len = PERL_MAGIC_UTF8_CACHESIZE * 2; - Newz(0, cache, mg->mg_len, STRLEN); + Newz(0, cache, PERL_MAGIC_UTF8_CACHESIZE * 2, STRLEN); mg->mg_ptr = (char *) cache; } assert(cache); |