Re: [twsocket] httpserver memoryleak

2008-03-16 Thread RTT
You have to nil the stream object

if Assigned(ClientCnx.DocStream) then
begin
ClientCnx.DocStream.Free;
ClientCnx.DocStream:=nil;
end;

of just
Uses SysUtils;

if Assigned(ClientCnx.DocStream) then
freeandnil(ClientCnx.DocStream)

> I tried:
>
>   ClientCnx := TMyHttpConnection(Client);
>   if Assigned(ClientCnx.DocStream) then
> ClientCnx.DocStream.Free;
>
> and FastMM complains:
>
> FastMM has detected an attempt to call a virtual method on a freed object. 
> An access violation will now be raised in order to abort the current 
> operation.
>
> ... etc etc
>
> - Original Message - 
> From: "Francois PIETTE" <[EMAIL PROTECTED]>
> To: "ICS support mailing" 
> Sent: Sunday, March 16, 2008 10:18 PM
> Subject: Re: [twsocket] httpserver memoryleak
>
>
>   
>>> Why? do I have to release this stream?
>>>   
>> Of course you have !
>>
>> 
>>> Where is the place to do it?
>>>   
>> When it has been sent and you don't need it anymore. For example from the
>> OnRequestDone event handler.
>>
>>
>> --
>> [EMAIL PROTECTED]
>> The author of the freeware multi-tier middleware MidWare
>> The author of the freeware Internet Component Suite (ICS)
>> http://www.overbyte.be
>>
>>
>> - Original Message - 
>> From: "George" <[EMAIL PROTECTED]>
>> To: "ICS support mailing" 
>> Sent: Sunday, March 16, 2008 6:49 PM
>> Subject: [twsocket] httpserver memoryleak
>>
>>
>> 
>>> Hello,
>>>
>>> I'm using ICS HttpServer and I have a code:
>>>
>>>  ClientCnx.DocStream := TMemoryStream.Create;
>>>  ClientCnx.DocStream.Write(Header[1], Length(Header));
>>>  ClientCnx.DocStream.CopyFrom(MS2, MS2.Size);
>>>  MS2.Free;
>>>  ClientCnx.SendStream;
>>>
>>> Some times the FastMM memory leak tool reports memory leak
>>> in line:
>>>
>>>  ClientCnx.DocStream := TMemoryStream.Create;
>>>
>>> Why? do I have to release this stream?Where is the place to do it?
>>>
>>> Thanks
>>>
>>> -- 
>>> To unsubscribe or change your settings for TWSocket mailing list
>>> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
>>> Visit our website at http://www.overbyte.be
>>>   
>> -- 
>> To unsubscribe or change your settings for TWSocket mailing list
>> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
>> Visit our website at http://www.overbyte.be 
>> 
>
>   

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] httpserver memoryleak

2008-03-16 Thread George
I tried:

  ClientCnx := TMyHttpConnection(Client);
  if Assigned(ClientCnx.DocStream) then
ClientCnx.DocStream.Free;

and FastMM complains:

FastMM has detected an attempt to call a virtual method on a freed object. 
An access violation will now be raised in order to abort the current 
operation.

... etc etc

- Original Message - 
From: "Francois PIETTE" <[EMAIL PROTECTED]>
To: "ICS support mailing" 
Sent: Sunday, March 16, 2008 10:18 PM
Subject: Re: [twsocket] httpserver memoryleak


>> Why? do I have to release this stream?
>
> Of course you have !
>
>> Where is the place to do it?
>
> When it has been sent and you don't need it anymore. For example from the
> OnRequestDone event handler.
>
>
> --
> [EMAIL PROTECTED]
> The author of the freeware multi-tier middleware MidWare
> The author of the freeware Internet Component Suite (ICS)
> http://www.overbyte.be
>
>
> - Original Message - 
> From: "George" <[EMAIL PROTECTED]>
> To: "ICS support mailing" 
> Sent: Sunday, March 16, 2008 6:49 PM
> Subject: [twsocket] httpserver memoryleak
>
>
>> Hello,
>>
>> I'm using ICS HttpServer and I have a code:
>>
>>  ClientCnx.DocStream := TMemoryStream.Create;
>>  ClientCnx.DocStream.Write(Header[1], Length(Header));
>>  ClientCnx.DocStream.CopyFrom(MS2, MS2.Size);
>>  MS2.Free;
>>  ClientCnx.SendStream;
>>
>> Some times the FastMM memory leak tool reports memory leak
>> in line:
>>
>>  ClientCnx.DocStream := TMemoryStream.Create;
>>
>> Why? do I have to release this stream?Where is the place to do it?
>>
>> Thanks
>>
>> -- 
>> To unsubscribe or change your settings for TWSocket mailing list
>> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
>> Visit our website at http://www.overbyte.be
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be 

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] httpserver memoryleak

2008-03-16 Thread George
Hello,

and how can I know which memorystream is that?
I'm sending many requests at the same time!!

Thanks

- Original Message - 
From: "Francois PIETTE" <[EMAIL PROTECTED]>
To: "ICS support mailing" 
Sent: Sunday, March 16, 2008 10:18 PM
Subject: Re: [twsocket] httpserver memoryleak


>> Why? do I have to release this stream?
>
> Of course you have !
>
>> Where is the place to do it?
>
> When it has been sent and you don't need it anymore. For example from the
> OnRequestDone event handler.
>
>
> --
> [EMAIL PROTECTED]
> The author of the freeware multi-tier middleware MidWare
> The author of the freeware Internet Component Suite (ICS)
> http://www.overbyte.be
>
>
> - Original Message - 
> From: "George" <[EMAIL PROTECTED]>
> To: "ICS support mailing" 
> Sent: Sunday, March 16, 2008 6:49 PM
> Subject: [twsocket] httpserver memoryleak
>
>
>> Hello,
>>
>> I'm using ICS HttpServer and I have a code:
>>
>>  ClientCnx.DocStream := TMemoryStream.Create;
>>  ClientCnx.DocStream.Write(Header[1], Length(Header));
>>  ClientCnx.DocStream.CopyFrom(MS2, MS2.Size);
>>  MS2.Free;
>>  ClientCnx.SendStream;
>>
>> Some times the FastMM memory leak tool reports memory leak
>> in line:
>>
>>  ClientCnx.DocStream := TMemoryStream.Create;
>>
>> Why? do I have to release this stream?Where is the place to do it?
>>
>> Thanks
>>
>> -- 
>> To unsubscribe or change your settings for TWSocket mailing list
>> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
>> Visit our website at http://www.overbyte.be
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be 

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] httpserver memoryleak

2008-03-16 Thread Francois PIETTE
> Why? do I have to release this stream?

Of course you have !

> Where is the place to do it?

When it has been sent and you don't need it anymore. For example from the 
OnRequestDone event handler.


--
[EMAIL PROTECTED]
The author of the freeware multi-tier middleware MidWare
The author of the freeware Internet Component Suite (ICS)
http://www.overbyte.be


- Original Message - 
From: "George" <[EMAIL PROTECTED]>
To: "ICS support mailing" 
Sent: Sunday, March 16, 2008 6:49 PM
Subject: [twsocket] httpserver memoryleak


> Hello,
>
> I'm using ICS HttpServer and I have a code:
>
>  ClientCnx.DocStream := TMemoryStream.Create;
>  ClientCnx.DocStream.Write(Header[1], Length(Header));
>  ClientCnx.DocStream.CopyFrom(MS2, MS2.Size);
>  MS2.Free;
>  ClientCnx.SendStream;
>
> Some times the FastMM memory leak tool reports memory leak
> in line:
>
>  ClientCnx.DocStream := TMemoryStream.Create;
>
> Why? do I have to release this stream?Where is the place to do it?
>
> Thanks
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be 

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


[twsocket] httpserver memoryleak

2008-03-16 Thread George
Hello,

I'm using ICS HttpServer and I have a code:

  ClientCnx.DocStream := TMemoryStream.Create;
  ClientCnx.DocStream.Write(Header[1], Length(Header));
  ClientCnx.DocStream.CopyFrom(MS2, MS2.Size);
  MS2.Free;
  ClientCnx.SendStream;

Some times the FastMM memory leak tool reports memory leak
in line:

  ClientCnx.DocStream := TMemoryStream.Create;

Why? do I have to release this stream?Where is the place to do it?

Thanks 

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be