mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Merge ssize_t branch.
This commit is contained in:
parent
4482929734
commit
18e165558b
102 changed files with 2659 additions and 1677 deletions
|
|
@ -92,7 +92,8 @@ whose size is determined when the object is allocated.
|
|||
*/
|
||||
#define PyObject_VAR_HEAD \
|
||||
PyObject_HEAD \
|
||||
int ob_size; /* Number of items in variable part */
|
||||
Py_ssize_t ob_size; /* Number of items in variable part */
|
||||
#define Py_INVALID_SIZE (Py_ssize_t)-1
|
||||
|
||||
/* Nothing is actually declared to be a PyObject, but every pointer to
|
||||
* a Python object can be cast to a PyObject*. This is inheritance built
|
||||
|
|
@ -127,16 +128,29 @@ typedef PyObject * (*unaryfunc)(PyObject *);
|
|||
typedef PyObject * (*binaryfunc)(PyObject *, PyObject *);
|
||||
typedef PyObject * (*ternaryfunc)(PyObject *, PyObject *, PyObject *);
|
||||
typedef int (*inquiry)(PyObject *);
|
||||
typedef Py_ssize_t (*lenfunc)(PyObject *);
|
||||
typedef int (*coercion)(PyObject **, PyObject **);
|
||||
typedef PyObject *(*intargfunc)(PyObject *, int);
|
||||
typedef PyObject *(*intintargfunc)(PyObject *, int, int);
|
||||
typedef PyObject *(*intargfunc)(PyObject *, int) Py_DEPRECATED(2.5);
|
||||
typedef PyObject *(*intintargfunc)(PyObject *, int, int) Py_DEPRECATED(2.5);
|
||||
typedef PyObject *(*ssizeargfunc)(PyObject *, Py_ssize_t);
|
||||
typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t);
|
||||
typedef int(*intobjargproc)(PyObject *, int, PyObject *);
|
||||
typedef int(*intintobjargproc)(PyObject *, int, int, PyObject *);
|
||||
typedef int(*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *);
|
||||
typedef int(*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *);
|
||||
typedef int(*objobjargproc)(PyObject *, PyObject *, PyObject *);
|
||||
|
||||
/* int-based buffer interface */
|
||||
typedef int (*getreadbufferproc)(PyObject *, int, void **);
|
||||
typedef int (*getwritebufferproc)(PyObject *, int, void **);
|
||||
typedef int (*getsegcountproc)(PyObject *, int *);
|
||||
typedef int (*getcharbufferproc)(PyObject *, int, const char **);
|
||||
/* ssize_t-based buffer interface */
|
||||
typedef Py_ssize_t (*readbufferproc)(PyObject *, Py_ssize_t, void **);
|
||||
typedef Py_ssize_t (*writebufferproc)(PyObject *, Py_ssize_t, void **);
|
||||
typedef Py_ssize_t (*segcountproc)(PyObject *, Py_ssize_t *);
|
||||
typedef Py_ssize_t (*charbufferproc)(PyObject *, Py_ssize_t, const char **);
|
||||
|
||||
typedef int (*objobjproc)(PyObject *, PyObject *);
|
||||
typedef int (*visitproc)(PyObject *, void *);
|
||||
typedef int (*traverseproc)(PyObject *, visitproc, void *);
|
||||
|
|
@ -195,30 +209,30 @@ typedef struct {
|
|||
} PyNumberMethods;
|
||||
|
||||
typedef struct {
|
||||
inquiry sq_length;
|
||||
lenfunc sq_length;
|
||||
binaryfunc sq_concat;
|
||||
intargfunc sq_repeat;
|
||||
intargfunc sq_item;
|
||||
intintargfunc sq_slice;
|
||||
intobjargproc sq_ass_item;
|
||||
intintobjargproc sq_ass_slice;
|
||||
ssizeargfunc sq_repeat;
|
||||
ssizeargfunc sq_item;
|
||||
ssizessizeargfunc sq_slice;
|
||||
ssizeobjargproc sq_ass_item;
|
||||
ssizessizeobjargproc sq_ass_slice;
|
||||
objobjproc sq_contains;
|
||||
/* Added in release 2.0 */
|
||||
binaryfunc sq_inplace_concat;
|
||||
intargfunc sq_inplace_repeat;
|
||||
ssizeargfunc sq_inplace_repeat;
|
||||
} PySequenceMethods;
|
||||
|
||||
typedef struct {
|
||||
inquiry mp_length;
|
||||
lenfunc mp_length;
|
||||
binaryfunc mp_subscript;
|
||||
objobjargproc mp_ass_subscript;
|
||||
} PyMappingMethods;
|
||||
|
||||
typedef struct {
|
||||
getreadbufferproc bf_getreadbuffer;
|
||||
getwritebufferproc bf_getwritebuffer;
|
||||
getsegcountproc bf_getsegcount;
|
||||
getcharbufferproc bf_getcharbuffer;
|
||||
readbufferproc bf_getreadbuffer;
|
||||
writebufferproc bf_getwritebuffer;
|
||||
segcountproc bf_getsegcount;
|
||||
charbufferproc bf_getcharbuffer;
|
||||
} PyBufferProcs;
|
||||
|
||||
|
||||
|
|
@ -239,7 +253,7 @@ typedef PyObject *(*descrgetfunc) (PyObject *, PyObject *, PyObject *);
|
|||
typedef int (*descrsetfunc) (PyObject *, PyObject *, PyObject *);
|
||||
typedef int (*initproc)(PyObject *, PyObject *, PyObject *);
|
||||
typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);
|
||||
typedef PyObject *(*allocfunc)(struct _typeobject *, int);
|
||||
typedef PyObject *(*allocfunc)(struct _typeobject *, Py_ssize_t);
|
||||
|
||||
typedef struct _typeobject {
|
||||
PyObject_VAR_HEAD
|
||||
|
|
@ -362,7 +376,7 @@ PyAPI_DATA(PyTypeObject) PySuper_Type; /* built-in 'super' */
|
|||
#define PyType_CheckExact(op) ((op)->ob_type == &PyType_Type)
|
||||
|
||||
PyAPI_FUNC(int) PyType_Ready(PyTypeObject *);
|
||||
PyAPI_FUNC(PyObject *) PyType_GenericAlloc(PyTypeObject *, int);
|
||||
PyAPI_FUNC(PyObject *) PyType_GenericAlloc(PyTypeObject *, Py_ssize_t);
|
||||
PyAPI_FUNC(PyObject *) PyType_GenericNew(PyTypeObject *,
|
||||
PyObject *, PyObject *);
|
||||
PyAPI_FUNC(PyObject *) _PyType_Lookup(PyTypeObject *, PyObject *);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue