##// END OF EJS Templates
smartset: split generatorset classes to avoid cycle...
smartset: split generatorset classes to avoid cycle I uncovered a cycle manifesting in a memory leak by running `hgperfrevset '::tip'`. The cycle was due to generatorset.__init__ assigning a bound method to self.__contains__. Internet sleuthing revealed that assigning a bound method to an instance attribute always creates a cycle. This commit creates two new variants of generatorset for the special cases of ascending and descending generators. The special implementations of __contains__ have been extracted to these classes where they are defined as __contains__. generatorset now implements __new__ and changes the spawned type to one of the new classes if needed. Differential Revision: https://phab.mercurial-scm.org/D1780
Gregory Szorc -
r35517:12a46ad6 default
Show More
Name Size Modified Last Commit Author
/ i18n
check-translation.py Loading ...
da.po Loading ...
de.po Loading ...
el.po Loading ...
fr.po Loading ...
hggettext Loading ...
it.po Loading ...
ja.po Loading ...
polib.LICENSE Loading ...
polib.py Loading ...
posplit Loading ...
pt_BR.po Loading ...
ro.po Loading ...
ru.po Loading ...
sv.po Loading ...
zh_CN.po Loading ...
zh_TW.po Loading ...