Message244005
| Author |
mrabarnett |
| Recipients |
Arfrever, Jim.Jewett, alex, asvetlov, benjamin.peterson, eric.araujo, eric.smith, eric.snow, ezio.melotti, flox, gregory.p.smith, introom, josh.r, mrabarnett, ncoghlan, ned.deily, pitrou, refi64, rhettinger, scoder, serhiy.storchaka, tonn81, westurner, yselivanov |
| Date |
2015年05月24日.22:03:49 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1432505029.79.0.553966520901.issue16991@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
First some background: when you put a new entry into a dict, it looks for an empty slot, the key's hash determining the initial choice, but if that slot's occupied, it picks another, etc, so the key might not be in the slot of first choice.
In "PyODict_DelItem", it deletes the key from the dict and then calls "_odict_clear_node" to delete the node.
If the key that it's looking for wasn't in the slot of first choice, but that slot is empty, that'll be the one it'll return, ie, the wrong one.
The solution, therefore, is to delete the node _before_ deleting the key from the dict.
When I tried that, the test ran to completion. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2015年05月24日 22:03:49 | mrabarnett | set | recipients:
+ mrabarnett, rhettinger, gregory.p.smith, ncoghlan, pitrou, scoder, eric.smith, benjamin.peterson, ned.deily, ezio.melotti, eric.araujo, Arfrever, alex, asvetlov, flox, eric.snow, Jim.Jewett, serhiy.storchaka, yselivanov, westurner, refi64, josh.r, tonn81, introom |
| 2015年05月24日 22:03:49 | mrabarnett | set | messageid: <1432505029.79.0.553966520901.issue16991@psf.upfronthosting.co.za> |
| 2015年05月24日 22:03:49 | mrabarnett | link | issue16991 messages |
| 2015年05月24日 22:03:49 | mrabarnett | create |
|