From: Jarkko Hietaniemi <jhi@iki.fi> Date: Tue, 9 Jan 2001 09:30:59 -0600 > Now that these failures have been fixed :-) I'm attaching Simon's > original torture.pl, which still seems to have "issues". ... It is my bug from "`grows' optimization". Here is a patch. ================================================================== --- doop.c~ Tue Jan 9 17:11:01 2001 +++ doop.c Wed Jan 10 11:43:11 2001 @@ -333,9 +333,11 @@ dend = dstart + nlen; } } - if (grows) { + if (grows || hibit) { sv_setpvn(sv, (char*)dstart, d - dstart); Safefree(dstart); + if (grows && hibit) + Safefree(start); } else { *d = '\0'; @@ -343,8 +345,6 @@ } SvSETMAGIC(sv); SvUTF8_on(sv); - if (hibit) - Safefree(start); if (!isutf8 && !(PL_hints & HINT_UTF8)) sv_utf8_downgrade(sv, TRUE); @@ -517,17 +517,17 @@ s += UTF8SKIP(s); } } - if (grows) { + if (grows || hibit) { sv_setpvn(sv, (char*)dstart, d - dstart); Safefree(dstart); + if (grows && hibit) + Safefree(start); } else { *d = '\0'; SvCUR_set(sv, d - dstart); } SvUTF8_on(sv); - if (hibit) - Safefree(start); if (!isutf8 && !(PL_hints & HINT_UTF8)) sv_utf8_downgrade(sv, TRUE); SvSETMAGIC(sv); =================================================================== -- Inaba Hiroto <inaba@sdd.tokyo-sc.toshiba.co.jp/inaba@st.rim.or.jp>Thread Previous | Thread Next