I have this leak in Indy 10.5.7 (under Delphi 7).
5 – 12 bytes: TIdThreadSafeInteger x 1
21 – 36 bytes: TIdCriticalSection x 2
I use Indy like this:
function getWeb(a,b:Integer):Integer;
var url: string;
H: TIdHttp;
SS: TStringStream;
begin
url := 'http://blabla';
H := TIdHttp.Create(nil);
try
SS := TStringStream.Create('');
try
H.Get(url, SS);
Result := StrToInt(SS.DataString);
FINALLY
SS.Free;
END;
finally H.Free;
end;
The leak itself doesn’t bother me since is on app shutdown. That makes my melon explode is the error message I see every time I shut down the app.
Why this leak appear?
I have checked the Indy web site but it barely makes sense. Anyway, it looks this bug cannot be fixed: the latest version of Indy cannot be compiled with Delphi 7. The only solution might be Indy 9.
Update: it looks like what on the web site calls v10.203 is is actually v10.2.3.
This is a problem that occurs with FastMM memory manager and has been around for a while and there is a lot of information available on fixes. The solution I use in Delphi 2010 is:
Changes:
Hope this helps.