summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Include/modsupport.h5
-rw-r--r--Misc/NEWS2
-rw-r--r--PC/python3.def6
-rw-r--r--PC/python33gen.py4
-rw-r--r--PC/python33stub.def6
5 files changed, 21 insertions, 2 deletions
diff --git a/Include/modsupport.h b/Include/modsupport.h
index bf6478f..ecf1dcc 100644
--- a/Include/modsupport.h
+++ b/Include/modsupport.h
@@ -23,6 +23,8 @@ extern "C" {
PyAPI_FUNC(PyObject *) _Py_VaBuildValue_SizeT(const char *, va_list);
#endif
+/* Due to a glitch in 3.2, the _SizeT versions weren't exported from the DLL. */
+#if !defined(PY_SSIZE_T_CLEAN) || !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
PyAPI_FUNC(int) PyArg_Parse(PyObject *, const char *, ...);
PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...) Py_FORMAT_PARSETUPLE(PyArg_ParseTuple, 2, 3);
PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(PyObject *, PyObject *,
@@ -31,13 +33,14 @@ PyAPI_FUNC(int) PyArg_ValidateKeywordArguments(PyObject *);
PyAPI_FUNC(int) PyArg_UnpackTuple(PyObject *, const char *, Py_ssize_t, Py_ssize_t, ...);
PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...);
PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...);
+#endif
#ifndef Py_LIMITED_API
PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kw);
-#endif
PyAPI_FUNC(int) PyArg_VaParse(PyObject *, const char *, va_list);
PyAPI_FUNC(int) PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *,
const char *, char **, va_list);
+#endif
PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list);
PyAPI_FUNC(int) PyModule_AddObject(PyObject *, const char *, PyObject *);
diff --git a/Misc/NEWS b/Misc/NEWS
index 623a5a4..9b7d00a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,8 @@ What's New in Python 3.3.0 Beta 1?
Core and Builtins
-----------------
+- Issue #11626: Add _SizeT functions to stable ABI.
+
- Issue #15146: Add PyType_FromSpecWithBases. Patch by Robin Schreiber.
- Issue #15142: Fix reference leak when deallocating instances of types
diff --git a/PC/python3.def b/PC/python3.def
index f16afca..d726525 100644
--- a/PC/python3.def
+++ b/PC/python3.def
@@ -691,3 +691,9 @@ EXPORTS
_Py_SwappedOp=python33._Py_SwappedOp DATA
_Py_TrueStruct=python33._Py_TrueStruct DATA
_Py_VaBuildValue_SizeT=python33._Py_VaBuildValue_SizeT
+ _PyArg_Parse_SizeT=python33._PyArg_Parse_SizeT
+ _PyArg_ParseTuple_SizeT=python33._PyArg_ParseTuple_SizeT
+ _PyArg_ParseTupleAndKeywords_SizeT=python33._PyArg_ParseTupleAndKeywords_SizeT
+ _PyArg_VaParse_SizeT=python33._PyArg_VaParse_SizeT
+ _PyArg_VaParseTupleAndKeywords_SizeT=python33._PyArg_VaParseTupleAndKeywords_SizeT
+ _Py_BuildValue_SizeT=python33._Py_BuildValue_SizeT
diff --git a/PC/python33gen.py b/PC/python33gen.py
index a85f417..21b9f56 100644
--- a/PC/python33gen.py
+++ b/PC/python33gen.py
@@ -7,8 +7,10 @@ out.write('LIBRARY "python33"\n')
out.write('EXPORTS\n')
inp = open("python3.def")
-inp.readline()
line = inp.readline()
+while line.strip().startswith(';'):
+ line = inp.readline()
+line = inp.readline() # LIBRARY
assert line.strip()=='EXPORTS'
for line in inp:
diff --git a/PC/python33stub.def b/PC/python33stub.def
index 4111d30..5b8ccf6 100644
--- a/PC/python33stub.def
+++ b/PC/python33stub.def
@@ -690,3 +690,9 @@ _Py_NotImplementedStruct
_Py_SwappedOp
_Py_TrueStruct
_Py_VaBuildValue_SizeT
+_PyArg_Parse_SizeT
+_PyArg_ParseTuple_SizeT
+_PyArg_ParseTupleAndKeywords_SizeT
+_PyArg_VaParse_SizeT
+_PyArg_VaParseTupleAndKeywords_SizeT
+_Py_BuildValue_SizeT