[fpc-pascal] For ..in GetEnumerator Allocation

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Wed Oct 4 13:21:18 CEST 2017


On 2017-10-04 09:41, Ryan Joseph wrote:
> I’d like to remove all these alloc/deallocs so I can use for..in more efficiently in tight loops.

I've had the same requirement, and also needed that functionality before 
the for..in syntax existed in FPC. Take a look at my Iterator interface 
and implementation. It allows you to move forward, backwards, reset, 
filter data etc. You can hold on to the instance reference as long as 
you like.

This code lives in the tiOPF project, but can be used outside of the 
tiOPF project too (I do that often) - simply delete the iterator 
implementations for TtiObjectList.


https://github.com/graemeg/tiopf/blob/tiopf2/Options/tiIteratorIntf.pas

https://github.com/graemeg/tiopf/blob/tiopf2/Options/tiIteratorImpl.pas

Some years ago I wrote a article for a magazine about this, and that is 
when I implemented the code. You can still find the "Iterator" article 
in the link below - and the accompanied source code too (though the 
tiOPF code is newer).

   http://geldenhuys.co.uk/articles/


Regards,
   Graeme

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp



More information about the fpc-pascal mailing list