소스 검색

* Fix stringlist addstrings so virtual method is preserved (bug id 0029630)

git-svn-id: trunk@33099 -
michael 9 년 전
부모
커밋
ae3b0eab2a
1개의 변경된 파일10개의 추가작업 그리고 10개의 파일을 삭제
  1. 10 10
      rtl/objpas/classes/stringl.inc

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

@@ -722,15 +722,13 @@ end;
 
 Procedure TStrings.AddStrings(TheStrings: TStrings; ClearFirst : Boolean);
 
-Var Runner : longint;
 
 begin
   beginupdate;
   try
     if ClearFirst then
       Clear;
-    For Runner:=0 to TheStrings.Count-1 do
-      self.AddObject (Thestrings[Runner],TheStrings.Objects[Runner]);
+    AddStrings(TheStrings);
   finally
     EndUpdate;
   end;
@@ -738,29 +736,31 @@ end;
 
 Procedure TStrings.AddStrings(TheStrings: TStrings);
 
+Var Runner : longint;
 begin
-  AddStrings(TheStrings,False);
+  For Runner:=0 to TheStrings.Count-1 do
+    self.AddObject (Thestrings[Runner],TheStrings.Objects[Runner]);
 end;
 
 Procedure TStrings.AddStrings(const TheStrings: array of string);
 
+Var Runner : longint;
 begin
-  AddStrings(TheStrings,False);
+  if Count + High(TheStrings)+1 > Capacity then
+    Capacity := Count + High(TheStrings)+1;
+  For Runner:=Low(TheStrings) to High(TheStrings) do
+    self.Add(Thestrings[Runner]);
 end;
 
 Procedure TStrings.AddStrings(const TheStrings: array of string; ClearFirst : Boolean);
 
-Var Runner : longint;
 
 begin
   beginupdate;
   try
     if ClearFirst then
       Clear;
-    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);
   finally
     EndUpdate;
   end;