TStrings.AddStrings don't use BeginUpdate-EndUpdate
Original Reporter info from Mantis: kluug.net @onpok
-
Reporter name: Ondrej Pokorny
Original Reporter info from Mantis: kluug.net @onpok
- Reporter name: Ondrej Pokorny
Description:
Both overloads:
Procedure TStrings.AddStrings(const TheStrings: array of string);
Procedure TStrings.AddStrings(TheStrings: TStrings);
do not use BeginUpdate-EndUpdate block and so TStringList.Changed is executed for every string added.
Furthermore
Procedure TStrings.AddStrings(TheStrings: TStrings; ClearFirst : Boolean);
doesn't increase the capacity before adding.
Steps to reproduce:
program Project1;
uses
Classes;
var
S1, S2: TStringList;
begin
S1 := TStringList.Create;
S2 := TStringList.Create;
try
S1.Add('x');
S1.Add('y');
S2.AddStrings(S1);
S2.AddStrings(['a', 'b']);
Writeln(S2.Text);
finally
S1.Free;
S2.Free;
end;
end.
Additional information:
Patch attached.
Mantis conversion info:
- Mantis ID: 35341
- Version: 3.3.1
- Fixed in version: 3.3.1
- Fixed in revision: 41849 (#cae2c94e)
- Target version: 3.2.0