Hello:
I was testing my application and and noticed in
the log that when I tried to destroy the
TWSocketThrdServer while it had opened connections, I
got a few (seemingly) random AVs which I traced to
the following lines in PutDataInSendBuffer method:
procedure TCustomWSocket.PutDataInSendBuffer(Data :
Pointer; Len : Integer);
var
oBuffer : TBuffer;
cWritten : Integer;
bMore : Boolean;
begin
if (Len <= 0) or (Data = nil) then
exit;
{$IFDEF COMPILER2_UP}
EnterCriticalSection(GSendBufCritSect);
try
{$ENDIF}
{ vvvv THE FOLLOWING LINE vvvv }
if FBufList.Count = 0 then begin
oBuffer := TBuffer.Create(FBufSize);
FBufList.Add(oBuffer);
end
else
oBuffer := FBufList.Last;
Inc(FBufferedByteCount, Len);
bMore := TRUE;
while bMore do begin
cWritten := oBuffer.Write(Data, Len);
if cWritten >= Len then
bMore := FALSE
else begin
Len := Len - cWritten;
Data := PChar(Data) + cWritten;
if Len < 0 then
bMore := FALSE
else begin
oBuffer := TBuffer.Create(FBufSize);
FBufList.Add(oBuffer);
end;
end;
end;
bAllSent := FALSE;
{$IFDEF COMPILER2_UP}
finally
LeaveCriticalSection(GSendBufCritSect);
end;
{$ENDIF}
end;
The full error is "[EAccessViolation] Access
violation at address 00469094 in module
'SmailQ_con.exe'. Read of address 00000008"
Its hard for me to reproduce exactly, but has
anybody any idea what could be causing this?
-dZ.
--
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