delphi - Is it necessary to manage the lifetimes of TEnumerators from generic containers? -


if call getenumerator method of generics.collections object, need explicitly free enumerator when i'm done it?

yes need free enumerator. whoever calls getenumerator owns returns.

when for/in loop compiler writes code , ensures enumerator object disposed of. when call it, job dispose of enumerator.

this in fact easy question answer yourself. create program calls getenumerator , fails free it. use memory manager's facilities check whether or not object leaked.

uses   system.generics.collections;  begin   reportmemoryleaksonshutdown := true;   tlist<integer>.create   begin     getenumerator;     free;   end; end. 

and results in following leak report:

an unexpected memory leak has occurred. unexpected small block leaks are:

  • 13 - 20 bytes: tlist.tenumerator x 1

Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -