New submission from Kevin Shweh <[email protected]>:
The OrderedDict iterator caches a di_result tuple for use with
iter(od.items()). It's *supposed* to only do that for the items() case, but the
code does
if (kind & (_odict_ITER_KEYS | _odict_ITER_VALUES))
to test for this case. This is the wrong test. It should be
if ((kind & _odict_ITER_KEYS) && (kind &_odict_ITER_VALUES))
The current test allocates di_result for key and value iterators as well as
items iterators.
----------
components: Library (Lib)
messages: 408616
nosy: Kevin Shweh
priority: normal
severity: normal
status: open
title: OrderedDict iterator allocates di_result unnecessarily
type: resource usage
versions: Python 3.10, Python 3.11, Python 3.8, Python 3.9
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue46085>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com