Explorar o código

* Only resize TStringStream.Datastring in case the string will grow because of the write operation

git-svn-id: trunk@26599 -
michael %!s(int64=11) %!d(string=hai) anos
pai
achega
b023e30164
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      rtl/objpas/classes/streams.inc

+ 2 - 1
rtl/objpas/classes/streams.inc

@@ -853,7 +853,8 @@ function TStringStream.Write(const Buffer; Count: Longint): Longint;
 
 begin
   Result:=Count;
-  SetSize(FPosition+Count);
+  if FPosition+Count>Size then
+    SetSize(FPosition+Count);
   // This supposes that FDataString is of type AnsiString)
   Move (Buffer,PChar(FDataString)[Fposition],Count);
   FPosition:=FPosition+Count;