Mercurial > cpython-lru_cache-weakref
diff Python/structmember.c @ 42083:37189e375ec7 legacy-trunk
Add T_PYSSIZET in structmember.h: This can be used for
Py_ssize_t members.
Simplify the implementation of UnicodeError objects:
start and end attributes are now stored directly as
Py_ssize_t members, which simplifies various get and
set functions.
| author | Walter Dörwald <walter@livinglogic.de> |
|---|---|
| date | Wed, 13 Jun 2007 16:57:12 +0000 |
| parents | e8413971212d |
| children | 648577cc688a |
line wrap: on
line diff
--- a/Python/structmember.c Wed Jun 13 07:54:57 2007 +0000 +++ b/Python/structmember.c Wed Jun 13 16:57:12 2007 +0000 @@ -85,6 +85,9 @@ case T_ULONG: v = PyLong_FromUnsignedLong(*(unsigned long*)addr); break; + case T_PYSSIZET: + v = PyInt_FromSsize_t(*(Py_ssize_t*)addr); + break; case T_FLOAT: v = PyFloat_FromDouble((double)*(float*)addr); break; @@ -263,6 +266,13 @@ } break; } + case T_PYSSIZET:{ + *(Py_ssize_t*)addr = PyInt_AsSsize_t(v); + if ((*(Py_ssize_t*)addr == (Py_ssize_t)-1) + && PyErr_Occurred()) + return -1; + break; + } case T_FLOAT:{ double double_val; double_val = PyFloat_AsDouble(v);
