On Thu, 29 Oct 2009 15:00:53 +0200 Graeme Geldenhuys <graemeg.li...@gmail.com> wrote:
> Hi, > > Do I create a memory leak if I cast a PChar it a AnsiString. Then > append text to the AnsiString and then cast it back to the original > PChar? > > eg: > var > Text: Pchar; <-- global var containing text. > > procedure AppendText(const AText: string); > var > s: string; > begin > s := Text + AText; ok > Text := PChar(s); wrong, because the local s is the only one having increased the ref count ... > end; ... therefore the 'end' will free the ansistring. BTW 'text' is a system type. > I'm busy converting a old program from OS/2 days that used PChar > exensively. I'm slowly but surely converting this code to AnsiString. > But as a quick fix, am I allowed to do what is shown above? Without > causing memory leaks or something else? Mattias _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal