Hi,
IMO, the code below incorrectly implements the try/finally concept for both aResponseStream and aRequestStream.
procedure TROWinHttpWorker.Callback(Caller: TROThreadPool; aThread: TThread);
var
...
aRequestStream: TROBinaryMemoryStream;
aResponseStream: TROBinaryMemoryStream;
begin
aRequestStream := TROBinaryMemoryStream.Create;
aRequestStream.Write(...
try
...
finally
FreeOrDisposeOf(aRequestStream);
FreeOrDisposeOf(aResponseStream);
end;
end;
A possible solution could be
procedure TROWinHttpWorker.Callback(Caller: TROThreadPool; aThread: TThread);
var
...
aRequestStream: TROBinaryMemoryStream;
aResponseStream: TROBinaryMemoryStream;
begin
aResponseStream := nil;
aRequestStream := TROBinaryMemoryStream.Create;
try
aRequestStream.Write(...
...
finally
FreeOrDisposeOf(aRequestStream);
FreeOrDisposeOf(aResponseStream);
end;
end;
Best regards
Alexander