Selaa lähdekoodia

* Patch from Ondrej Pokorny to let AddStrings call beginupdate/endupdate under all circumstances (bug ID 35341)

git-svn-id: trunk@41849 -
michael 6 vuotta sitten
vanhempi
commit
cae2c94e90
1 muutettua tiedostoa jossa 12 lisäystä ja 12 poistoa
  1. 12 12
      rtl/objpas/classes/stringl.inc

+ 12 - 12
rtl/objpas/classes/stringl.inc

@@ -779,13 +779,16 @@ end;
 
 
 Procedure TStrings.AddStrings(TheStrings: TStrings; ClearFirst : Boolean);
 Procedure TStrings.AddStrings(TheStrings: TStrings; ClearFirst : Boolean);
 
 
-
+Var Runner : longint;
 begin
 begin
   beginupdate;
   beginupdate;
   try
   try
     if ClearFirst then
     if ClearFirst then
       Clear;
       Clear;
-    AddStrings(TheStrings);
+    if Count + TheStrings.Count > Capacity then
+      Capacity := Count + TheStrings.Count;
+    For Runner:=0 to TheStrings.Count-1 do
+      self.AddObject (Thestrings[Runner],TheStrings.Objects[Runner]);
   finally
   finally
     EndUpdate;
     EndUpdate;
   end;
   end;
@@ -793,31 +796,28 @@ end;
 
 
 Procedure TStrings.AddStrings(TheStrings: TStrings);
 Procedure TStrings.AddStrings(TheStrings: TStrings);
 
 
-Var Runner : longint;
 begin
 begin
-  For Runner:=0 to TheStrings.Count-1 do
-    self.AddObject (Thestrings[Runner],TheStrings.Objects[Runner]);
+  AddStrings(TheStrings, False);
 end;
 end;
 
 
 Procedure TStrings.AddStrings(const TheStrings: array of string);
 Procedure TStrings.AddStrings(const TheStrings: array of string);
 
 
-Var Runner : longint;
 begin
 begin
-  if Count + High(TheStrings)+1 > Capacity then
-    Capacity := Count + High(TheStrings)+1;
-  For Runner:=Low(TheStrings) to High(TheStrings) do
-    self.Add(Thestrings[Runner]);
+  AddStrings(TheStrings, False);
 end;
 end;
 
 
 Procedure TStrings.AddStrings(const TheStrings: array of string; ClearFirst : Boolean);
 Procedure TStrings.AddStrings(const TheStrings: array of string; ClearFirst : Boolean);
 
 
-
+Var Runner : longint;
 begin
 begin
   beginupdate;
   beginupdate;
   try
   try
     if ClearFirst then
     if ClearFirst then
       Clear;
       Clear;
-    AddStrings(TheStrings);
+    if Count + High(TheStrings)+1 > Capacity then
+      Capacity := Count + High(TheStrings)+1;
+    For Runner:=Low(TheStrings) to High(TheStrings) do
+      self.Add(Thestrings[Runner]);
   finally
   finally
     EndUpdate;
     EndUpdate;
   end;
   end;