[fpc-pascal] Changing iterator usage pattern in FCL-STL

leledumbo leledumbo_cool at yahoo.co.id
Sun Nov 8 19:38:08 CET 2015


FCL-STL from the start has different iterator usage pattern compared to
existing containers (say a TSQLQuery). i.e. the common pattern is:

It := SomeContainer.Iterator;
while not It.EOF do begin
  ...
  It.Next;
end;

instead, it uses:

It := SomeContainer.Iterator;
repeat
  ...
until not It.Next;

Examining the iterator code, I can see that the latter has at least the
following disadvantage:
One must add additional guard before executing repeat-until to make sure
that the container has at least 1 data. Otherwise, Next in until expression
will trigger EAccessViolation.

I would like to change the pattern to follow existing one. However, FCL-STL
has been available for some time now that changing the pattern will break
existing code. How do you think I should proceed on this one?



--
View this message in context: http://free-pascal-general.1045716.n5.nabble.com/Changing-iterator-usage-pattern-in-FCL-STL-tp5723038.html
Sent from the Free Pascal - General mailing list archive at Nabble.com.



More information about the fpc-pascal mailing list