Message286183
| 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:42 | vstinner | set | recipients:
+ vstinner, methane, serhiy.storchaka |
| 2017年01月24日 13:33:42 | vstinner | set | messageid: <1485264822.92.0.330252162864.issue29360@psf.upfronthosting.co.za> |
| 2017年01月24日 13:33:42 | vstinner | link | issue29360 messages |
| 2017年01月24日 13:33:42 | vstinner | create |
|