[Python-Dev] Py_SIZE vs PyXXX_GET_SIZE (original) (raw)
Serhiy Storchaka storchaka at gmail.com
Mon Mar 20 07:26:34 EDT 2017
- Previous message (by thread): [Python-Dev] Set program name through exec -a or environment variable
- Next message (by thread): [Python-Dev] Py_SIZE vs PyXXX_GET_SIZE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
What is the preferable way of getting the size of tuple, list, bytes, bytearray: Py_SIZE or PyTuple_GET_SIZE, PyList_GET_SIZE, PyBytes_GET_SIZE, PyByteArray_GET_SIZE? Are macros for concrete types more preferable or they are outdated?
On one hand concrete type macros are longer than Py_SIZE, and since concrete type macros are defined not for all PyVarObject types we need to use Py_SIZE for them in any case (for example for PyLongObject and PyTypeObject).
On other hand we can add asserts for checking that concrete type macros are used with correct types. When I wrote a patch that replaces Py_SIZE with concrete type macros I found two cases of misusing Py_SIZE with dict object: one in _json.c (already fixed in 3023ebb43f7607584c3e123aff56e867cb04a418) and other in dictobject.c (still not fixed). If prefer using concrete type macros this would unlikely happen.
- Previous message (by thread): [Python-Dev] Set program name through exec -a or environment variable
- Next message (by thread): [Python-Dev] Py_SIZE vs PyXXX_GET_SIZE
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]