Message416611
While working on the first PR for bpo-44800 I provoked an obscure failure in PyImport_ImportModule by making PyEval_GetGlobals set an exception when returning NULL (as PyEval_GetLocals has done since bpo-18408 was implemented for Python 3.4).
This ticket covers adding an embedding test case that:
* ensures PyEval_GetGlobals() returns NULL without an exception when no Python frame is active
* ensures PyEval_GetLocals() returns NULL and sets an exception when no Python frame is active
* ensures PyImport_ImportModule still works when no Python frame is active
There's an option to slightly change the behaviour of `PyEval_GetLocals()` to NOT set an exception in the "no Python frame" case, and instead only set the error when there is a Python frame, but something goes wrong when attempting to access the fast locals array (such as a memory allocation failure). |
|
Date |
User |
Action |
Args |
2022-04-03 06:41:46 | ncoghlan | set | recipients:
+ ncoghlan |
2022-04-03 06:41:46 | ncoghlan | set | messageid: <1648968106.21.0.863482035825.issue47204@roundup.psfhosted.org> |
2022-04-03 06:41:46 | ncoghlan | link | issue47204 messages |
2022-04-03 06:41:45 | ncoghlan | create | |
|