This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients methane, serhiy.storchaka, vstinner
Date 2017-01-24.13:33:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1485264822.92.0.330252162864.issue29360@psf.upfronthosting.co.za>
In-reply-to
Content
> I don't know. To that that is crashed when pass non-string keys.

Oh ok. I found a way to create a dictionary with equal keys and pass it to dict(**kw) in my fast_init branch (I already removed the PyUnicode_Check() asssertion in this branch):

haypo@selma$ ./python bug.py 
call with: {'a': 1, 'b': 2}
python: Objects/abstract.c:2471: _PyStack_AsDict: Assertion `PyDict_GetItem(kwdict, key) == NULL' failed.
Aborted


So yes, with special objects, the PyDict_GetItem()==NULL assertion fails. With pystack_asdict-2.patch, the duplicated (equal) keys are merged as expected:

$ ./python bug.py 
call with: {'a': 1, 'b': 2}
got: {'a': 2}

Again, there is also a bug in my fast_init branch, I should avoid double conversion dict=>kwnames=>dict to call a type.
History
Date User Action Args
2017-01-24 13:33:42vstinnersetrecipients: + vstinner, methane, serhiy.storchaka
2017-01-24 13:33:42vstinnersetmessageid: <1485264822.92.0.330252162864.issue29360@psf.upfronthosting.co.za>
2017-01-24 13:33:42vstinnerlinkissue29360 messages
2017-01-24 13:33:42vstinnercreate