INADA Naoki added the comment:

This issue is caused by dictresize() and _PyObjectDict_SetItem()

1. a.__dict__.pop('a') convert the dict to combined table which has double 
keysize.
2. a.a = 1  converts the dict to split table again if there are no instances 
sharing key with class.

As I wrote before, pop, popitem, and del should not increase key size.

And _PyObjectDict_SetItem shouldn't convert the dict to split-table when the 
dict doesn't share keys
with the class before calling PyDict_SetItem.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28147>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to