]> granicus.if.org Git - python/commitdiff
Issue #11626: Add _SizeT functions to stable ABI.
authorMartin v. Löwis <martin@v.loewis.de>
Sat, 23 Jun 2012 22:00:30 +0000 (00:00 +0200)
committerMartin v. Löwis <martin@v.loewis.de>
Sat, 23 Jun 2012 22:00:30 +0000 (00:00 +0200)
Include/modsupport.h
Misc/NEWS
PC/python3.def
PC/python33gen.py
PC/python33stub.def

index bf6478f4c2c5f15efa97bdf4f7bab2a29e48a2a9..ecf1dccc813c0d129b8f730c966a9474127fb269 100644 (file)
@@ -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 *);
index 623a5a493fb0e14cf84c56e989c58746ea713339..9b7d00a0bdc7136760739eeb6054ce35249a4532 100644 (file)
--- 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
index f16afca3a52661c3664dec016543a1d874899fb5..d726525534441e6c81e87d3333fc8db16356046f 100644 (file)
@@ -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
index a85f417671c32279913e2cd516b8ab82e55033f5..21b9f56982f0fa349314c0c43f1095b40bff320b 100644 (file)
@@ -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:
index 4111d30b8728dcde33a64f53a2b6456f0a5d4fb5..5b8ccf66359bd01baed4c58924446047589f2ee1 100644 (file)
@@ -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