Message329523
| Author |
vstinner |
| Recipients |
vstinner |
| Date |
2018年11月09日.15:32:02 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1541777522.86.0.788709270274.issue35199@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Currently, even when Python is compiled in debug mode, PyTuple_GET_ITEM() doesn't check that the first argument is a tuple objet and that the second argument is valid index. It can lead to a crash and Python doesn't help debugging.
I propose to convert the macro to a function call and use regular assertions to abort Python if the C API is misused.
I propose to use a function call rather than abusing the preprocessor syntax like (assert(...),expr) syntax used in unicodeobject.h, because I the preprocessor causes complex bugs (difficult to understand and to fix/work around) and because later I would like to experiment to be able to compile C extensions to always use function calls, but get a different implementation depending on the "Python runtime".
I elaborated this idea on this website:
* https://pythoncapi.readthedocs.io/runtimes.html#debug-build
* https://pythoncapi.readthedocs.io/
I am working on an implementation. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2018年11月09日 15:32:02 | vstinner | set | recipients:
+ vstinner |
| 2018年11月09日 15:32:02 | vstinner | set | messageid: <1541777522.86.0.788709270274.issue35199@psf.upfronthosting.co.za> |
| 2018年11月09日 15:32:02 | vstinner | link | issue35199 messages |
| 2018年11月09日 15:32:02 | vstinner | create |
|