[Python-checkins] cpython: Issue #13783: the PEP 380 implementation no longer expands the public C API
nick.coghlan
python-checkins at python.org
Sun Jun 17 07:16:03 CEST 2012
http://hg.python.org/cpython/rev/cfbf6aa5c9e3
changeset: 77476:cfbf6aa5c9e3
user: Nick Coghlan <ncoghlan at gmail.com>
date: Sun Jun 17 15:15:49 2012 +1000
summary:
Issue #13783: the PEP 380 implementation no longer expands the public C API
files:
Include/genobject.h | 2 +-
Include/pyerrors.h | 3 ---
Misc/NEWS | 6 ++++++
Objects/exceptions.c | 6 ------
Objects/genobject.c | 7 ++++---
Python/ceval.c | 2 +-
6 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/Include/genobject.h b/Include/genobject.h
--- a/Include/genobject.h
+++ b/Include/genobject.h
@@ -34,7 +34,7 @@
PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *);
PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *);
-PyAPI_FUNC(int) PyGen_FetchStopIterationValue(PyObject **);
+PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **);
PyObject *_PyGen_Send(PyGenObject *, PyObject *);
#ifdef __cplusplus
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -400,9 +400,6 @@
const char *reason /* UTF-8 encoded string */
);
-/* create a StopIteration exception with the given value */
-PyAPI_FUNC(PyObject *) PyStopIteration_Create(PyObject *);
-
/* These APIs aren't really part of the error implementation, but
often needed to format error messages; the native C lib APIs are
not available on all platforms, which is why we provide emulations
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -111,6 +111,12 @@
- Issue #14963: Convert contextlib.ExitStack.__exit__ to use an iterative
algorithm (Patch by Alon Horev)
+C-API
+-----
+
+- Issue #13783: Inadvertent additions to the public C API in the PEP 380
+ implementation have either been removed or marked as private interfaces.
+
Extension Modules
-----------------
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -516,12 +516,6 @@
return BaseException_traverse((PyBaseExceptionObject *)self, visit, arg);
}
-PyObject *
-PyStopIteration_Create(PyObject *value)
-{
- return PyObject_CallFunctionObjArgs(PyExc_StopIteration, value, NULL);
-}
-
ComplexExtendsException(
PyExc_Exception, /* base */
StopIteration, /* name */
diff --git a/Objects/genobject.c b/Objects/genobject.c
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -97,7 +97,8 @@
/* Delay exception instantiation if we can */
PyErr_SetNone(PyExc_StopIteration);
} else {
- PyObject *e = PyStopIteration_Create(result);
+ PyObject *e = PyObject_CallFunctionObjArgs(
+ PyExc_StopIteration, result, NULL);
if (e != NULL) {
PyErr_SetObject(PyExc_StopIteration, e);
Py_DECREF(e);
@@ -339,7 +340,7 @@
Py_DECREF(ret);
/* Termination repetition of YIELD_FROM */
gen->gi_frame->f_lasti++;
- if (PyGen_FetchStopIterationValue(&val) == 0) {
+ if (_PyGen_FetchStopIterationValue(&val) == 0) {
ret = gen_send_ex(gen, val, 0);
Py_DECREF(val);
} else {
@@ -428,7 +429,7 @@
*/
int
-PyGen_FetchStopIterationValue(PyObject **pvalue) {
+_PyGen_FetchStopIterationValue(PyObject **pvalue) {
PyObject *et, *ev, *tb;
PyObject *value = NULL;
diff --git a/Python/ceval.c b/Python/ceval.c
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1852,7 +1852,7 @@
PyObject *val;
x = POP(); /* Remove iter from stack */
Py_DECREF(x);
- err = PyGen_FetchStopIterationValue(&val);
+ err = _PyGen_FetchStopIterationValue(&val);
if (err < 0) {
x = NULL;
break;
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list