commit | 26f91999b453563839466322164e566781f10ccd | [log] [tgz] |
---|---|---|
author | Victor Stinner <victor.stinner@gmail.com> | Wed Jul 17 01:22:45 2013 +0200 |
committer | Victor Stinner <victor.stinner@gmail.com> | Wed Jul 17 01:22:45 2013 +0200 |
tree | 4ea36e05182ee4b76d630f423f3bb83cbd68e86e | |
parent | b8f602a60aea73497126b83fc4cad24e5c639641 [diff] |
Close #18469: Replace PyDict_GetItemString() with _PyDict_GetItemId() in structseq.c _PyDict_GetItemId() is more efficient: it only builds the Unicode string once. Identifiers (dictionary keys) are now created at Python initialization, and if the creation failed, Python does exit with a fatal error. Before, PyDict_GetItemString() failure was not handled: structseq_new() could call PyObject_GC_NewVar() with a negative size, and structseq_dealloc() could also crash.