[fpc-devel] Bug in PWidechar and refcounting
Peter Vreman
peter at freepascal.org
Sun Feb 13 21:37:32 CET 2005
> Hi all,
>
> the bug-report on the website doesn't work, so I write a mail:
>
> If you assign a widechar to a pwidechar, the refcount isn't
> increased. This construct is often used in the variants-code, which is
> allowed, according to the comments at the top of wstrings.inc.
>
> An example:
>
> Program test;
>
> var PW : PWideChar;
> dummy : AnsiString;
>
> procedure Set_PW;
>
> var
> W : WideString;
> s : ansistring;
>
> begin
> s := 'Hello world'; // Can't assign directly to W, because that's
> W := s; // interpreted as a constant with a refcount of -1
>
> PW := PWideChar(W); // <- Bug, refcount of W (and PW) isn't increased
> end; // <- Memory at @W is deallocated, since refcount=0
Kylix doesn't increase the refcount. Add the following line before and
after the assignment to print the refcount:
writeln(plongint(pchar(w)-8)^);
More information about the fpc-devel
mailing list