Frank Heckenbach wrote:
Waldek Hebisch wrote:
Frank Heckenbach wrote:
Waldek Hebisch wrote:
<snip> > > but with this specification the fix > > would be to change the third parameter to StringTFDD_Reset into a var > > parameter. > > That's why I did so.
I mean that to fix StringTFDD_Reset the rest of the patch is not needed.
Perhaps the previous code was not strictly wrong, but it was quite fragile. It relied on a temp copy made during parameter conversion for the internal call to ReadStr_Init to last over subsequent calls. (Besides, the new code might produce somewhat more efficient code, as it avoids a few unnecessary copies. As you said, the other bug, where a necessary copy isn't made, is independent of my patch.)
The change looks like a good one.
And I just checked that full patch caused regression in fjf629e.pas and fjf629g.pas
The patch shouldn't change anything about FormatString (except a detail for CString parameters, which don't occur here).
I also ran the tests, and it didn't fail (with my current code and with 20051116). Perhaps it interfered with your recent changes WRT StringOf? Otherwise it seems to be a somewhat volatile bug, but I don't yet see it. Which regressions do you get?
... Did you rebuild the RTS as I wrote in my original mail? I now did some experiments -- indeed, if I build 20051116 without the patch, then apply the patch, make again without rebuilding the RTS, I get those failures. But these are then simply due to an inconsistent compiler/RTS, I suppose.
My fault: rebuilding RTS fixed the problems.