cpython: 0a45896a7cde (original) (raw)

Mercurial > cpython

changeset 83976:0a45896a7cde

Issue #9369: The types of `char*` arguments of PyObject_CallFunction() and PyObject_CallMethod() now changed to `const char*`. Based on patches by Jörg Müller and Lars Buitinck. [#9369]

Serhiy Storchaka storchaka@gmail.com
date Wed, 29 May 2013 18:50:54 +0300
parents 148000544c3f
children bcaaaa00425b
files Doc/c-api/object.rst Doc/data/refcounts.dat Include/abstract.h Misc/ACKS Misc/NEWS Objects/abstract.c
diffstat 6 files changed, 42 insertions(+), 22 deletions(-)[+] [-] Doc/c-api/object.rst 10 Doc/data/refcounts.dat 8 Include/abstract.h 23 Misc/ACKS 2 Misc/NEWS 4 Objects/abstract.c 17

line wrap: on

line diff

--- a/Doc/c-api/object.rst +++ b/Doc/c-api/object.rst @@ -240,7 +240,7 @@ is considered sufficient for this determ of the Python expression callable_object(*args). -.. c:function:: PyObject* PyObject_CallFunction(PyObject *callable, char format, ...) +.. c:function:: PyObject PyObject_CallFunction(PyObject *callable, const char *format, ...) Call a callable Python object callable, with a variable number of C arguments. The C arguments are described using a :c:func:Py_BuildValue style format @@ -250,8 +250,11 @@ is considered sufficient for this determ pass :c:type:PyObject \* args, :c:func:PyObject_CallFunctionObjArgs is a faster alternative.

-.. c:function:: PyObject* PyObject_CallMethod(PyObject *o, char *method, char format, ...) + +.. c:function:: PyObject PyObject_CallMethod(PyObject *o, const char *method, const char *format, ...) Call the method named method of object o with a variable number of C arguments. The C arguments are described by a :c:func:Py_BuildValue format @@ -261,6 +264,9 @@ is considered sufficient for this determ Note that if you only pass :c:type:PyObject \* args, :c:func:PyObject_CallMethodObjArgs is a faster alternative.

+ .. c:function:: PyObject* PyObject_CallFunctionObjArgs(PyObject *callable, ..., NULL)

--- a/Doc/data/refcounts.dat +++ b/Doc/data/refcounts.dat @@ -218,7 +218,7 @@ PyDict_GetItem:PyObject*:key:0: PyDict_GetItemString:PyObject*::0: PyDict_GetItemString:PyObject*:p:0: -PyDict_GetItemString:char*:key:: +PyDict_GetItemString:const char*:key:: PyDict_SetDefault:PyObject*::0: PyDict_SetDefault:PyObject*:p:0: @@ -917,7 +917,7 @@ PyObject_Call:PyObject*:kw:0: PyObject_CallFunction:PyObject*::+1: PyObject_CallFunction:PyObject*:callable_object:0: -PyObject_CallFunction:char*:format:: +PyObject_CallFunction:const char*:format:: PyObject_CallFunction::...:: PyObject_CallFunctionObjArgs:PyObject*::+1: @@ -926,8 +926,8 @@ PyObject_CallFunctionObjArgs::...:: PyObject_CallMethod:PyObject*::+1: PyObject_CallMethod:PyObject*:o:0: -PyObject_CallMethod:char*:m:: -PyObject_CallMethod:char*:format:: +PyObject_CallMethod:const char*:m:: +PyObject_CallMethod:const char*:format:: PyObject_CallMethod::...:: PyObject_CallMethodObjArgs:PyObject*::+1:

--- a/Include/abstract.h +++ b/Include/abstract.h @@ -284,7 +284,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */ PyAPI_FUNC(PyObject *) PyObject_CallFunction(PyObject *callable_object,

/* Call a callable Python object, callable_object, with a @@ -296,8 +296,9 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */

/* Call the method named m of object o with a variable number of @@ -308,8 +309,9 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Python expression: o.method(args). */

/ Like PyObject_CallMethod, but expect a _Py_Identifier as the @@ -317,13 +319,16 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */ PyAPI_FUNC(PyObject *) _PyObject_CallFunction_SizeT(PyObject *callable,

PyAPI_FUNC(PyObject *) PyObject_CallFunctionObjArgs(PyObject *callable, ...);

--- a/Misc/ACKS +++ b/Misc/ACKS @@ -174,6 +174,7 @@ Floris Bruynooghe Stan Bubrouski Erik de Bueger Jan-Hein Bührman +Lars Buitinck Dick Bulterman Bill Bumgarner Jimmy Burgett @@ -872,6 +873,7 @@ Neil Muller Louis Munro R. David Murray Matti Mäki +Jörg Müller Dale Nagata John Nagle Takahiro Nakayama

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -387,6 +387,10 @@ Tests C-API ----- +- Issue #9369: The types of char* arguments of PyObject_CallFunction() and

--- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -2142,7 +2142,7 @@ call_function_tail(PyObject *callable, P } PyObject * -PyObject_CallFunction(PyObject *callable, char *format, ...) +PyObject_CallFunction(PyObject *callable, const char *format, ...) { va_list va; PyObject *args; @@ -2162,7 +2162,7 @@ PyObject_CallFunction(PyObject *callable } PyObject * -_PyObject_CallFunction_SizeT(PyObject *callable, char *format, ...) +_PyObject_CallFunction_SizeT(PyObject *callable, const char *format, ...) { va_list va; PyObject args; @@ -2182,7 +2182,7 @@ PyObject } static PyObject -callmethod(PyObject func, char format, va_list va, int is_size_t) +callmethod(PyObject func, const char *format, va_list va, int is_size_t) { PyObject *retval = NULL; PyObject args; @@ -2211,7 +2211,7 @@ callmethod(PyObject func, char *format, } PyObject * -PyObject_CallMethod(PyObject *o, char *name, char *format, ...) +PyObject_CallMethod(PyObject *o, const char *name, const char *format, ...) { va_list va; PyObject *func = NULL; @@ -2232,7 +2232,8 @@ PyObject_CallMethod(PyObject *o, char *n } PyObject * -_PyObject_CallMethodId(PyObject *o, _Py_Identifier *name, char *format, ...) +_PyObject_CallMethodId(PyObject *o, _Py_Identifier *name,

{ va_list va; PyObject *func = NULL; @@ -2253,7 +2254,8 @@ PyObject * } PyObject * -_PyObject_CallMethod_SizeT(PyObject *o, char *name, char *format, ...) +_PyObject_CallMethod_SizeT(PyObject *o, const char *name,

{ va_list va; PyObject *func = NULL; @@ -2273,7 +2275,8 @@ PyObject * } PyObject * -_PyObject_CallMethodId_SizeT(PyObject *o, _Py_Identifier *name, char *format, ...) +_PyObject_CallMethodId_SizeT(PyObject *o, _Py_Identifier *name,

{ va_list va; PyObject *func = NULL;