Skip to content

Commit 18e1655

Browse files
committed
Merge ssize_t branch.
1 parent 4482929 commit 18e1655

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+2659
-1677
lines changed

Include/abstract.h

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
407407
equivalent to the Python expression: type(o).
408408
*/
409409

410-
PyAPI_FUNC(int) PyObject_Size(PyObject *o);
410+
PyAPI_FUNC(Py_ssize_t) PyObject_Size(PyObject *o);
411411

412412
/*
413413
Return the size of object o. If the object, o, provides
@@ -419,10 +419,10 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
419419

420420
/* For DLL compatibility */
421421
#undef PyObject_Length
422-
PyAPI_FUNC(int) PyObject_Length(PyObject *o);
422+
PyAPI_FUNC(Py_ssize_t) PyObject_Length(PyObject *o);
423423
#define PyObject_Length PyObject_Size
424424

425-
PyAPI_FUNC(int) _PyObject_LengthHint(PyObject *o);
425+
PyAPI_FUNC(Py_ssize_t) _PyObject_LengthHint(PyObject *o);
426426

427427
/*
428428
Return the size of object o. If the object, o, provides
@@ -477,7 +477,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
477477

478478
PyAPI_FUNC(int) PyObject_AsCharBuffer(PyObject *obj,
479479
const char **buffer,
480-
int *buffer_len);
480+
Py_ssize_t *buffer_len);
481481

482482
/*
483483
Takes an arbitrary object which must support the (character,
@@ -502,7 +502,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
502502

503503
PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
504504
const void **buffer,
505-
int *buffer_len);
505+
Py_ssize_t *buffer_len);
506506

507507
/*
508508
Same as PyObject_AsCharBuffer() except that this API expects
@@ -518,7 +518,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
518518

519519
PyAPI_FUNC(int) PyObject_AsWriteBuffer(PyObject *obj,
520520
void **buffer,
521-
int *buffer_len);
521+
Py_ssize_t *buffer_len);
522522

523523
/*
524524
Takes an arbitrary object which must support the (writeable,
@@ -911,7 +911,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
911911
912912
*/
913913

914-
PyAPI_FUNC(int) PySequence_Size(PyObject *o);
914+
PyAPI_FUNC(Py_ssize_t) PySequence_Size(PyObject *o);
915915

916916
/*
917917
Return the size of sequence object o, or -1 on failure.
@@ -920,7 +920,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
920920

921921
/* For DLL compatibility */
922922
#undef PySequence_Length
923-
PyAPI_FUNC(int) PySequence_Length(PyObject *o);
923+
PyAPI_FUNC(Py_ssize_t) PySequence_Length(PyObject *o);
924924
#define PySequence_Length PySequence_Size
925925

926926

@@ -933,7 +933,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
933933
934934
*/
935935

936-
PyAPI_FUNC(PyObject *) PySequence_Repeat(PyObject *o, int count);
936+
PyAPI_FUNC(PyObject *) PySequence_Repeat(PyObject *o, Py_ssize_t count);
937937

938938
/*
939939
Return the result of repeating sequence object o count times,
@@ -942,14 +942,14 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
942942
943943
*/
944944

945-
PyAPI_FUNC(PyObject *) PySequence_GetItem(PyObject *o, int i);
945+
PyAPI_FUNC(PyObject *) PySequence_GetItem(PyObject *o, Py_ssize_t i);
946946

947947
/*
948948
Return the ith element of o, or NULL on failure. This is the
949949
equivalent of the Python expression: o[i].
950950
*/
951951

952-
PyAPI_FUNC(PyObject *) PySequence_GetSlice(PyObject *o, int i1, int i2);
952+
PyAPI_FUNC(PyObject *) PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2);
953953

954954
/*
955955
Return the slice of sequence object o between i1 and i2, or
@@ -958,7 +958,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
958958
959959
*/
960960

961-
PyAPI_FUNC(int) PySequence_SetItem(PyObject *o, int i, PyObject *v);
961+
PyAPI_FUNC(int) PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v);
962962

963963
/*
964964
Assign object v to the ith element of o. Returns
@@ -967,15 +967,15 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
967967
968968
*/
969969

970-
PyAPI_FUNC(int) PySequence_DelItem(PyObject *o, int i);
970+
PyAPI_FUNC(int) PySequence_DelItem(PyObject *o, Py_ssize_t i);
971971

972972
/*
973973
Delete the ith element of object v. Returns
974974
-1 on failure. This is the equivalent of the Python
975975
statement: del o[i].
976976
*/
977977

978-
PyAPI_FUNC(int) PySequence_SetSlice(PyObject *o, int i1, int i2,
978+
PyAPI_FUNC(int) PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2,
979979
PyObject *v);
980980

981981
/*
@@ -984,7 +984,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
984984
equivalent of the Python statement: o[i1:i2]=v.
985985
*/
986986

987-
PyAPI_FUNC(int) PySequence_DelSlice(PyObject *o, int i1, int i2);
987+
PyAPI_FUNC(int) PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2);
988988

989989
/*
990990
Delete the slice in sequence object, o, from i1 to i2.
@@ -1105,7 +1105,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
11051105
11061106
*/
11071107

1108-
PyAPI_FUNC(PyObject *) PySequence_InPlaceRepeat(PyObject *o, int count);
1108+
PyAPI_FUNC(PyObject *) PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count);
11091109

11101110
/*
11111111
Repeat o1 by count, in-place when possible. Return the resulting
@@ -1125,7 +1125,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
11251125
This function always succeeds.
11261126
*/
11271127

1128-
PyAPI_FUNC(int) PyMapping_Size(PyObject *o);
1128+
PyAPI_FUNC(Py_ssize_t) PyMapping_Size(PyObject *o);
11291129

11301130
/*
11311131
Returns the number of keys in object o on success, and -1 on
@@ -1135,7 +1135,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
11351135

11361136
/* For DLL compatibility */
11371137
#undef PyMapping_Length
1138-
PyAPI_FUNC(int) PyMapping_Length(PyObject *o);
1138+
PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o);
11391139
#define PyMapping_Length PyMapping_Size
11401140

11411141

Include/bufferobject.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ PyAPI_DATA(PyTypeObject) PyBuffer_Type;
1717
#define Py_END_OF_BUFFER (-1)
1818

1919
PyAPI_FUNC(PyObject *) PyBuffer_FromObject(PyObject *base,
20-
int offset, int size);
20+
Py_ssize_t offset, Py_ssize_t size);
2121
PyAPI_FUNC(PyObject *) PyBuffer_FromReadWriteObject(PyObject *base,
22-
int offset,
23-
int size);
22+
Py_ssize_t offset,
23+
Py_ssize_t size);
2424

25-
PyAPI_FUNC(PyObject *) PyBuffer_FromMemory(void *ptr, int size);
26-
PyAPI_FUNC(PyObject *) PyBuffer_FromReadWriteMemory(void *ptr, int size);
25+
PyAPI_FUNC(PyObject *) PyBuffer_FromMemory(void *ptr, Py_ssize_t size);
26+
PyAPI_FUNC(PyObject *) PyBuffer_FromReadWriteMemory(void *ptr, Py_ssize_t size);
2727

28-
PyAPI_FUNC(PyObject *) PyBuffer_New(int size);
28+
PyAPI_FUNC(PyObject *) PyBuffer_New(Py_ssize_t size);
2929

3030
#ifdef __cplusplus
3131
}

Include/cStringIO.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ static struct PycStringIO_CAPI {
2929
/* Read a string from an input object. If the last argument
3030
is -1, the remainder will be read.
3131
*/
32-
int(*cread)(PyObject *, char **, int);
32+
int(*cread)(PyObject *, char **, Py_ssize_t);
3333

3434
/* Read a line from an input object. Returns the length of the read
3535
line as an int and a pointer inside the object buffer as char** (so
@@ -38,7 +38,7 @@ static struct PycStringIO_CAPI {
3838
int(*creadline)(PyObject *, char **);
3939

4040
/* Write a string to an output object*/
41-
int(*cwrite)(PyObject *, const char *, int);
41+
int(*cwrite)(PyObject *, const char *, Py_ssize_t);
4242

4343
/* Get the output object as a Python string (returns new reference). */
4444
PyObject *(*cgetvalue)(PyObject *);

Include/ceval.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ PyAPI_FUNC(void) PyEval_ReInitThreads(void);
148148

149149
#endif /* !WITH_THREAD */
150150

151-
PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, int *);
151+
PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, Py_ssize_t *);
152152

153153

154154
#ifdef __cplusplus

Include/dictobject.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,11 @@ PyAPI_FUNC(int) PyDict_SetItem(PyObject *mp, PyObject *key, PyObject *item);
9595
PyAPI_FUNC(int) PyDict_DelItem(PyObject *mp, PyObject *key);
9696
PyAPI_FUNC(void) PyDict_Clear(PyObject *mp);
9797
PyAPI_FUNC(int) PyDict_Next(
98-
PyObject *mp, int *pos, PyObject **key, PyObject **value);
98+
PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value);
9999
PyAPI_FUNC(PyObject *) PyDict_Keys(PyObject *mp);
100100
PyAPI_FUNC(PyObject *) PyDict_Values(PyObject *mp);
101101
PyAPI_FUNC(PyObject *) PyDict_Items(PyObject *mp);
102-
PyAPI_FUNC(int) PyDict_Size(PyObject *mp);
102+
PyAPI_FUNC(Py_ssize_t) PyDict_Size(PyObject *mp);
103103
PyAPI_FUNC(PyObject *) PyDict_Copy(PyObject *mp);
104104
PyAPI_FUNC(int) PyDict_Contains(PyObject *mp, PyObject *key);
105105

Include/intobject.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,13 @@ PyAPI_DATA(PyTypeObject) PyInt_Type;
3232

3333
PyAPI_FUNC(PyObject *) PyInt_FromString(char*, char**, int);
3434
#ifdef Py_USING_UNICODE
35-
PyAPI_FUNC(PyObject *) PyInt_FromUnicode(Py_UNICODE*, int, int);
35+
PyAPI_FUNC(PyObject *) PyInt_FromUnicode(Py_UNICODE*, Py_ssize_t, int);
3636
#endif
3737
PyAPI_FUNC(PyObject *) PyInt_FromLong(long);
38+
PyAPI_FUNC(PyObject *) PyInt_FromSize_t(size_t);
39+
PyAPI_FUNC(PyObject *) PyInt_FromSsize_t(Py_ssize_t);
3840
PyAPI_FUNC(long) PyInt_AsLong(PyObject *);
41+
PyAPI_FUNC(Py_ssize_t) PyInt_AsSsize_t(PyObject *);
3942
PyAPI_FUNC(unsigned long) PyInt_AsUnsignedLongMask(PyObject *);
4043
#ifdef HAVE_LONG_LONG
4144
PyAPI_FUNC(unsigned PY_LONG_LONG) PyInt_AsUnsignedLongLongMask(PyObject *);

Include/listobject.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,22 @@ typedef struct {
3535
* Items must normally not be NULL, except during construction when
3636
* the list is not yet visible outside the function that builds it.
3737
*/
38-
int allocated;
38+
Py_ssize_t allocated;
3939
} PyListObject;
4040

4141
PyAPI_DATA(PyTypeObject) PyList_Type;
4242

4343
#define PyList_Check(op) PyObject_TypeCheck(op, &PyList_Type)
4444
#define PyList_CheckExact(op) ((op)->ob_type == &PyList_Type)
4545

46-
PyAPI_FUNC(PyObject *) PyList_New(int size);
47-
PyAPI_FUNC(int) PyList_Size(PyObject *);
48-
PyAPI_FUNC(PyObject *) PyList_GetItem(PyObject *, int);
49-
PyAPI_FUNC(int) PyList_SetItem(PyObject *, int, PyObject *);
50-
PyAPI_FUNC(int) PyList_Insert(PyObject *, int, PyObject *);
46+
PyAPI_FUNC(PyObject *) PyList_New(Py_ssize_t size);
47+
PyAPI_FUNC(Py_ssize_t) PyList_Size(PyObject *);
48+
PyAPI_FUNC(PyObject *) PyList_GetItem(PyObject *, Py_ssize_t);
49+
PyAPI_FUNC(int) PyList_SetItem(PyObject *, Py_ssize_t, PyObject *);
50+
PyAPI_FUNC(int) PyList_Insert(PyObject *, Py_ssize_t, PyObject *);
5151
PyAPI_FUNC(int) PyList_Append(PyObject *, PyObject *);
52-
PyAPI_FUNC(PyObject *) PyList_GetSlice(PyObject *, int, int);
53-
PyAPI_FUNC(int) PyList_SetSlice(PyObject *, int, int, PyObject *);
52+
PyAPI_FUNC(PyObject *) PyList_GetSlice(PyObject *, Py_ssize_t, Py_ssize_t);
53+
PyAPI_FUNC(int) PyList_SetSlice(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *);
5454
PyAPI_FUNC(int) PyList_Sort(PyObject *);
5555
PyAPI_FUNC(int) PyList_Reverse(PyObject *);
5656
PyAPI_FUNC(PyObject *) PyList_AsTuple(PyObject *);

Include/longintrepr.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ struct _longobject {
5252
digit ob_digit[1];
5353
};
5454

55-
PyAPI_FUNC(PyLongObject *) _PyLong_New(int);
55+
PyAPI_FUNC(PyLongObject *) _PyLong_New(Py_ssize_t);
5656

5757
/* Return a copy of src. */
5858
PyAPI_FUNC(PyObject *) _PyLong_Copy(PyLongObject *src);

Include/longobject.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ PyAPI_FUNC(long) PyLong_AsLong(PyObject *);
2121
PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLong(PyObject *);
2222
PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLongMask(PyObject *);
2323

24+
/* For use by intobject.c only */
25+
PyAPI_FUNC(Py_ssize_t) _PyLong_AsSsize_t(PyObject *);
26+
PyAPI_FUNC(PyObject *) _PyLong_FromSize_t(size_t);
27+
PyAPI_FUNC(PyObject *) _PyLong_FromSsize_t(Py_ssize_t);
28+
2429
/* _PyLong_AsScaledDouble returns a double x and an exponent e such that
2530
the true value is approximately equal to x * 2**(SHIFT*e). e is >= 0.
2631
x is 0.0 if and only if the input is 0 (in which case, e and x are both
@@ -43,7 +48,7 @@ PyAPI_FUNC(unsigned PY_LONG_LONG) PyLong_AsUnsignedLongLongMask(PyObject *);
4348

4449
PyAPI_FUNC(PyObject *) PyLong_FromString(char *, char **, int);
4550
#ifdef Py_USING_UNICODE
46-
PyAPI_FUNC(PyObject *) PyLong_FromUnicode(Py_UNICODE*, int, int);
51+
PyAPI_FUNC(PyObject *) PyLong_FromUnicode(Py_UNICODE*, Py_ssize_t, int);
4752
#endif
4853

4954
/* _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.

Include/marshal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ PyAPI_FUNC(long) PyMarshal_ReadLongFromFile(FILE *);
1717
PyAPI_FUNC(int) PyMarshal_ReadShortFromFile(FILE *);
1818
PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromFile(FILE *);
1919
PyAPI_FUNC(PyObject *) PyMarshal_ReadLastObjectFromFile(FILE *);
20-
PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromString(char *, int);
20+
PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromString(char *, Py_ssize_t);
2121

2222
#ifdef __cplusplus
2323
}

0 commit comments

Comments
 (0)