Python-checkins
Threads by month
- ----- 2024 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
November 2018
- 2 participants
- 507 discussions
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
bpo-33012: Fix more invalid function cast warnings with gcc 8. (GH-10751)
by Serhiy Storchaka 27 Nov '18
by Serhiy Storchaka 27 Nov '18
27 Nov '18
https://github.com/python/cpython/commit/1c607155c9e363489036ae6258b165a3fa…
commit: 1c607155c9e363489036ae6258b165a3fae75134
branch: master
author: Serhiy Storchaka <storchaka(a)gmail.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T21:34:27+02:00
summary:
bpo-33012: Fix more invalid function cast warnings with gcc 8. (GH-10751)
Fix warnings with gcc 8 for wrapperfunc <-> wrapperfunc_kwds casts.
files:
M Objects/descrobject.c
M Objects/typeobject.c
diff --git a/Objects/descrobject.c b/Objects/descrobject.c
index d8dbfa9a4792..e129d0c48f27 100644
--- a/Objects/descrobject.c
+++ b/Objects/descrobject.c
@@ -346,7 +346,7 @@ wrapperdescr_raw_call(PyWrapperDescrObject *descr, PyObject *self,
wrapperfunc wrapper = descr->d_base->wrapper;
if (descr->d_base->flags & PyWrapperFlag_KEYWORDS) {
- wrapperfunc_kwds wk = (wrapperfunc_kwds)wrapper;
+ wrapperfunc_kwds wk = (wrapperfunc_kwds)(void(*)(void))wrapper;
return (*wk)(self, args, descr->d_wrapped, kwds);
}
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 73d385b0f8a0..d1f1e8cd24b7 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -6822,7 +6822,7 @@ static slotdef slotdefs[] = {
"__repr__($self, /)\n--\n\nReturn repr(self)."),
TPSLOT("__hash__", tp_hash, slot_tp_hash, wrap_hashfunc,
"__hash__($self, /)\n--\n\nReturn hash(self)."),
- FLSLOT("__call__", tp_call, slot_tp_call, (wrapperfunc)wrap_call,
+ FLSLOT("__call__", tp_call, slot_tp_call, (wrapperfunc)(void(*)(void))wrap_call,
"__call__($self, /, *args, **kwargs)\n--\n\nCall self as a function.",
PyWrapperFlag_KEYWORDS),
TPSLOT("__str__", tp_str, slot_tp_str, wrap_unaryfunc,
@@ -6858,7 +6858,7 @@ static slotdef slotdefs[] = {
TPSLOT("__delete__", tp_descr_set, slot_tp_descr_set,
wrap_descr_delete,
"__delete__($self, instance, /)\n--\n\nDelete an attribute of instance."),
- FLSLOT("__init__", tp_init, slot_tp_init, (wrapperfunc)wrap_init,
+ FLSLOT("__init__", tp_init, slot_tp_init, (wrapperfunc)(void(*)(void))wrap_init,
"__init__($self, /, *args, **kwargs)\n--\n\n"
"Initialize self. See help(type(self)) for accurate signature.",
PyWrapperFlag_KEYWORDS),
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
bpo-33012: Fix signatures of METH_NOARGS functions. (GH-10736) (GH-10748)
by Miss Islington (bot) 27 Nov '18
by Miss Islington (bot) 27 Nov '18
27 Nov '18
https://github.com/python/cpython/commit/d5c8bd8e4cc04873254f0bd38895a6479c…
commit: d5c8bd8e4cc04873254f0bd38895a6479c23c8aa
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T10:51:07-08:00
summary:
bpo-33012: Fix signatures of METH_NOARGS functions. (GH-10736) (GH-10748)
(cherry picked from commit 81524022d0c0df7a41f9b2b2df41e2ebe140e610)
(cherry picked from commit ad8ac54aa3d2323bdb5feb5e858a922840358187)
Co-authored-by: Serhiy Storchaka <storchaka(a)gmail.com>
files:
M Modules/_collectionsmodule.c
M Modules/_cursesmodule.c
M Modules/_testcapimodule.c
M Objects/odictobject.c
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 4fbf3bdb1463..25006fa2c975 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1341,7 +1341,7 @@ deque_traverse(dequeobject *deque, visitproc visit, void *arg)
}
static PyObject *
-deque_reduce(dequeobject *deque)
+deque_reduce(dequeobject *deque, PyObject *Py_UNUSED(ignored))
{
PyObject *dict, *it;
_Py_IDENTIFIER(__dict__);
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 8b46466d6f00..c048a7ddf2da 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -414,27 +414,27 @@ PyTypeObject PyCursesWindow_Type;
PARSESTR - format string for argument parsing
*/
-#define Window_NoArgNoReturnFunction(X) \
- static PyObject *PyCursesWindow_ ## X \
- (PyCursesWindowObject *self, PyObject *args) \
+#define Window_NoArgNoReturnFunction(X) \
+ static PyObject *PyCursesWindow_ ## X \
+ (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored)) \
{ return PyCursesCheckERR(X(self->win), # X); }
#define Window_NoArgTrueFalseFunction(X) \
static PyObject * PyCursesWindow_ ## X \
- (PyCursesWindowObject *self) \
+ (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored)) \
{ \
if (X (self->win) == FALSE) { Py_INCREF(Py_False); return Py_False; } \
else { Py_INCREF(Py_True); return Py_True; } }
#define Window_NoArgNoReturnVoidFunction(X) \
static PyObject * PyCursesWindow_ ## X \
- (PyCursesWindowObject *self) \
+ (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored)) \
{ \
X(self->win); Py_INCREF(Py_None); return Py_None; }
#define Window_NoArg2TupleReturnFunction(X, TYPE, ERGSTR) \
static PyObject * PyCursesWindow_ ## X \
- (PyCursesWindowObject *self) \
+ (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored)) \
{ \
TYPE arg1, arg2; \
X(self->win,arg1,arg2); return Py_BuildValue(ERGSTR, arg1, arg2); }
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index 556d49bb3c83..067d46346a68 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -952,7 +952,7 @@ test_buildvalue_N_error(const char *fmt)
}
static PyObject *
-test_buildvalue_N(PyObject *self, PyObject *noargs)
+test_buildvalue_N(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *arg, *res;
@@ -2351,7 +2351,7 @@ pending_threadfunc(PyObject *self, PyObject *arg)
/* Some tests of PyUnicode_FromFormat(). This needs more tests. */
static PyObject *
-test_string_from_format(PyObject *self, PyObject *args)
+test_string_from_format(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *result;
char *msg;
@@ -2491,7 +2491,7 @@ typedef struct {
} known_capsule;
static PyObject *
-test_capsule(PyObject *self, PyObject *args)
+test_capsule(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *object;
const char *error = NULL;
@@ -2863,7 +2863,7 @@ make_memoryview_from_NULL_pointer(PyObject *self)
}
static PyObject *
-test_from_contiguous(PyObject* self, PyObject *noargs)
+test_from_contiguous(PyObject* self, PyObject *Py_UNUSED(ignored))
{
int data[9] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
int init[5] = {0, 1, 2, 3, 4};
@@ -2916,7 +2916,7 @@ test_from_contiguous(PyObject* self, PyObject *noargs)
extern PyTypeObject _PyBytesIOBuffer_Type;
static PyObject *
-test_pep3118_obsolete_write_locks(PyObject* self, PyObject *noargs)
+test_pep3118_obsolete_write_locks(PyObject* self, PyObject *Py_UNUSED(ignored))
{
PyTypeObject *type = &_PyBytesIOBuffer_Type;
PyObject *b;
diff --git a/Objects/odictobject.c b/Objects/odictobject.c
index f433cd2f4cec..fdeda43bbd81 100644
--- a/Objects/odictobject.c
+++ b/Objects/odictobject.c
@@ -1889,7 +1889,7 @@ odictiter_iternext(odictiterobject *di)
PyDoc_STRVAR(reduce_doc, "Return state information for pickling");
static PyObject *
-odictiter_reduce(odictiterobject *di)
+odictiter_reduce(odictiterobject *di, PyObject *Py_UNUSED(ignored))
{
/* copy the iterator state */
odictiterobject tmp = *di;
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
bpo-35312: Make lib2to3.pgen2.parse.ParseError round-trip pickle-able. (GH-10710)
by Serhiy Storchaka 27 Nov '18
by Serhiy Storchaka 27 Nov '18
27 Nov '18
https://github.com/python/cpython/commit/c57e6e2e52d5d8b4005753bed789d99ebe…
commit: c57e6e2e52d5d8b4005753bed789d99ebe407fb6
branch: master
author: Anthony Sottile <asottile(a)umich.edu>
committer: Serhiy Storchaka <storchaka(a)gmail.com>
date: 2018-11-27T20:39:49+02:00
summary:
bpo-35312: Make lib2to3.pgen2.parse.ParseError round-trip pickle-able. (GH-10710)
files:
A Misc/NEWS.d/next/Library/2018-11-25-20-05-33.bpo-35312.wbw0zO.rst
M Lib/lib2to3/pgen2/parse.py
M Lib/lib2to3/tests/test_parser.py
diff --git a/Lib/lib2to3/pgen2/parse.py b/Lib/lib2to3/pgen2/parse.py
index 6bebdbba7e52..cf3fcf7e99fd 100644
--- a/Lib/lib2to3/pgen2/parse.py
+++ b/Lib/lib2to3/pgen2/parse.py
@@ -24,6 +24,9 @@ def __init__(self, msg, type, value, context):
self.value = value
self.context = context
+ def __reduce__(self):
+ return type(self), (self.msg, self.type, self.value, self.context)
+
class Parser(object):
"""Parser engine.
diff --git a/Lib/lib2to3/tests/test_parser.py b/Lib/lib2to3/tests/test_parser.py
index 829e5a72924a..01b2b51e4ab6 100644
--- a/Lib/lib2to3/tests/test_parser.py
+++ b/Lib/lib2to3/tests/test_parser.py
@@ -622,6 +622,18 @@ def test_multiline_str_literals(self):
self.validate(s)
+class TestPickleableException(unittest.TestCase):
+ def test_ParseError(self):
+ err = ParseError('msg', 2, None, (1, 'context'))
+ for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+ err2 = pickle.loads(pickle.dumps(err, protocol=proto))
+ self.assertEqual(err.args, err2.args)
+ self.assertEqual(err.msg, err2.msg)
+ self.assertEqual(err.type, err2.type)
+ self.assertEqual(err.value, err2.value)
+ self.assertEqual(err.context, err2.context)
+
+
def diff_texts(a, b, filename):
a = a.splitlines()
b = b.splitlines()
diff --git a/Misc/NEWS.d/next/Library/2018-11-25-20-05-33.bpo-35312.wbw0zO.rst b/Misc/NEWS.d/next/Library/2018-11-25-20-05-33.bpo-35312.wbw0zO.rst
new file mode 100644
index 000000000000..c195468b9e27
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-11-25-20-05-33.bpo-35312.wbw0zO.rst
@@ -0,0 +1 @@
+Make ``lib2to3.pgen2.parse.ParseError`` round-trip pickle-able. Patch by Anthony Sottile.
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
[3.6] bpo-33029: Fix signatures of getter and setter functions. (GH-10746) (GH-10749)
by Serhiy Storchaka 27 Nov '18
by Serhiy Storchaka 27 Nov '18
27 Nov '18
https://github.com/python/cpython/commit/29d2f3c47280f05795c9d4d70f4018cb14…
commit: 29d2f3c47280f05795c9d4d70f4018cb1488f0ab
branch: 3.6
author: Serhiy Storchaka <storchaka(a)gmail.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T20:38:36+02:00
summary:
[3.6] bpo-33029: Fix signatures of getter and setter functions. (GH-10746) (GH-10749)
Fix also return type for few other functions (clear, releasebuffer).
(cherry picked from commit d4f9cf5545d6d8844e0726552ef2e366f5cc3abd)
files:
M Modules/_asynciomodule.c
M Modules/_collectionsmodule.c
M Modules/_csv.c
M Modules/_ctypes/_ctypes.c
M Modules/_cursesmodule.c
M Modules/_io/bytesio.c
M Modules/_pickle.c
M Modules/_sqlite/connection.c
M Modules/_sqlite/row.c
M Modules/_sre.c
M Modules/_testbuffer.c
M Modules/_tkinter.c
M Modules/cjkcodecs/multibytecodec.c
M Modules/mmapmodule.c
M Modules/selectmodule.c
M Modules/xxsubtype.c
M Objects/descrobject.c
M Objects/exceptions.c
M Objects/frameobject.c
M Objects/funcobject.c
M Objects/genobject.c
M Objects/memoryobject.c
M Python/traceback.c
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index 2a6c16da85b4..39786cc5f664 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -625,7 +625,7 @@ _asyncio_Future_done_impl(FutureObj *self)
}
static PyObject *
-FutureObj_get_blocking(FutureObj *fut)
+FutureObj_get_blocking(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (fut->fut_blocking) {
Py_RETURN_TRUE;
@@ -636,7 +636,7 @@ FutureObj_get_blocking(FutureObj *fut)
}
static int
-FutureObj_set_blocking(FutureObj *fut, PyObject *val)
+FutureObj_set_blocking(FutureObj *fut, PyObject *val, void *Py_UNUSED(ignored))
{
int is_true = PyObject_IsTrue(val);
if (is_true < 0) {
@@ -647,7 +647,7 @@ FutureObj_set_blocking(FutureObj *fut, PyObject *val)
}
static PyObject *
-FutureObj_get_log_traceback(FutureObj *fut)
+FutureObj_get_log_traceback(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (fut->fut_log_tb) {
Py_RETURN_TRUE;
@@ -658,7 +658,7 @@ FutureObj_get_log_traceback(FutureObj *fut)
}
static int
-FutureObj_set_log_traceback(FutureObj *fut, PyObject *val)
+FutureObj_set_log_traceback(FutureObj *fut, PyObject *val, void *Py_UNUSED(ignored))
{
int is_true = PyObject_IsTrue(val);
if (is_true < 0) {
@@ -669,7 +669,7 @@ FutureObj_set_log_traceback(FutureObj *fut, PyObject *val)
}
static PyObject *
-FutureObj_get_loop(FutureObj *fut)
+FutureObj_get_loop(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (fut->fut_loop == NULL) {
Py_RETURN_NONE;
@@ -679,7 +679,7 @@ FutureObj_get_loop(FutureObj *fut)
}
static PyObject *
-FutureObj_get_callbacks(FutureObj *fut)
+FutureObj_get_callbacks(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (fut->fut_callbacks == NULL) {
Py_RETURN_NONE;
@@ -689,7 +689,7 @@ FutureObj_get_callbacks(FutureObj *fut)
}
static PyObject *
-FutureObj_get_result(FutureObj *fut)
+FutureObj_get_result(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (fut->fut_result == NULL) {
Py_RETURN_NONE;
@@ -699,7 +699,7 @@ FutureObj_get_result(FutureObj *fut)
}
static PyObject *
-FutureObj_get_exception(FutureObj *fut)
+FutureObj_get_exception(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (fut->fut_exception == NULL) {
Py_RETURN_NONE;
@@ -709,7 +709,7 @@ FutureObj_get_exception(FutureObj *fut)
}
static PyObject *
-FutureObj_get_source_traceback(FutureObj *fut)
+FutureObj_get_source_traceback(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (fut->fut_source_tb == NULL) {
Py_RETURN_NONE;
@@ -719,7 +719,7 @@ FutureObj_get_source_traceback(FutureObj *fut)
}
static PyObject *
-FutureObj_get_state(FutureObj *fut)
+FutureObj_get_state(FutureObj *fut, void *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(PENDING);
_Py_IDENTIFIER(CANCELLED);
@@ -1207,7 +1207,7 @@ TaskStepMethWrapper_traverse(TaskStepMethWrapper *o,
}
static PyObject *
-TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o)
+TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o, void *Py_UNUSED(ignored))
{
if (o->sw_task) {
Py_INCREF(o->sw_task);
@@ -1387,7 +1387,7 @@ TaskObj_traverse(TaskObj *task, visitproc visit, void *arg)
}
static PyObject *
-TaskObj_get_log_destroy_pending(TaskObj *task)
+TaskObj_get_log_destroy_pending(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_log_destroy_pending) {
Py_RETURN_TRUE;
@@ -1398,7 +1398,7 @@ TaskObj_get_log_destroy_pending(TaskObj *task)
}
static int
-TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val)
+TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val, void *Py_UNUSED(ignored))
{
int is_true = PyObject_IsTrue(val);
if (is_true < 0) {
@@ -1409,7 +1409,7 @@ TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val)
}
static PyObject *
-TaskObj_get_must_cancel(TaskObj *task)
+TaskObj_get_must_cancel(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_must_cancel) {
Py_RETURN_TRUE;
@@ -1420,7 +1420,7 @@ TaskObj_get_must_cancel(TaskObj *task)
}
static PyObject *
-TaskObj_get_coro(TaskObj *task)
+TaskObj_get_coro(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_coro) {
Py_INCREF(task->task_coro);
@@ -1431,7 +1431,7 @@ TaskObj_get_coro(TaskObj *task)
}
static PyObject *
-TaskObj_get_fut_waiter(TaskObj *task)
+TaskObj_get_fut_waiter(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_fut_waiter) {
Py_INCREF(task->task_fut_waiter);
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 85037d002703..4fbf3bdb1463 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1539,7 +1539,7 @@ deque_bool(dequeobject *deque)
}
static PyObject *
-deque_get_maxlen(dequeobject *deque)
+deque_get_maxlen(dequeobject *deque, void *Py_UNUSED(ignored))
{
if (deque->maxlen < 0)
Py_RETURN_NONE;
diff --git a/Modules/_csv.c b/Modules/_csv.c
index 5d0044a2377a..5324fa6bb657 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -160,31 +160,31 @@ get_nullchar_as_None(Py_UCS4 c)
}
static PyObject *
-Dialect_get_lineterminator(DialectObj *self)
+Dialect_get_lineterminator(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_string(self->lineterminator);
}
static PyObject *
-Dialect_get_delimiter(DialectObj *self)
+Dialect_get_delimiter(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->delimiter);
}
static PyObject *
-Dialect_get_escapechar(DialectObj *self)
+Dialect_get_escapechar(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->escapechar);
}
static PyObject *
-Dialect_get_quotechar(DialectObj *self)
+Dialect_get_quotechar(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->quotechar);
}
static PyObject *
-Dialect_get_quoting(DialectObj *self)
+Dialect_get_quoting(DialectObj *self, void *Py_UNUSED(ignored))
{
return PyLong_FromLong(self->quoting);
}
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 69d73f5a958f..c5b499c7aac2 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -1163,7 +1163,7 @@ PyTypeObject PyCPointerType_Type = {
*/
static int
-CharArray_set_raw(CDataObject *self, PyObject *value)
+CharArray_set_raw(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
char *ptr;
Py_ssize_t size;
@@ -1189,13 +1189,13 @@ CharArray_set_raw(CDataObject *self, PyObject *value)
}
static PyObject *
-CharArray_get_raw(CDataObject *self)
+CharArray_get_raw(CDataObject *self, void *Py_UNUSED(ignored))
{
return PyBytes_FromStringAndSize(self->b_ptr, self->b_size);
}
static PyObject *
-CharArray_get_value(CDataObject *self)
+CharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
Py_ssize_t i;
char *ptr = self->b_ptr;
@@ -1206,7 +1206,7 @@ CharArray_get_value(CDataObject *self)
}
static int
-CharArray_set_value(CDataObject *self, PyObject *value)
+CharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
char *ptr;
Py_ssize_t size;
@@ -1251,7 +1251,7 @@ static PyGetSetDef CharArray_getsets[] = {
#ifdef CTYPES_UNICODE
static PyObject *
-WCharArray_get_value(CDataObject *self)
+WCharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
Py_ssize_t i;
wchar_t *ptr = (wchar_t *)self->b_ptr;
@@ -1262,7 +1262,7 @@ WCharArray_get_value(CDataObject *self)
}
static int
-WCharArray_set_value(CDataObject *self, PyObject *value)
+WCharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
Py_ssize_t result = 0;
Py_UNICODE *wstr;
@@ -3049,7 +3049,7 @@ GenericPyCData_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
*/
static int
-PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
if (ob && !PyCallable_Check(ob)) {
PyErr_SetString(PyExc_TypeError,
@@ -3062,7 +3062,7 @@ PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self)
+PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
if (self->errcheck) {
Py_INCREF(self->errcheck);
@@ -3073,7 +3073,7 @@ PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self)
}
static int
-PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
if (ob == NULL) {
Py_CLEAR(self->restype);
@@ -3094,7 +3094,7 @@ PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_restype(PyCFuncPtrObject *self)
+PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
if (self->restype) {
@@ -3113,7 +3113,7 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self)
}
static int
-PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
PyObject *converters;
@@ -3132,7 +3132,7 @@ PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_argtypes(PyCFuncPtrObject *self)
+PyCFuncPtr_get_argtypes(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
if (self->argtypes) {
@@ -4678,7 +4678,7 @@ PyCArrayType_from_ctype(PyObject *itemtype, Py_ssize_t length)
*/
static int
-Simple_set_value(CDataObject *self, PyObject *value)
+Simple_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
PyObject *result;
StgDictObject *dict = PyObject_stgdict((PyObject *)self);
@@ -4705,12 +4705,12 @@ Simple_init(CDataObject *self, PyObject *args, PyObject *kw)
if (!PyArg_UnpackTuple(args, "__init__", 0, 1, &value))
return -1;
if (value)
- return Simple_set_value(self, value);
+ return Simple_set_value(self, value, NULL);
return 0;
}
static PyObject *
-Simple_get_value(CDataObject *self)
+Simple_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
dict = PyObject_stgdict((PyObject *)self);
@@ -4733,7 +4733,7 @@ Simple_from_outparm(PyObject *self, PyObject *args)
return self;
}
/* call stgdict->getfunc */
- return Simple_get_value((CDataObject *)self);
+ return Simple_get_value((CDataObject *)self, NULL);
}
static PyMethodDef Simple_methods[] = {
@@ -4770,7 +4770,7 @@ Simple_repr(CDataObject *self)
Py_TYPE(self)->tp_name, self);
}
- val = Simple_get_value(self);
+ val = Simple_get_value(self, NULL);
if (val == NULL)
return NULL;
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 4ac702aa2f82..8b46466d6f00 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -1976,7 +1976,7 @@ PyCursesWindow_get_encoding(PyCursesWindowObject *self, void *closure)
}
static int
-PyCursesWindow_set_encoding(PyCursesWindowObject *self, PyObject *value)
+PyCursesWindow_set_encoding(PyCursesWindowObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
PyObject *ascii;
char *encoding;
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
index 6c54de733b95..d5884fa533de 100644
--- a/Modules/_io/bytesio.c
+++ b/Modules/_io/bytesio.c
@@ -201,7 +201,7 @@ write_bytes(bytesio *self, const char *bytes, Py_ssize_t len)
}
static PyObject *
-bytesio_get_closed(bytesio *self)
+bytesio_get_closed(bytesio *self, void *Py_UNUSED(ignored))
{
if (self->buf == NULL) {
Py_RETURN_TRUE;
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 6830d93f503e..389bb6701c5f 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -4476,13 +4476,13 @@ PicklerMemoProxy_New(PicklerObject *pickler)
/*****************************************************************************/
static PyObject *
-Pickler_get_memo(PicklerObject *self)
+Pickler_get_memo(PicklerObject *self, void *Py_UNUSED(ignored))
{
return PicklerMemoProxy_New(self);
}
static int
-Pickler_set_memo(PicklerObject *self, PyObject *obj)
+Pickler_set_memo(PicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
{
PyMemoTable *new_memo = NULL;
@@ -4544,7 +4544,7 @@ Pickler_set_memo(PicklerObject *self, PyObject *obj)
}
static PyObject *
-Pickler_get_persid(PicklerObject *self)
+Pickler_get_persid(PicklerObject *self, void *Py_UNUSED(ignored))
{
if (self->pers_func == NULL) {
PyErr_SetString(PyExc_AttributeError, "persistent_id");
@@ -4554,7 +4554,7 @@ Pickler_get_persid(PicklerObject *self)
}
static int
-Pickler_set_persid(PicklerObject *self, PyObject *value)
+Pickler_set_persid(PicklerObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == NULL) {
PyErr_SetString(PyExc_TypeError,
@@ -6908,13 +6908,13 @@ UnpicklerMemoProxy_New(UnpicklerObject *unpickler)
static PyObject *
-Unpickler_get_memo(UnpicklerObject *self)
+Unpickler_get_memo(UnpicklerObject *self, void *Py_UNUSED(ignored))
{
return UnpicklerMemoProxy_New(self);
}
static int
-Unpickler_set_memo(UnpicklerObject *self, PyObject *obj)
+Unpickler_set_memo(UnpicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
{
PyObject **new_memo;
size_t new_memo_size = 0;
@@ -6991,7 +6991,7 @@ Unpickler_set_memo(UnpicklerObject *self, PyObject *obj)
}
static PyObject *
-Unpickler_get_persload(UnpicklerObject *self)
+Unpickler_get_persload(UnpicklerObject *self, void *Py_UNUSED(ignored))
{
if (self->pers_func == NULL) {
PyErr_SetString(PyExc_AttributeError, "persistent_load");
@@ -7001,7 +7001,7 @@ Unpickler_get_persload(UnpicklerObject *self)
}
static int
-Unpickler_set_persload(UnpicklerObject *self, PyObject *value)
+Unpickler_set_persload(UnpicklerObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == NULL) {
PyErr_SetString(PyExc_TypeError,
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index f503288336d0..d86caef7ab60 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -51,7 +51,7 @@ static const char * const begin_statements[] = {
NULL
};
-static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level);
+static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level, void *Py_UNUSED(ignored));
static void _pysqlite_drop_unused_cursor_references(pysqlite_Connection* self);
@@ -136,7 +136,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
Py_INCREF(isolation_level);
}
self->isolation_level = NULL;
- if (pysqlite_connection_set_isolation_level(self, isolation_level) < 0) {
+ if (pysqlite_connection_set_isolation_level(self, isolation_level, NULL) < 0) {
Py_DECREF(isolation_level);
return -1;
}
@@ -1162,7 +1162,8 @@ static PyObject* pysqlite_connection_get_in_transaction(pysqlite_Connection* sel
Py_RETURN_FALSE;
}
-static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level)
+static int
+pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level, void *Py_UNUSED(ignored))
{
if (isolation_level == Py_None) {
PyObject *res = pysqlite_connection_commit(self, NULL);
diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c
index 53342f3444c0..8c53f89f1bc5 100644
--- a/Modules/_sqlite/row.c
+++ b/Modules/_sqlite/row.c
@@ -150,7 +150,8 @@ PyObject* pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx)
}
}
-Py_ssize_t pysqlite_row_length(pysqlite_Row* self, PyObject* args, PyObject* kwargs)
+static Py_ssize_t
+pysqlite_row_length(pysqlite_Row* self)
{
return PyTuple_GET_SIZE(self->data);
}
diff --git a/Modules/_sre.c b/Modules/_sre.c
index d09249672f8b..a4b7e72153ae 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -1424,7 +1424,7 @@ PyDoc_STRVAR(pattern_doc, "Compiled regular expression objects");
/* PatternObject's 'groupindex' method. */
static PyObject *
-pattern_groupindex(PatternObject *self)
+pattern_groupindex(PatternObject *self, void *Py_UNUSED(ignored))
{
return PyDictProxy_New(self->groupindex);
}
@@ -2426,7 +2426,7 @@ PyDoc_STRVAR(match_group_doc,
For 0 returns the entire match.");
static PyObject *
-match_lastindex_get(MatchObject *self)
+match_lastindex_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->lastindex >= 0)
return PyLong_FromSsize_t(self->lastindex);
@@ -2435,7 +2435,7 @@ match_lastindex_get(MatchObject *self)
}
static PyObject *
-match_lastgroup_get(MatchObject *self)
+match_lastgroup_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->pattern->indexgroup && self->lastindex >= 0) {
PyObject* result = PySequence_GetItem(
@@ -2450,7 +2450,7 @@ match_lastgroup_get(MatchObject *self)
}
static PyObject *
-match_regs_get(MatchObject *self)
+match_regs_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->regs) {
Py_INCREF(self->regs);
diff --git a/Modules/_testbuffer.c b/Modules/_testbuffer.c
index 669794df012c..a16b96db048a 100644
--- a/Modules/_testbuffer.c
+++ b/Modules/_testbuffer.c
@@ -1531,7 +1531,7 @@ ndarray_getbuf(NDArrayObject *self, Py_buffer *view, int flags)
return 0;
}
-static int
+static void
ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
{
if (!ND_IS_CONSUMER(self)) {
@@ -1539,8 +1539,6 @@ ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
if (--ndbuf->exports == 0 && ndbuf != self->head)
ndbuf_delete(self, ndbuf);
}
-
- return 0;
}
static PyBufferProcs ndarray_as_buffer = {
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 080b44f78562..473e601556f6 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -864,7 +864,7 @@ PyTclObject_string(PyTclObject *self, void *ignored)
}
static PyObject *
-PyTclObject_str(PyTclObject *self, void *ignored)
+PyTclObject_str(PyTclObject *self)
{
if (self->string) {
Py_INCREF(self->string);
@@ -877,7 +877,7 @@ PyTclObject_str(PyTclObject *self, void *ignored)
static PyObject *
PyTclObject_repr(PyTclObject *self)
{
- PyObject *repr, *str = PyTclObject_str(self, NULL);
+ PyObject *repr, *str = PyTclObject_str(self);
if (str == NULL)
return NULL;
repr = PyUnicode_FromFormat("<%s object: %R>",
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index d6efc77d20c8..e85ec56e0acf 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -108,7 +108,7 @@ call_error_callback(PyObject *errors, PyObject *exc)
}
static PyObject *
-codecctx_errors_get(MultibyteStatefulCodecContext *self)
+codecctx_errors_get(MultibyteStatefulCodecContext *self, void *Py_UNUSED(ignored))
{
const char *errors;
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index 721e5ed32ea2..dec670fa0b43 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -681,7 +681,7 @@ mmap_move_method(mmap_object *self, PyObject *args)
}
static PyObject *
-mmap_closed_get(mmap_object *self)
+mmap_closed_get(mmap_object *self, void *Py_UNUSED(ignored))
{
#ifdef MS_WINDOWS
return PyBool_FromLong(self->map_handle == NULL ? 1 : 0);
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 5438b697ddcd..f02f5ae4e10c 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -1026,7 +1026,7 @@ Close the devpoll file descriptor. Further operations on the devpoll\n\
object will raise an exception.");
static PyObject*
-devpoll_get_closed(devpollObject *self)
+devpoll_get_closed(devpollObject *self, void *Py_UNUSED(ignored))
{
if (self->fd_devpoll < 0)
Py_RETURN_TRUE;
@@ -1345,7 +1345,7 @@ Close the epoll control file descriptor. Further operations on the epoll\n\
object will raise an exception.");
static PyObject*
-pyepoll_get_closed(pyEpoll_Object *self)
+pyepoll_get_closed(pyEpoll_Object *self, void *Py_UNUSED(ignored))
{
if (self->epfd < 0)
Py_RETURN_TRUE;
@@ -2091,7 +2091,7 @@ Close the kqueue control file descriptor. Further operations on the kqueue\n\
object will raise an exception.");
static PyObject*
-kqueue_queue_get_closed(kqueue_queue_Object *self)
+kqueue_queue_get_closed(kqueue_queue_Object *self, void *Py_UNUSED(ignored))
{
if (self->kqfd < 0)
Py_RETURN_TRUE;
diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c
index 11242d739138..d2593b12d602 100644
--- a/Modules/xxsubtype.c
+++ b/Modules/xxsubtype.c
@@ -89,7 +89,7 @@ spamlist_init(spamlistobject *self, PyObject *args, PyObject *kwds)
}
static PyObject *
-spamlist_state_get(spamlistobject *self)
+spamlist_state_get(spamlistobject *self, void *Py_UNUSED(ignored))
{
return PyLong_FromLong(self->state);
}
diff --git a/Objects/descrobject.c b/Objects/descrobject.c
index 9020ccd32547..9d258cf111d1 100644
--- a/Objects/descrobject.c
+++ b/Objects/descrobject.c
@@ -378,7 +378,7 @@ calculate_qualname(PyDescrObject *descr)
}
static PyObject *
-descr_get_qualname(PyDescrObject *descr)
+descr_get_qualname(PyDescrObject *descr, void *Py_UNUSED(ignored))
{
if (descr->d_qualname == NULL)
descr->d_qualname = calculate_qualname(descr);
@@ -1118,7 +1118,7 @@ static PyMemberDef wrapper_members[] = {
};
static PyObject *
-wrapper_objclass(wrapperobject *wp)
+wrapper_objclass(wrapperobject *wp, void *Py_UNUSED(ignored))
{
PyObject *c = (PyObject *)PyDescr_TYPE(wp->descr);
@@ -1127,7 +1127,7 @@ wrapper_objclass(wrapperobject *wp)
}
static PyObject *
-wrapper_name(wrapperobject *wp)
+wrapper_name(wrapperobject *wp, void *Py_UNUSED(ignored))
{
const char *s = wp->descr->d_base->name;
@@ -1135,21 +1135,21 @@ wrapper_name(wrapperobject *wp)
}
static PyObject *
-wrapper_doc(wrapperobject *wp, void *closure)
+wrapper_doc(wrapperobject *wp, void *Py_UNUSED(ignored))
{
return _PyType_GetDocFromInternalDoc(wp->descr->d_base->name, wp->descr->d_base->doc);
}
static PyObject *
-wrapper_text_signature(wrapperobject *wp, void *closure)
+wrapper_text_signature(wrapperobject *wp, void *Py_UNUSED(ignored))
{
return _PyType_GetTextSignatureFromInternalDoc(wp->descr->d_base->name, wp->descr->d_base->doc);
}
static PyObject *
-wrapper_qualname(wrapperobject *wp)
+wrapper_qualname(wrapperobject *wp, void *Py_UNUSED(ignored))
{
- return descr_get_qualname((PyDescrObject *)wp->descr);
+ return descr_get_qualname((PyDescrObject *)wp->descr, NULL);
}
static PyGetSetDef wrapper_getsets[] = {
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 3bec50ea69e4..6f3b986d3247 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -181,7 +181,7 @@ static PyMethodDef BaseException_methods[] = {
};
static PyObject *
-BaseException_get_args(PyBaseExceptionObject *self)
+BaseException_get_args(PyBaseExceptionObject *self, void *Py_UNUSED(ignored))
{
if (self->args == NULL) {
Py_INCREF(Py_None);
@@ -192,7 +192,7 @@ BaseException_get_args(PyBaseExceptionObject *self)
}
static int
-BaseException_set_args(PyBaseExceptionObject *self, PyObject *val)
+BaseException_set_args(PyBaseExceptionObject *self, PyObject *val, void *Py_UNUSED(ignored))
{
PyObject *seq;
if (val == NULL) {
@@ -207,7 +207,7 @@ BaseException_set_args(PyBaseExceptionObject *self, PyObject *val)
}
static PyObject *
-BaseException_get_tb(PyBaseExceptionObject *self)
+BaseException_get_tb(PyBaseExceptionObject *self, void *Py_UNUSED(ignored))
{
if (self->traceback == NULL) {
Py_INCREF(Py_None);
@@ -218,7 +218,7 @@ BaseException_get_tb(PyBaseExceptionObject *self)
}
static int
-BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb)
+BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb, void *Py_UNUSED(ignored))
{
if (tb == NULL) {
PyErr_SetString(PyExc_TypeError, "__traceback__ may not be deleted");
@@ -236,7 +236,8 @@ BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb)
}
static PyObject *
-BaseException_get_context(PyObject *self) {
+BaseException_get_context(PyObject *self, void *Py_UNUSED(ignored))
+{
PyObject *res = PyException_GetContext(self);
if (res)
return res; /* new reference already returned above */
@@ -244,7 +245,8 @@ BaseException_get_context(PyObject *self) {
}
static int
-BaseException_set_context(PyObject *self, PyObject *arg) {
+BaseException_set_context(PyObject *self, PyObject *arg, void *Py_UNUSED(ignored))
+{
if (arg == NULL) {
PyErr_SetString(PyExc_TypeError, "__context__ may not be deleted");
return -1;
@@ -263,7 +265,8 @@ BaseException_set_context(PyObject *self, PyObject *arg) {
}
static PyObject *
-BaseException_get_cause(PyObject *self) {
+BaseException_get_cause(PyObject *self, void *Py_UNUSED(ignored))
+{
PyObject *res = PyException_GetCause(self);
if (res)
return res; /* new reference already returned above */
@@ -271,7 +274,8 @@ BaseException_get_cause(PyObject *self) {
}
static int
-BaseException_set_cause(PyObject *self, PyObject *arg) {
+BaseException_set_cause(PyObject *self, PyObject *arg, void *Py_UNUSED(ignored))
+{
if (arg == NULL) {
PyErr_SetString(PyExc_TypeError, "__cause__ may not be deleted");
return -1;
@@ -294,10 +298,10 @@ static PyGetSetDef BaseException_getset[] = {
{"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict},
{"args", (getter)BaseException_get_args, (setter)BaseException_set_args},
{"__traceback__", (getter)BaseException_get_tb, (setter)BaseException_set_tb},
- {"__context__", (getter)BaseException_get_context,
- (setter)BaseException_set_context, PyDoc_STR("exception context")},
- {"__cause__", (getter)BaseException_get_cause,
- (setter)BaseException_set_cause, PyDoc_STR("exception cause")},
+ {"__context__", BaseException_get_context,
+ BaseException_set_context, PyDoc_STR("exception context")},
+ {"__cause__", BaseException_get_cause,
+ BaseException_set_cause, PyDoc_STR("exception cause")},
{NULL},
};
@@ -312,7 +316,7 @@ PyException_GetTraceback(PyObject *self) {
int
PyException_SetTraceback(PyObject *self, PyObject *tb) {
- return BaseException_set_tb((PyBaseExceptionObject *)self, tb);
+ return BaseException_set_tb((PyBaseExceptionObject *)self, tb, NULL);
}
PyObject *
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index b7a16ad05966..535ec46ee027 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -61,7 +61,7 @@ frame_getlineno(PyFrameObject *f, void *closure)
* that time.
*/
static int
-frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno)
+frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignored))
{
int new_lineno = 0; /* The new value of f_lineno */
long l_new_lineno;
@@ -521,7 +521,7 @@ frame_traverse(PyFrameObject *f, visitproc visit, void *arg)
return 0;
}
-static void
+static int
frame_tp_clear(PyFrameObject *f)
{
PyObject **fastlocals, **p, **oldtop;
@@ -552,6 +552,7 @@ frame_tp_clear(PyFrameObject *f)
for (p = f->f_valuestack; p < oldtop; p++)
Py_CLEAR(*p);
}
+ return 0;
}
static PyObject *
@@ -566,7 +567,7 @@ frame_clear(PyFrameObject *f)
_PyGen_Finalize(f->f_gen);
assert(f->f_gen == NULL);
}
- frame_tp_clear(f);
+ (void)frame_tp_clear(f);
Py_RETURN_NONE;
}
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 6ce0cb43e5e9..e66fda369217 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -240,14 +240,14 @@ static PyMemberDef func_memberlist[] = {
};
static PyObject *
-func_get_code(PyFunctionObject *op)
+func_get_code(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_code);
return op->func_code;
}
static int
-func_set_code(PyFunctionObject *op, PyObject *value)
+func_set_code(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
Py_ssize_t nfree, nclosure;
@@ -275,14 +275,14 @@ func_set_code(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_name(PyFunctionObject *op)
+func_get_name(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_name);
return op->func_name;
}
static int
-func_set_name(PyFunctionObject *op, PyObject *value)
+func_set_name(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del f.func_name or to set it to anything
* other than a string object. */
@@ -297,14 +297,14 @@ func_set_name(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_qualname(PyFunctionObject *op)
+func_get_qualname(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_qualname);
return op->func_qualname;
}
static int
-func_set_qualname(PyFunctionObject *op, PyObject *value)
+func_set_qualname(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del f.__qualname__ or to set it to anything
* other than a string object. */
@@ -319,7 +319,7 @@ func_set_qualname(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_defaults(PyFunctionObject *op)
+func_get_defaults(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_defaults == NULL) {
Py_INCREF(Py_None);
@@ -330,7 +330,7 @@ func_get_defaults(PyFunctionObject *op)
}
static int
-func_set_defaults(PyFunctionObject *op, PyObject *value)
+func_set_defaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Legal to del f.func_defaults.
* Can only set func_defaults to NULL or a tuple. */
@@ -347,7 +347,7 @@ func_set_defaults(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_kwdefaults(PyFunctionObject *op)
+func_get_kwdefaults(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_kwdefaults == NULL) {
Py_INCREF(Py_None);
@@ -358,7 +358,7 @@ func_get_kwdefaults(PyFunctionObject *op)
}
static int
-func_set_kwdefaults(PyFunctionObject *op, PyObject *value)
+func_set_kwdefaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == Py_None)
value = NULL;
@@ -375,7 +375,7 @@ func_set_kwdefaults(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_annotations(PyFunctionObject *op)
+func_get_annotations(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_annotations == NULL) {
op->func_annotations = PyDict_New();
@@ -387,7 +387,7 @@ func_get_annotations(PyFunctionObject *op)
}
static int
-func_set_annotations(PyFunctionObject *op, PyObject *value)
+func_set_annotations(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == Py_None)
value = NULL;
diff --git a/Objects/genobject.c b/Objects/genobject.c
index f226dbebaf4a..d1136301f018 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -665,14 +665,14 @@ gen_repr(PyGenObject *gen)
}
static PyObject *
-gen_get_name(PyGenObject *op)
+gen_get_name(PyGenObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->gi_name);
return op->gi_name;
}
static int
-gen_set_name(PyGenObject *op, PyObject *value)
+gen_set_name(PyGenObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del gen.gi_name or to set it to anything
* other than a string object. */
@@ -687,14 +687,14 @@ gen_set_name(PyGenObject *op, PyObject *value)
}
static PyObject *
-gen_get_qualname(PyGenObject *op)
+gen_get_qualname(PyGenObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->gi_qualname);
return op->gi_qualname;
}
static int
-gen_set_qualname(PyGenObject *op, PyObject *value)
+gen_set_qualname(PyGenObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del gen.__qualname__ or to set it to anything
* other than a string object. */
@@ -709,7 +709,7 @@ gen_set_qualname(PyGenObject *op, PyObject *value)
}
static PyObject *
-gen_getyieldfrom(PyGenObject *gen)
+gen_getyieldfrom(PyGenObject *gen, void *Py_UNUSED(ignored))
{
PyObject *yf = _PyGen_yf(gen);
if (yf == NULL)
@@ -944,7 +944,7 @@ coro_await(PyCoroObject *coro)
}
static PyObject *
-coro_get_cr_await(PyCoroObject *coro)
+coro_get_cr_await(PyCoroObject *coro, void *Py_UNUSED(ignored))
{
PyObject *yf = _PyGen_yf((PyGenObject *) coro);
if (yf == NULL)
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index e1ac7281783f..30e00554794e 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -2903,7 +2903,7 @@ _IntTupleFromSsizet(int len, Py_ssize_t *vals)
}
static PyObject *
-memory_obj_get(PyMemoryViewObject *self)
+memory_obj_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
Py_buffer *view = &self->view;
@@ -2916,56 +2916,56 @@ memory_obj_get(PyMemoryViewObject *self)
}
static PyObject *
-memory_nbytes_get(PyMemoryViewObject *self)
+memory_nbytes_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromSsize_t(self->view.len);
}
static PyObject *
-memory_format_get(PyMemoryViewObject *self)
+memory_format_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyUnicode_FromString(self->view.format);
}
static PyObject *
-memory_itemsize_get(PyMemoryViewObject *self)
+memory_itemsize_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromSsize_t(self->view.itemsize);
}
static PyObject *
-memory_shape_get(PyMemoryViewObject *self)
+memory_shape_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.shape);
}
static PyObject *
-memory_strides_get(PyMemoryViewObject *self)
+memory_strides_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.strides);
}
static PyObject *
-memory_suboffsets_get(PyMemoryViewObject *self)
+memory_suboffsets_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.suboffsets);
}
static PyObject *
-memory_readonly_get(PyMemoryViewObject *self)
+memory_readonly_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyBool_FromLong(self->view.readonly);
}
static PyObject *
-memory_ndim_get(PyMemoryViewObject *self)
+memory_ndim_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromLong(self->view.ndim);
diff --git a/Python/traceback.c b/Python/traceback.c
index 145d028ba353..f489a4727643 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -65,11 +65,12 @@ tb_traverse(PyTracebackObject *tb, visitproc visit, void *arg)
return 0;
}
-static void
+static int
tb_clear(PyTracebackObject *tb)
{
Py_CLEAR(tb->tb_next);
Py_CLEAR(tb->tb_frame);
+ return 0;
}
PyTypeObject PyTraceBack_Type = {
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
bpo-33012: Fix signatures of METH_NOARGS functions. (GH-10736) (GH-10748)
by Serhiy Storchaka 27 Nov '18
by Serhiy Storchaka 27 Nov '18
27 Nov '18
https://github.com/python/cpython/commit/ad8ac54aa3d2323bdb5feb5e858a922840…
commit: ad8ac54aa3d2323bdb5feb5e858a922840358187
branch: 3.7
author: Serhiy Storchaka <storchaka(a)gmail.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T20:27:47+02:00
summary:
bpo-33012: Fix signatures of METH_NOARGS functions. (GH-10736) (GH-10748)
(cherry picked from commit 81524022d0c0df7a41f9b2b2df41e2ebe140e610)
files:
M Modules/_collectionsmodule.c
M Modules/_cursesmodule.c
M Modules/_testcapimodule.c
M Objects/odictobject.c
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 9b875e95e1b5..decd6ae3e553 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1344,7 +1344,7 @@ deque_traverse(dequeobject *deque, visitproc visit, void *arg)
}
static PyObject *
-deque_reduce(dequeobject *deque)
+deque_reduce(dequeobject *deque, PyObject *Py_UNUSED(ignored))
{
PyObject *dict, *it;
_Py_IDENTIFIER(__dict__);
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 8140c8aeed5f..931c5ceed062 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -414,27 +414,27 @@ PyTypeObject PyCursesWindow_Type;
PARSESTR - format string for argument parsing
*/
-#define Window_NoArgNoReturnFunction(X) \
- static PyObject *PyCursesWindow_ ## X \
- (PyCursesWindowObject *self, PyObject *args) \
+#define Window_NoArgNoReturnFunction(X) \
+ static PyObject *PyCursesWindow_ ## X \
+ (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored)) \
{ return PyCursesCheckERR(X(self->win), # X); }
#define Window_NoArgTrueFalseFunction(X) \
static PyObject * PyCursesWindow_ ## X \
- (PyCursesWindowObject *self) \
+ (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored)) \
{ \
if (X (self->win) == FALSE) { Py_RETURN_FALSE; } \
else { Py_RETURN_TRUE; } }
#define Window_NoArgNoReturnVoidFunction(X) \
static PyObject * PyCursesWindow_ ## X \
- (PyCursesWindowObject *self) \
+ (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored)) \
{ \
X(self->win); Py_RETURN_NONE; }
#define Window_NoArg2TupleReturnFunction(X, TYPE, ERGSTR) \
static PyObject * PyCursesWindow_ ## X \
- (PyCursesWindowObject *self) \
+ (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored)) \
{ \
TYPE arg1, arg2; \
X(self->win,arg1,arg2); return Py_BuildValue(ERGSTR, arg1, arg2); }
diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c
index eafe3477e447..eb050ff112e8 100644
--- a/Modules/_testcapimodule.c
+++ b/Modules/_testcapimodule.c
@@ -943,7 +943,7 @@ test_buildvalue_N_error(const char *fmt)
}
static PyObject *
-test_buildvalue_N(PyObject *self, PyObject *noargs)
+test_buildvalue_N(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *arg, *res;
@@ -2453,7 +2453,7 @@ pending_threadfunc(PyObject *self, PyObject *arg)
/* Some tests of PyUnicode_FromFormat(). This needs more tests. */
static PyObject *
-test_string_from_format(PyObject *self, PyObject *args)
+test_string_from_format(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *result;
char *msg;
@@ -2593,7 +2593,7 @@ typedef struct {
} known_capsule;
static PyObject *
-test_capsule(PyObject *self, PyObject *args)
+test_capsule(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyObject *object;
const char *error = NULL;
@@ -2964,7 +2964,7 @@ make_memoryview_from_NULL_pointer(PyObject *self)
}
static PyObject *
-test_from_contiguous(PyObject* self, PyObject *noargs)
+test_from_contiguous(PyObject* self, PyObject *Py_UNUSED(ignored))
{
int data[9] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
int init[5] = {0, 1, 2, 3, 4};
@@ -3017,7 +3017,7 @@ test_from_contiguous(PyObject* self, PyObject *noargs)
extern PyTypeObject _PyBytesIOBuffer_Type;
static PyObject *
-test_pep3118_obsolete_write_locks(PyObject* self, PyObject *noargs)
+test_pep3118_obsolete_write_locks(PyObject* self, PyObject *Py_UNUSED(ignored))
{
PyTypeObject *type = &_PyBytesIOBuffer_Type;
PyObject *b;
diff --git a/Objects/odictobject.c b/Objects/odictobject.c
index 676ed99078ce..7487bd960764 100644
--- a/Objects/odictobject.c
+++ b/Objects/odictobject.c
@@ -1803,7 +1803,7 @@ odictiter_iternext(odictiterobject *di)
PyDoc_STRVAR(reduce_doc, "Return state information for pickling");
static PyObject *
-odictiter_reduce(odictiterobject *di)
+odictiter_reduce(odictiterobject *di, PyObject *Py_UNUSED(ignored))
{
/* copy the iterator state */
odictiterobject tmp = *di;
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
bpo-33029: Fix signatures of getter and setter functions. (GH-10746)
by Miss Islington (bot) 27 Nov '18
by Miss Islington (bot) 27 Nov '18
27 Nov '18
https://github.com/python/cpython/commit/5ceb7018dc63fab96f81d05e62bbe704e9…
commit: 5ceb7018dc63fab96f81d05e62bbe704e9f10cb9
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T09:58:07-08:00
summary:
bpo-33029: Fix signatures of getter and setter functions. (GH-10746)
Fix also return type for few other functions (clear, releasebuffer).
(cherry picked from commit d4f9cf5545d6d8844e0726552ef2e366f5cc3abd)
Co-authored-by: Serhiy Storchaka <storchaka(a)gmail.com>
files:
M Modules/_asynciomodule.c
M Modules/_collectionsmodule.c
M Modules/_csv.c
M Modules/_ctypes/_ctypes.c
M Modules/_cursesmodule.c
M Modules/_io/bytesio.c
M Modules/_pickle.c
M Modules/_sqlite/connection.c
M Modules/_sqlite/row.c
M Modules/_sre.c
M Modules/_testbuffer.c
M Modules/_tkinter.c
M Modules/cjkcodecs/multibytecodec.c
M Modules/mmapmodule.c
M Modules/selectmodule.c
M Modules/xxsubtype.c
M Objects/cellobject.c
M Objects/descrobject.c
M Objects/exceptions.c
M Objects/frameobject.c
M Objects/funcobject.c
M Objects/genobject.c
M Objects/memoryobject.c
M Python/context.c
M Python/traceback.c
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index 809879ac77d3..5816a6748f66 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -1094,7 +1094,7 @@ _asyncio_Future_get_loop_impl(FutureObj *self)
}
static PyObject *
-FutureObj_get_blocking(FutureObj *fut)
+FutureObj_get_blocking(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (future_is_alive(fut) && fut->fut_blocking) {
Py_RETURN_TRUE;
@@ -1105,7 +1105,7 @@ FutureObj_get_blocking(FutureObj *fut)
}
static int
-FutureObj_set_blocking(FutureObj *fut, PyObject *val)
+FutureObj_set_blocking(FutureObj *fut, PyObject *val, void *Py_UNUSED(ignored))
{
if (future_ensure_alive(fut)) {
return -1;
@@ -1120,7 +1120,7 @@ FutureObj_set_blocking(FutureObj *fut, PyObject *val)
}
static PyObject *
-FutureObj_get_log_traceback(FutureObj *fut)
+FutureObj_get_log_traceback(FutureObj *fut, void *Py_UNUSED(ignored))
{
ENSURE_FUTURE_ALIVE(fut)
if (fut->fut_log_tb) {
@@ -1132,7 +1132,7 @@ FutureObj_get_log_traceback(FutureObj *fut)
}
static int
-FutureObj_set_log_traceback(FutureObj *fut, PyObject *val)
+FutureObj_set_log_traceback(FutureObj *fut, PyObject *val, void *Py_UNUSED(ignored))
{
int is_true = PyObject_IsTrue(val);
if (is_true < 0) {
@@ -1148,7 +1148,7 @@ FutureObj_set_log_traceback(FutureObj *fut, PyObject *val)
}
static PyObject *
-FutureObj_get_loop(FutureObj *fut)
+FutureObj_get_loop(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (!future_is_alive(fut)) {
Py_RETURN_NONE;
@@ -1158,7 +1158,7 @@ FutureObj_get_loop(FutureObj *fut)
}
static PyObject *
-FutureObj_get_callbacks(FutureObj *fut)
+FutureObj_get_callbacks(FutureObj *fut, void *Py_UNUSED(ignored))
{
Py_ssize_t i;
@@ -1210,7 +1210,7 @@ FutureObj_get_callbacks(FutureObj *fut)
}
static PyObject *
-FutureObj_get_result(FutureObj *fut)
+FutureObj_get_result(FutureObj *fut, void *Py_UNUSED(ignored))
{
ENSURE_FUTURE_ALIVE(fut)
if (fut->fut_result == NULL) {
@@ -1221,7 +1221,7 @@ FutureObj_get_result(FutureObj *fut)
}
static PyObject *
-FutureObj_get_exception(FutureObj *fut)
+FutureObj_get_exception(FutureObj *fut, void *Py_UNUSED(ignored))
{
ENSURE_FUTURE_ALIVE(fut)
if (fut->fut_exception == NULL) {
@@ -1232,7 +1232,7 @@ FutureObj_get_exception(FutureObj *fut)
}
static PyObject *
-FutureObj_get_source_traceback(FutureObj *fut)
+FutureObj_get_source_traceback(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (!future_is_alive(fut) || fut->fut_source_tb == NULL) {
Py_RETURN_NONE;
@@ -1242,7 +1242,7 @@ FutureObj_get_source_traceback(FutureObj *fut)
}
static PyObject *
-FutureObj_get_state(FutureObj *fut)
+FutureObj_get_state(FutureObj *fut, void *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(PENDING);
_Py_IDENTIFIER(CANCELLED);
@@ -1723,7 +1723,7 @@ TaskStepMethWrapper_traverse(TaskStepMethWrapper *o,
}
static PyObject *
-TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o)
+TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o, void *Py_UNUSED(ignored))
{
if (o->sw_task) {
Py_INCREF(o->sw_task);
@@ -1995,7 +1995,7 @@ TaskObj_traverse(TaskObj *task, visitproc visit, void *arg)
}
static PyObject *
-TaskObj_get_log_destroy_pending(TaskObj *task)
+TaskObj_get_log_destroy_pending(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_log_destroy_pending) {
Py_RETURN_TRUE;
@@ -2006,7 +2006,7 @@ TaskObj_get_log_destroy_pending(TaskObj *task)
}
static int
-TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val)
+TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val, void *Py_UNUSED(ignored))
{
int is_true = PyObject_IsTrue(val);
if (is_true < 0) {
@@ -2017,7 +2017,7 @@ TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val)
}
static PyObject *
-TaskObj_get_must_cancel(TaskObj *task)
+TaskObj_get_must_cancel(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_must_cancel) {
Py_RETURN_TRUE;
@@ -2028,7 +2028,7 @@ TaskObj_get_must_cancel(TaskObj *task)
}
static PyObject *
-TaskObj_get_coro(TaskObj *task)
+TaskObj_get_coro(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_coro) {
Py_INCREF(task->task_coro);
@@ -2039,7 +2039,7 @@ TaskObj_get_coro(TaskObj *task)
}
static PyObject *
-TaskObj_get_fut_waiter(TaskObj *task)
+TaskObj_get_fut_waiter(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_fut_waiter) {
Py_INCREF(task->task_fut_waiter);
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index cfd8905edeb3..9b875e95e1b5 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1542,7 +1542,7 @@ deque_bool(dequeobject *deque)
}
static PyObject *
-deque_get_maxlen(dequeobject *deque)
+deque_get_maxlen(dequeobject *deque, void *Py_UNUSED(ignored))
{
if (deque->maxlen < 0)
Py_RETURN_NONE;
diff --git a/Modules/_csv.c b/Modules/_csv.c
index 180f3be5aa47..dd0b3c8107eb 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -159,31 +159,31 @@ get_nullchar_as_None(Py_UCS4 c)
}
static PyObject *
-Dialect_get_lineterminator(DialectObj *self)
+Dialect_get_lineterminator(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_string(self->lineterminator);
}
static PyObject *
-Dialect_get_delimiter(DialectObj *self)
+Dialect_get_delimiter(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->delimiter);
}
static PyObject *
-Dialect_get_escapechar(DialectObj *self)
+Dialect_get_escapechar(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->escapechar);
}
static PyObject *
-Dialect_get_quotechar(DialectObj *self)
+Dialect_get_quotechar(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->quotechar);
}
static PyObject *
-Dialect_get_quoting(DialectObj *self)
+Dialect_get_quoting(DialectObj *self, void *Py_UNUSED(ignored))
{
return PyLong_FromLong(self->quoting);
}
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 3ae6348fef43..3bb96774b0c8 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -1161,7 +1161,7 @@ PyTypeObject PyCPointerType_Type = {
*/
static int
-CharArray_set_raw(CDataObject *self, PyObject *value)
+CharArray_set_raw(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
char *ptr;
Py_ssize_t size;
@@ -1187,13 +1187,13 @@ CharArray_set_raw(CDataObject *self, PyObject *value)
}
static PyObject *
-CharArray_get_raw(CDataObject *self)
+CharArray_get_raw(CDataObject *self, void *Py_UNUSED(ignored))
{
return PyBytes_FromStringAndSize(self->b_ptr, self->b_size);
}
static PyObject *
-CharArray_get_value(CDataObject *self)
+CharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
Py_ssize_t i;
char *ptr = self->b_ptr;
@@ -1204,7 +1204,7 @@ CharArray_get_value(CDataObject *self)
}
static int
-CharArray_set_value(CDataObject *self, PyObject *value)
+CharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
char *ptr;
Py_ssize_t size;
@@ -1249,7 +1249,7 @@ static PyGetSetDef CharArray_getsets[] = {
#ifdef CTYPES_UNICODE
static PyObject *
-WCharArray_get_value(CDataObject *self)
+WCharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
Py_ssize_t i;
wchar_t *ptr = (wchar_t *)self->b_ptr;
@@ -1260,7 +1260,7 @@ WCharArray_get_value(CDataObject *self)
}
static int
-WCharArray_set_value(CDataObject *self, PyObject *value)
+WCharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
Py_ssize_t result = 0;
Py_UNICODE *wstr;
@@ -3045,7 +3045,7 @@ GenericPyCData_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
*/
static int
-PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
if (ob && !PyCallable_Check(ob)) {
PyErr_SetString(PyExc_TypeError,
@@ -3058,7 +3058,7 @@ PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self)
+PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
if (self->errcheck) {
Py_INCREF(self->errcheck);
@@ -3068,7 +3068,7 @@ PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self)
}
static int
-PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
if (ob == NULL) {
Py_CLEAR(self->restype);
@@ -3089,7 +3089,7 @@ PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_restype(PyCFuncPtrObject *self)
+PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
if (self->restype) {
@@ -3107,7 +3107,7 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self)
}
static int
-PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
PyObject *converters;
@@ -3126,7 +3126,7 @@ PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_argtypes(PyCFuncPtrObject *self)
+PyCFuncPtr_get_argtypes(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
if (self->argtypes) {
@@ -4670,7 +4670,7 @@ PyCArrayType_from_ctype(PyObject *itemtype, Py_ssize_t length)
*/
static int
-Simple_set_value(CDataObject *self, PyObject *value)
+Simple_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
PyObject *result;
StgDictObject *dict = PyObject_stgdict((PyObject *)self);
@@ -4697,12 +4697,12 @@ Simple_init(CDataObject *self, PyObject *args, PyObject *kw)
if (!PyArg_UnpackTuple(args, "__init__", 0, 1, &value))
return -1;
if (value)
- return Simple_set_value(self, value);
+ return Simple_set_value(self, value, NULL);
return 0;
}
static PyObject *
-Simple_get_value(CDataObject *self)
+Simple_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
dict = PyObject_stgdict((PyObject *)self);
@@ -4725,7 +4725,7 @@ Simple_from_outparm(PyObject *self, PyObject *args)
return self;
}
/* call stgdict->getfunc */
- return Simple_get_value((CDataObject *)self);
+ return Simple_get_value((CDataObject *)self, NULL);
}
static PyMethodDef Simple_methods[] = {
@@ -4762,7 +4762,7 @@ Simple_repr(CDataObject *self)
Py_TYPE(self)->tp_name, self);
}
- val = Simple_get_value(self);
+ val = Simple_get_value(self, NULL);
if (val == NULL)
return NULL;
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 7936aef0cc90..8140c8aeed5f 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -1960,7 +1960,7 @@ PyCursesWindow_get_encoding(PyCursesWindowObject *self, void *closure)
}
static int
-PyCursesWindow_set_encoding(PyCursesWindowObject *self, PyObject *value)
+PyCursesWindow_set_encoding(PyCursesWindowObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
PyObject *ascii;
char *encoding;
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
index ba33f8c50d6a..e4d637cc3aea 100644
--- a/Modules/_io/bytesio.c
+++ b/Modules/_io/bytesio.c
@@ -201,7 +201,7 @@ write_bytes(bytesio *self, const char *bytes, Py_ssize_t len)
}
static PyObject *
-bytesio_get_closed(bytesio *self)
+bytesio_get_closed(bytesio *self, void *Py_UNUSED(ignored))
{
if (self->buf == NULL) {
Py_RETURN_TRUE;
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 03f575e4621c..a1a90bd95cae 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -4563,13 +4563,13 @@ PicklerMemoProxy_New(PicklerObject *pickler)
/*****************************************************************************/
static PyObject *
-Pickler_get_memo(PicklerObject *self)
+Pickler_get_memo(PicklerObject *self, void *Py_UNUSED(ignored))
{
return PicklerMemoProxy_New(self);
}
static int
-Pickler_set_memo(PicklerObject *self, PyObject *obj)
+Pickler_set_memo(PicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
{
PyMemoTable *new_memo = NULL;
@@ -4631,7 +4631,7 @@ Pickler_set_memo(PicklerObject *self, PyObject *obj)
}
static PyObject *
-Pickler_get_persid(PicklerObject *self)
+Pickler_get_persid(PicklerObject *self, void *Py_UNUSED(ignored))
{
if (self->pers_func == NULL) {
PyErr_SetString(PyExc_AttributeError, "persistent_id");
@@ -4641,7 +4641,7 @@ Pickler_get_persid(PicklerObject *self)
}
static int
-Pickler_set_persid(PicklerObject *self, PyObject *value)
+Pickler_set_persid(PicklerObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == NULL) {
PyErr_SetString(PyExc_TypeError,
@@ -6999,13 +6999,13 @@ UnpicklerMemoProxy_New(UnpicklerObject *unpickler)
static PyObject *
-Unpickler_get_memo(UnpicklerObject *self)
+Unpickler_get_memo(UnpicklerObject *self, void *Py_UNUSED(ignored))
{
return UnpicklerMemoProxy_New(self);
}
static int
-Unpickler_set_memo(UnpicklerObject *self, PyObject *obj)
+Unpickler_set_memo(UnpicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
{
PyObject **new_memo;
size_t new_memo_size = 0;
@@ -7082,7 +7082,7 @@ Unpickler_set_memo(UnpicklerObject *self, PyObject *obj)
}
static PyObject *
-Unpickler_get_persload(UnpicklerObject *self)
+Unpickler_get_persload(UnpicklerObject *self, void *Py_UNUSED(ignored))
{
if (self->pers_func == NULL) {
PyErr_SetString(PyExc_AttributeError, "persistent_load");
@@ -7092,7 +7092,7 @@ Unpickler_get_persload(UnpicklerObject *self)
}
static int
-Unpickler_set_persload(UnpicklerObject *self, PyObject *value)
+Unpickler_set_persload(UnpicklerObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == NULL) {
PyErr_SetString(PyExc_TypeError,
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 65f173c8c8af..3d14865315eb 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -55,7 +55,7 @@ static const char * const begin_statements[] = {
NULL
};
-static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level);
+static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level, void *Py_UNUSED(ignored));
static void _pysqlite_drop_unused_cursor_references(pysqlite_Connection* self);
@@ -147,7 +147,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
Py_INCREF(isolation_level);
}
Py_CLEAR(self->isolation_level);
- if (pysqlite_connection_set_isolation_level(self, isolation_level) < 0) {
+ if (pysqlite_connection_set_isolation_level(self, isolation_level, NULL) < 0) {
Py_DECREF(isolation_level);
return -1;
}
@@ -1139,7 +1139,8 @@ static PyObject* pysqlite_connection_get_in_transaction(pysqlite_Connection* sel
Py_RETURN_FALSE;
}
-static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level)
+static int
+pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level, void *Py_UNUSED(ignored))
{
if (isolation_level == Py_None) {
PyObject *res = pysqlite_connection_commit(self, NULL);
diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c
index ec2c788ae7c0..122bee05f570 100644
--- a/Modules/_sqlite/row.c
+++ b/Modules/_sqlite/row.c
@@ -150,7 +150,8 @@ PyObject* pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx)
}
}
-Py_ssize_t pysqlite_row_length(pysqlite_Row* self, PyObject* args, PyObject* kwargs)
+static Py_ssize_t
+pysqlite_row_length(pysqlite_Row* self)
{
return PyTuple_GET_SIZE(self->data);
}
diff --git a/Modules/_sre.c b/Modules/_sre.c
index b6be6f6ffa60..d2ea62d55a81 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -1312,7 +1312,7 @@ PyDoc_STRVAR(pattern_doc, "Compiled regular expression object.");
/* PatternObject's 'groupindex' method. */
static PyObject *
-pattern_groupindex(PatternObject *self)
+pattern_groupindex(PatternObject *self, void *Py_UNUSED(ignored))
{
if (self->groupindex == NULL)
return PyDict_New();
@@ -2279,7 +2279,7 @@ PyDoc_STRVAR(match_group_doc,
For 0 returns the entire match.");
static PyObject *
-match_lastindex_get(MatchObject *self)
+match_lastindex_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->lastindex >= 0)
return PyLong_FromSsize_t(self->lastindex);
@@ -2287,7 +2287,7 @@ match_lastindex_get(MatchObject *self)
}
static PyObject *
-match_lastgroup_get(MatchObject *self)
+match_lastgroup_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->pattern->indexgroup &&
self->lastindex >= 0 &&
@@ -2302,7 +2302,7 @@ match_lastgroup_get(MatchObject *self)
}
static PyObject *
-match_regs_get(MatchObject *self)
+match_regs_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->regs) {
Py_INCREF(self->regs);
diff --git a/Modules/_testbuffer.c b/Modules/_testbuffer.c
index 669794df012c..a16b96db048a 100644
--- a/Modules/_testbuffer.c
+++ b/Modules/_testbuffer.c
@@ -1531,7 +1531,7 @@ ndarray_getbuf(NDArrayObject *self, Py_buffer *view, int flags)
return 0;
}
-static int
+static void
ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
{
if (!ND_IS_CONSUMER(self)) {
@@ -1539,8 +1539,6 @@ ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
if (--ndbuf->exports == 0 && ndbuf != self->head)
ndbuf_delete(self, ndbuf);
}
-
- return 0;
}
static PyBufferProcs ndarray_as_buffer = {
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index fa268599876a..a96924c9c6e7 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -842,7 +842,7 @@ PyTclObject_string(PyTclObject *self, void *ignored)
}
static PyObject *
-PyTclObject_str(PyTclObject *self, void *ignored)
+PyTclObject_str(PyTclObject *self)
{
if (self->string) {
Py_INCREF(self->string);
@@ -855,7 +855,7 @@ PyTclObject_str(PyTclObject *self, void *ignored)
static PyObject *
PyTclObject_repr(PyTclObject *self)
{
- PyObject *repr, *str = PyTclObject_str(self, NULL);
+ PyObject *repr, *str = PyTclObject_str(self);
if (str == NULL)
return NULL;
repr = PyUnicode_FromFormat("<%s object: %R>",
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index 22172b043bcd..4d0aaf3a336f 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -108,7 +108,7 @@ call_error_callback(PyObject *errors, PyObject *exc)
}
static PyObject *
-codecctx_errors_get(MultibyteStatefulCodecContext *self)
+codecctx_errors_get(MultibyteStatefulCodecContext *self, void *Py_UNUSED(ignored))
{
const char *errors;
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index ba42f7380c09..f957e2c45ef5 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -653,7 +653,7 @@ mmap_move_method(mmap_object *self, PyObject *args)
}
static PyObject *
-mmap_closed_get(mmap_object *self)
+mmap_closed_get(mmap_object *self, void *Py_UNUSED(ignored))
{
#ifdef MS_WINDOWS
return PyBool_FromLong(self->map_handle == NULL ? 1 : 0);
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index d6b8fc1353bc..63266af4dce9 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -1023,7 +1023,7 @@ Close the devpoll file descriptor. Further operations on the devpoll\n\
object will raise an exception.");
static PyObject*
-devpoll_get_closed(devpollObject *self)
+devpoll_get_closed(devpollObject *self, void *Py_UNUSED(ignored))
{
if (self->fd_devpoll < 0)
Py_RETURN_TRUE;
@@ -1346,7 +1346,7 @@ Close the epoll control file descriptor. Further operations on the epoll\n\
object will raise an exception.");
static PyObject*
-pyepoll_get_closed(pyEpoll_Object *self)
+pyepoll_get_closed(pyEpoll_Object *self, void *Py_UNUSED(ignored))
{
if (self->epfd < 0)
Py_RETURN_TRUE;
@@ -2072,7 +2072,7 @@ Close the kqueue control file descriptor. Further operations on the kqueue\n\
object will raise an exception.");
static PyObject*
-kqueue_queue_get_closed(kqueue_queue_Object *self)
+kqueue_queue_get_closed(kqueue_queue_Object *self, void *Py_UNUSED(ignored))
{
if (self->kqfd < 0)
Py_RETURN_TRUE;
diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c
index 11242d739138..d2593b12d602 100644
--- a/Modules/xxsubtype.c
+++ b/Modules/xxsubtype.c
@@ -89,7 +89,7 @@ spamlist_init(spamlistobject *self, PyObject *args, PyObject *kwds)
}
static PyObject *
-spamlist_state_get(spamlistobject *self)
+spamlist_state_get(spamlistobject *self, void *Py_UNUSED(ignored))
{
return PyLong_FromLong(self->state);
}
diff --git a/Objects/cellobject.c b/Objects/cellobject.c
index 7b05e61ce46f..6f8915ac9200 100644
--- a/Objects/cellobject.c
+++ b/Objects/cellobject.c
@@ -111,7 +111,7 @@ cell_get_contents(PyCellObject *op, void *closure)
}
static int
-cell_set_contents(PyCellObject *op, PyObject *obj)
+cell_set_contents(PyCellObject *op, PyObject *obj, void *Py_UNUSED(ignored))
{
Py_XINCREF(obj);
Py_XSETREF(op->ob_ref, obj);
diff --git a/Objects/descrobject.c b/Objects/descrobject.c
index 601403940299..c6f7e55ea5d1 100644
--- a/Objects/descrobject.c
+++ b/Objects/descrobject.c
@@ -439,7 +439,7 @@ calculate_qualname(PyDescrObject *descr)
}
static PyObject *
-descr_get_qualname(PyDescrObject *descr)
+descr_get_qualname(PyDescrObject *descr, void *Py_UNUSED(ignored))
{
if (descr->d_qualname == NULL)
descr->d_qualname = calculate_qualname(descr);
@@ -1108,7 +1108,7 @@ static PyMemberDef wrapper_members[] = {
};
static PyObject *
-wrapper_objclass(wrapperobject *wp)
+wrapper_objclass(wrapperobject *wp, void *Py_UNUSED(ignored))
{
PyObject *c = (PyObject *)PyDescr_TYPE(wp->descr);
@@ -1117,7 +1117,7 @@ wrapper_objclass(wrapperobject *wp)
}
static PyObject *
-wrapper_name(wrapperobject *wp)
+wrapper_name(wrapperobject *wp, void *Py_UNUSED(ignored))
{
const char *s = wp->descr->d_base->name;
@@ -1125,21 +1125,21 @@ wrapper_name(wrapperobject *wp)
}
static PyObject *
-wrapper_doc(wrapperobject *wp, void *closure)
+wrapper_doc(wrapperobject *wp, void *Py_UNUSED(ignored))
{
return _PyType_GetDocFromInternalDoc(wp->descr->d_base->name, wp->descr->d_base->doc);
}
static PyObject *
-wrapper_text_signature(wrapperobject *wp, void *closure)
+wrapper_text_signature(wrapperobject *wp, void *Py_UNUSED(ignored))
{
return _PyType_GetTextSignatureFromInternalDoc(wp->descr->d_base->name, wp->descr->d_base->doc);
}
static PyObject *
-wrapper_qualname(wrapperobject *wp)
+wrapper_qualname(wrapperobject *wp, void *Py_UNUSED(ignored))
{
- return descr_get_qualname((PyDescrObject *)wp->descr);
+ return descr_get_qualname((PyDescrObject *)wp->descr, NULL);
}
static PyGetSetDef wrapper_getsets[] = {
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 2cce40f88444..03bdf79de324 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -181,7 +181,7 @@ static PyMethodDef BaseException_methods[] = {
};
static PyObject *
-BaseException_get_args(PyBaseExceptionObject *self)
+BaseException_get_args(PyBaseExceptionObject *self, void *Py_UNUSED(ignored))
{
if (self->args == NULL) {
Py_RETURN_NONE;
@@ -191,7 +191,7 @@ BaseException_get_args(PyBaseExceptionObject *self)
}
static int
-BaseException_set_args(PyBaseExceptionObject *self, PyObject *val)
+BaseException_set_args(PyBaseExceptionObject *self, PyObject *val, void *Py_UNUSED(ignored))
{
PyObject *seq;
if (val == NULL) {
@@ -206,7 +206,7 @@ BaseException_set_args(PyBaseExceptionObject *self, PyObject *val)
}
static PyObject *
-BaseException_get_tb(PyBaseExceptionObject *self)
+BaseException_get_tb(PyBaseExceptionObject *self, void *Py_UNUSED(ignored))
{
if (self->traceback == NULL) {
Py_RETURN_NONE;
@@ -216,7 +216,7 @@ BaseException_get_tb(PyBaseExceptionObject *self)
}
static int
-BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb)
+BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb, void *Py_UNUSED(ignored))
{
if (tb == NULL) {
PyErr_SetString(PyExc_TypeError, "__traceback__ may not be deleted");
@@ -234,7 +234,8 @@ BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb)
}
static PyObject *
-BaseException_get_context(PyObject *self) {
+BaseException_get_context(PyObject *self, void *Py_UNUSED(ignored))
+{
PyObject *res = PyException_GetContext(self);
if (res)
return res; /* new reference already returned above */
@@ -242,7 +243,8 @@ BaseException_get_context(PyObject *self) {
}
static int
-BaseException_set_context(PyObject *self, PyObject *arg) {
+BaseException_set_context(PyObject *self, PyObject *arg, void *Py_UNUSED(ignored))
+{
if (arg == NULL) {
PyErr_SetString(PyExc_TypeError, "__context__ may not be deleted");
return -1;
@@ -261,7 +263,8 @@ BaseException_set_context(PyObject *self, PyObject *arg) {
}
static PyObject *
-BaseException_get_cause(PyObject *self) {
+BaseException_get_cause(PyObject *self, void *Py_UNUSED(ignored))
+{
PyObject *res = PyException_GetCause(self);
if (res)
return res; /* new reference already returned above */
@@ -269,7 +272,8 @@ BaseException_get_cause(PyObject *self) {
}
static int
-BaseException_set_cause(PyObject *self, PyObject *arg) {
+BaseException_set_cause(PyObject *self, PyObject *arg, void *Py_UNUSED(ignored))
+{
if (arg == NULL) {
PyErr_SetString(PyExc_TypeError, "__cause__ may not be deleted");
return -1;
@@ -292,10 +296,10 @@ static PyGetSetDef BaseException_getset[] = {
{"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict},
{"args", (getter)BaseException_get_args, (setter)BaseException_set_args},
{"__traceback__", (getter)BaseException_get_tb, (setter)BaseException_set_tb},
- {"__context__", (getter)BaseException_get_context,
- (setter)BaseException_set_context, PyDoc_STR("exception context")},
- {"__cause__", (getter)BaseException_get_cause,
- (setter)BaseException_set_cause, PyDoc_STR("exception cause")},
+ {"__context__", BaseException_get_context,
+ BaseException_set_context, PyDoc_STR("exception context")},
+ {"__cause__", BaseException_get_cause,
+ BaseException_set_cause, PyDoc_STR("exception cause")},
{NULL},
};
@@ -310,7 +314,7 @@ PyException_GetTraceback(PyObject *self) {
int
PyException_SetTraceback(PyObject *self, PyObject *tb) {
- return BaseException_set_tb((PyBaseExceptionObject *)self, tb);
+ return BaseException_set_tb((PyBaseExceptionObject *)self, tb, NULL);
}
PyObject *
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index f518dc485616..4ef10d0eb7bc 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -64,7 +64,7 @@ frame_getlineno(PyFrameObject *f, void *closure)
* that time.
*/
static int
-frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno)
+frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignored))
{
int new_lineno = 0; /* The new value of f_lineno */
long l_new_lineno;
@@ -519,7 +519,7 @@ frame_traverse(PyFrameObject *f, visitproc visit, void *arg)
return 0;
}
-static void
+static int
frame_tp_clear(PyFrameObject *f)
{
PyObject **fastlocals, **p, **oldtop;
@@ -547,6 +547,7 @@ frame_tp_clear(PyFrameObject *f)
for (p = f->f_valuestack; p < oldtop; p++)
Py_CLEAR(*p);
}
+ return 0;
}
static PyObject *
@@ -561,7 +562,7 @@ frame_clear(PyFrameObject *f)
_PyGen_Finalize(f->f_gen);
assert(f->f_gen == NULL);
}
- frame_tp_clear(f);
+ (void)frame_tp_clear(f);
Py_RETURN_NONE;
}
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 241685d5b7bb..413a590f17f5 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -242,14 +242,14 @@ static PyMemberDef func_memberlist[] = {
};
static PyObject *
-func_get_code(PyFunctionObject *op)
+func_get_code(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_code);
return op->func_code;
}
static int
-func_set_code(PyFunctionObject *op, PyObject *value)
+func_set_code(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
Py_ssize_t nfree, nclosure;
@@ -277,14 +277,14 @@ func_set_code(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_name(PyFunctionObject *op)
+func_get_name(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_name);
return op->func_name;
}
static int
-func_set_name(PyFunctionObject *op, PyObject *value)
+func_set_name(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del f.func_name or to set it to anything
* other than a string object. */
@@ -299,14 +299,14 @@ func_set_name(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_qualname(PyFunctionObject *op)
+func_get_qualname(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_qualname);
return op->func_qualname;
}
static int
-func_set_qualname(PyFunctionObject *op, PyObject *value)
+func_set_qualname(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del f.__qualname__ or to set it to anything
* other than a string object. */
@@ -321,7 +321,7 @@ func_set_qualname(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_defaults(PyFunctionObject *op)
+func_get_defaults(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_defaults == NULL) {
Py_RETURN_NONE;
@@ -331,7 +331,7 @@ func_get_defaults(PyFunctionObject *op)
}
static int
-func_set_defaults(PyFunctionObject *op, PyObject *value)
+func_set_defaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Legal to del f.func_defaults.
* Can only set func_defaults to NULL or a tuple. */
@@ -348,7 +348,7 @@ func_set_defaults(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_kwdefaults(PyFunctionObject *op)
+func_get_kwdefaults(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_kwdefaults == NULL) {
Py_RETURN_NONE;
@@ -358,7 +358,7 @@ func_get_kwdefaults(PyFunctionObject *op)
}
static int
-func_set_kwdefaults(PyFunctionObject *op, PyObject *value)
+func_set_kwdefaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == Py_None)
value = NULL;
@@ -375,7 +375,7 @@ func_set_kwdefaults(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_annotations(PyFunctionObject *op)
+func_get_annotations(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_annotations == NULL) {
op->func_annotations = PyDict_New();
@@ -387,7 +387,7 @@ func_get_annotations(PyFunctionObject *op)
}
static int
-func_set_annotations(PyFunctionObject *op, PyObject *value)
+func_set_annotations(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == Py_None)
value = NULL;
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 793a809b8428..b0e877072c78 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -644,14 +644,14 @@ gen_repr(PyGenObject *gen)
}
static PyObject *
-gen_get_name(PyGenObject *op)
+gen_get_name(PyGenObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->gi_name);
return op->gi_name;
}
static int
-gen_set_name(PyGenObject *op, PyObject *value)
+gen_set_name(PyGenObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del gen.gi_name or to set it to anything
* other than a string object. */
@@ -666,14 +666,14 @@ gen_set_name(PyGenObject *op, PyObject *value)
}
static PyObject *
-gen_get_qualname(PyGenObject *op)
+gen_get_qualname(PyGenObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->gi_qualname);
return op->gi_qualname;
}
static int
-gen_set_qualname(PyGenObject *op, PyObject *value)
+gen_set_qualname(PyGenObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del gen.__qualname__ or to set it to anything
* other than a string object. */
@@ -688,7 +688,7 @@ gen_set_qualname(PyGenObject *op, PyObject *value)
}
static PyObject *
-gen_getyieldfrom(PyGenObject *gen)
+gen_getyieldfrom(PyGenObject *gen, void *Py_UNUSED(ignored))
{
PyObject *yf = _PyGen_yf(gen);
if (yf == NULL)
@@ -927,7 +927,7 @@ coro_await(PyCoroObject *coro)
}
static PyObject *
-coro_get_cr_await(PyCoroObject *coro)
+coro_get_cr_await(PyCoroObject *coro, void *Py_UNUSED(ignored))
{
PyObject *yf = _PyGen_yf((PyGenObject *) coro);
if (yf == NULL)
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index ccf45ffc5826..ce8fa3f27005 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -2905,7 +2905,7 @@ _IntTupleFromSsizet(int len, Py_ssize_t *vals)
}
static PyObject *
-memory_obj_get(PyMemoryViewObject *self)
+memory_obj_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
Py_buffer *view = &self->view;
@@ -2918,56 +2918,56 @@ memory_obj_get(PyMemoryViewObject *self)
}
static PyObject *
-memory_nbytes_get(PyMemoryViewObject *self)
+memory_nbytes_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromSsize_t(self->view.len);
}
static PyObject *
-memory_format_get(PyMemoryViewObject *self)
+memory_format_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyUnicode_FromString(self->view.format);
}
static PyObject *
-memory_itemsize_get(PyMemoryViewObject *self)
+memory_itemsize_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromSsize_t(self->view.itemsize);
}
static PyObject *
-memory_shape_get(PyMemoryViewObject *self)
+memory_shape_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.shape);
}
static PyObject *
-memory_strides_get(PyMemoryViewObject *self)
+memory_strides_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.strides);
}
static PyObject *
-memory_suboffsets_get(PyMemoryViewObject *self)
+memory_suboffsets_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.suboffsets);
}
static PyObject *
-memory_readonly_get(PyMemoryViewObject *self)
+memory_readonly_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyBool_FromLong(self->view.readonly);
}
static PyObject *
-memory_ndim_get(PyMemoryViewObject *self)
+memory_ndim_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromLong(self->view.ndim);
diff --git a/Python/context.c b/Python/context.c
index ba64903a608e..90c71e386d53 100644
--- a/Python/context.c
+++ b/Python/context.c
@@ -1105,14 +1105,14 @@ token_tp_repr(PyContextToken *self)
}
static PyObject *
-token_get_var(PyContextToken *self)
+token_get_var(PyContextToken *self, void *Py_UNUSED(ignored))
{
Py_INCREF(self->tok_var);
return (PyObject *)self->tok_var;
}
static PyObject *
-token_get_old_value(PyContextToken *self)
+token_get_old_value(PyContextToken *self, void *Py_UNUSED(ignored))
{
if (self->tok_oldval == NULL) {
return get_token_missing();
diff --git a/Python/traceback.c b/Python/traceback.c
index 95bef64e734b..8b32864e1d65 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -178,11 +178,12 @@ tb_traverse(PyTracebackObject *tb, visitproc visit, void *arg)
return 0;
}
-static void
+static int
tb_clear(PyTracebackObject *tb)
{
Py_CLEAR(tb->tb_next);
Py_CLEAR(tb->tb_frame);
+ return 0;
}
PyTypeObject PyTraceBack_Type = {
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
27 Nov '18
https://github.com/python/cpython/commit/d4f9cf5545d6d8844e0726552ef2e366f5…
commit: d4f9cf5545d6d8844e0726552ef2e366f5cc3abd
branch: master
author: Serhiy Storchaka <storchaka(a)gmail.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T19:34:35+02:00
summary:
bpo-33029: Fix signatures of getter and setter functions. (GH-10746)
Fix also return type for few other functions (clear, releasebuffer).
files:
M Modules/_asynciomodule.c
M Modules/_collectionsmodule.c
M Modules/_csv.c
M Modules/_ctypes/_ctypes.c
M Modules/_cursesmodule.c
M Modules/_io/bytesio.c
M Modules/_pickle.c
M Modules/_sqlite/connection.c
M Modules/_sqlite/row.c
M Modules/_sre.c
M Modules/_testbuffer.c
M Modules/_tkinter.c
M Modules/cjkcodecs/multibytecodec.c
M Modules/mmapmodule.c
M Modules/selectmodule.c
M Modules/xxsubtype.c
M Objects/cellobject.c
M Objects/descrobject.c
M Objects/exceptions.c
M Objects/frameobject.c
M Objects/funcobject.c
M Objects/genobject.c
M Objects/memoryobject.c
M Python/context.c
M Python/traceback.c
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index 88986718905e..0998cc103880 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -1097,7 +1097,7 @@ _asyncio_Future_get_loop_impl(FutureObj *self)
}
static PyObject *
-FutureObj_get_blocking(FutureObj *fut)
+FutureObj_get_blocking(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (future_is_alive(fut) && fut->fut_blocking) {
Py_RETURN_TRUE;
@@ -1108,7 +1108,7 @@ FutureObj_get_blocking(FutureObj *fut)
}
static int
-FutureObj_set_blocking(FutureObj *fut, PyObject *val)
+FutureObj_set_blocking(FutureObj *fut, PyObject *val, void *Py_UNUSED(ignored))
{
if (future_ensure_alive(fut)) {
return -1;
@@ -1123,7 +1123,7 @@ FutureObj_set_blocking(FutureObj *fut, PyObject *val)
}
static PyObject *
-FutureObj_get_log_traceback(FutureObj *fut)
+FutureObj_get_log_traceback(FutureObj *fut, void *Py_UNUSED(ignored))
{
ENSURE_FUTURE_ALIVE(fut)
if (fut->fut_log_tb) {
@@ -1135,7 +1135,7 @@ FutureObj_get_log_traceback(FutureObj *fut)
}
static int
-FutureObj_set_log_traceback(FutureObj *fut, PyObject *val)
+FutureObj_set_log_traceback(FutureObj *fut, PyObject *val, void *Py_UNUSED(ignored))
{
int is_true = PyObject_IsTrue(val);
if (is_true < 0) {
@@ -1151,7 +1151,7 @@ FutureObj_set_log_traceback(FutureObj *fut, PyObject *val)
}
static PyObject *
-FutureObj_get_loop(FutureObj *fut)
+FutureObj_get_loop(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (!future_is_alive(fut)) {
Py_RETURN_NONE;
@@ -1161,7 +1161,7 @@ FutureObj_get_loop(FutureObj *fut)
}
static PyObject *
-FutureObj_get_callbacks(FutureObj *fut)
+FutureObj_get_callbacks(FutureObj *fut, void *Py_UNUSED(ignored))
{
Py_ssize_t i;
@@ -1213,7 +1213,7 @@ FutureObj_get_callbacks(FutureObj *fut)
}
static PyObject *
-FutureObj_get_result(FutureObj *fut)
+FutureObj_get_result(FutureObj *fut, void *Py_UNUSED(ignored))
{
ENSURE_FUTURE_ALIVE(fut)
if (fut->fut_result == NULL) {
@@ -1224,7 +1224,7 @@ FutureObj_get_result(FutureObj *fut)
}
static PyObject *
-FutureObj_get_exception(FutureObj *fut)
+FutureObj_get_exception(FutureObj *fut, void *Py_UNUSED(ignored))
{
ENSURE_FUTURE_ALIVE(fut)
if (fut->fut_exception == NULL) {
@@ -1235,7 +1235,7 @@ FutureObj_get_exception(FutureObj *fut)
}
static PyObject *
-FutureObj_get_source_traceback(FutureObj *fut)
+FutureObj_get_source_traceback(FutureObj *fut, void *Py_UNUSED(ignored))
{
if (!future_is_alive(fut) || fut->fut_source_tb == NULL) {
Py_RETURN_NONE;
@@ -1245,7 +1245,7 @@ FutureObj_get_source_traceback(FutureObj *fut)
}
static PyObject *
-FutureObj_get_state(FutureObj *fut)
+FutureObj_get_state(FutureObj *fut, void *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(PENDING);
_Py_IDENTIFIER(CANCELLED);
@@ -1714,7 +1714,7 @@ TaskStepMethWrapper_traverse(TaskStepMethWrapper *o,
}
static PyObject *
-TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o)
+TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o, void *Py_UNUSED(ignored))
{
if (o->sw_task) {
Py_INCREF(o->sw_task);
@@ -2002,7 +2002,7 @@ TaskObj_traverse(TaskObj *task, visitproc visit, void *arg)
}
static PyObject *
-TaskObj_get_log_destroy_pending(TaskObj *task)
+TaskObj_get_log_destroy_pending(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_log_destroy_pending) {
Py_RETURN_TRUE;
@@ -2013,7 +2013,7 @@ TaskObj_get_log_destroy_pending(TaskObj *task)
}
static int
-TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val)
+TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val, void *Py_UNUSED(ignored))
{
int is_true = PyObject_IsTrue(val);
if (is_true < 0) {
@@ -2024,7 +2024,7 @@ TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val)
}
static PyObject *
-TaskObj_get_must_cancel(TaskObj *task)
+TaskObj_get_must_cancel(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_must_cancel) {
Py_RETURN_TRUE;
@@ -2035,7 +2035,7 @@ TaskObj_get_must_cancel(TaskObj *task)
}
static PyObject *
-TaskObj_get_coro(TaskObj *task)
+TaskObj_get_coro(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_coro) {
Py_INCREF(task->task_coro);
@@ -2046,7 +2046,7 @@ TaskObj_get_coro(TaskObj *task)
}
static PyObject *
-TaskObj_get_fut_waiter(TaskObj *task)
+TaskObj_get_fut_waiter(TaskObj *task, void *Py_UNUSED(ignored))
{
if (task->task_fut_waiter) {
Py_INCREF(task->task_fut_waiter);
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 1ad4a03467c2..4da0662f0c7f 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1508,7 +1508,7 @@ deque_bool(dequeobject *deque)
}
static PyObject *
-deque_get_maxlen(dequeobject *deque)
+deque_get_maxlen(dequeobject *deque, void *Py_UNUSED(ignored))
{
if (deque->maxlen < 0)
Py_RETURN_NONE;
diff --git a/Modules/_csv.c b/Modules/_csv.c
index b4e92de27a97..6c009749b058 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -160,31 +160,31 @@ get_nullchar_as_None(Py_UCS4 c)
}
static PyObject *
-Dialect_get_lineterminator(DialectObj *self)
+Dialect_get_lineterminator(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_string(self->lineterminator);
}
static PyObject *
-Dialect_get_delimiter(DialectObj *self)
+Dialect_get_delimiter(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->delimiter);
}
static PyObject *
-Dialect_get_escapechar(DialectObj *self)
+Dialect_get_escapechar(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->escapechar);
}
static PyObject *
-Dialect_get_quotechar(DialectObj *self)
+Dialect_get_quotechar(DialectObj *self, void *Py_UNUSED(ignored))
{
return get_nullchar_as_None(self->quotechar);
}
static PyObject *
-Dialect_get_quoting(DialectObj *self)
+Dialect_get_quoting(DialectObj *self, void *Py_UNUSED(ignored))
{
return PyLong_FromLong(self->quoting);
}
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 60f6985a6646..36ef5d9b67fc 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -1161,7 +1161,7 @@ PyTypeObject PyCPointerType_Type = {
*/
static int
-CharArray_set_raw(CDataObject *self, PyObject *value)
+CharArray_set_raw(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
char *ptr;
Py_ssize_t size;
@@ -1187,13 +1187,13 @@ CharArray_set_raw(CDataObject *self, PyObject *value)
}
static PyObject *
-CharArray_get_raw(CDataObject *self)
+CharArray_get_raw(CDataObject *self, void *Py_UNUSED(ignored))
{
return PyBytes_FromStringAndSize(self->b_ptr, self->b_size);
}
static PyObject *
-CharArray_get_value(CDataObject *self)
+CharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
Py_ssize_t i;
char *ptr = self->b_ptr;
@@ -1204,7 +1204,7 @@ CharArray_get_value(CDataObject *self)
}
static int
-CharArray_set_value(CDataObject *self, PyObject *value)
+CharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
char *ptr;
Py_ssize_t size;
@@ -1249,7 +1249,7 @@ static PyGetSetDef CharArray_getsets[] = {
#ifdef CTYPES_UNICODE
static PyObject *
-WCharArray_get_value(CDataObject *self)
+WCharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
Py_ssize_t i;
wchar_t *ptr = (wchar_t *)self->b_ptr;
@@ -1260,7 +1260,7 @@ WCharArray_get_value(CDataObject *self)
}
static int
-WCharArray_set_value(CDataObject *self, PyObject *value)
+WCharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
Py_ssize_t result = 0;
Py_UNICODE *wstr;
@@ -3060,7 +3060,7 @@ GenericPyCData_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
*/
static int
-PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
if (ob && !PyCallable_Check(ob)) {
PyErr_SetString(PyExc_TypeError,
@@ -3073,7 +3073,7 @@ PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self)
+PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
if (self->errcheck) {
Py_INCREF(self->errcheck);
@@ -3083,7 +3083,7 @@ PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self)
}
static int
-PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
if (ob == NULL) {
Py_CLEAR(self->restype);
@@ -3104,7 +3104,7 @@ PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_restype(PyCFuncPtrObject *self)
+PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
if (self->restype) {
@@ -3122,7 +3122,7 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self)
}
static int
-PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob)
+PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
PyObject *converters;
@@ -3141,7 +3141,7 @@ PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob)
}
static PyObject *
-PyCFuncPtr_get_argtypes(PyCFuncPtrObject *self)
+PyCFuncPtr_get_argtypes(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
if (self->argtypes) {
@@ -4685,7 +4685,7 @@ PyCArrayType_from_ctype(PyObject *itemtype, Py_ssize_t length)
*/
static int
-Simple_set_value(CDataObject *self, PyObject *value)
+Simple_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
PyObject *result;
StgDictObject *dict = PyObject_stgdict((PyObject *)self);
@@ -4712,12 +4712,12 @@ Simple_init(CDataObject *self, PyObject *args, PyObject *kw)
if (!PyArg_UnpackTuple(args, "__init__", 0, 1, &value))
return -1;
if (value)
- return Simple_set_value(self, value);
+ return Simple_set_value(self, value, NULL);
return 0;
}
static PyObject *
-Simple_get_value(CDataObject *self)
+Simple_get_value(CDataObject *self, void *Py_UNUSED(ignored))
{
StgDictObject *dict;
dict = PyObject_stgdict((PyObject *)self);
@@ -4740,7 +4740,7 @@ Simple_from_outparm(PyObject *self, PyObject *args)
return self;
}
/* call stgdict->getfunc */
- return Simple_get_value((CDataObject *)self);
+ return Simple_get_value((CDataObject *)self, NULL);
}
static PyMethodDef Simple_methods[] = {
@@ -4777,7 +4777,7 @@ Simple_repr(CDataObject *self)
Py_TYPE(self)->tp_name, self);
}
- val = Simple_get_value(self);
+ val = Simple_get_value(self, NULL);
if (val == NULL)
return NULL;
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index cd3241208a27..9a1d2efd256e 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -2288,7 +2288,7 @@ PyCursesWindow_get_encoding(PyCursesWindowObject *self, void *closure)
}
static int
-PyCursesWindow_set_encoding(PyCursesWindowObject *self, PyObject *value)
+PyCursesWindow_set_encoding(PyCursesWindowObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
PyObject *ascii;
char *encoding;
diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c
index 8e54ec8e99c3..55e34c677670 100644
--- a/Modules/_io/bytesio.c
+++ b/Modules/_io/bytesio.c
@@ -202,7 +202,7 @@ write_bytes(bytesio *self, const char *bytes, Py_ssize_t len)
}
static PyObject *
-bytesio_get_closed(bytesio *self)
+bytesio_get_closed(bytesio *self, void *Py_UNUSED(ignored))
{
if (self->buf == NULL) {
Py_RETURN_TRUE;
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 3a7700553397..39f8b750ed64 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -4561,13 +4561,13 @@ PicklerMemoProxy_New(PicklerObject *pickler)
/*****************************************************************************/
static PyObject *
-Pickler_get_memo(PicklerObject *self)
+Pickler_get_memo(PicklerObject *self, void *Py_UNUSED(ignored))
{
return PicklerMemoProxy_New(self);
}
static int
-Pickler_set_memo(PicklerObject *self, PyObject *obj)
+Pickler_set_memo(PicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
{
PyMemoTable *new_memo = NULL;
@@ -4629,7 +4629,7 @@ Pickler_set_memo(PicklerObject *self, PyObject *obj)
}
static PyObject *
-Pickler_get_persid(PicklerObject *self)
+Pickler_get_persid(PicklerObject *self, void *Py_UNUSED(ignored))
{
if (self->pers_func == NULL) {
PyErr_SetString(PyExc_AttributeError, "persistent_id");
@@ -4639,7 +4639,7 @@ Pickler_get_persid(PicklerObject *self)
}
static int
-Pickler_set_persid(PicklerObject *self, PyObject *value)
+Pickler_set_persid(PicklerObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == NULL) {
PyErr_SetString(PyExc_TypeError,
@@ -6999,13 +6999,13 @@ UnpicklerMemoProxy_New(UnpicklerObject *unpickler)
static PyObject *
-Unpickler_get_memo(UnpicklerObject *self)
+Unpickler_get_memo(UnpicklerObject *self, void *Py_UNUSED(ignored))
{
return UnpicklerMemoProxy_New(self);
}
static int
-Unpickler_set_memo(UnpicklerObject *self, PyObject *obj)
+Unpickler_set_memo(UnpicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
{
PyObject **new_memo;
size_t new_memo_size = 0;
@@ -7082,7 +7082,7 @@ Unpickler_set_memo(UnpicklerObject *self, PyObject *obj)
}
static PyObject *
-Unpickler_get_persload(UnpicklerObject *self)
+Unpickler_get_persload(UnpicklerObject *self, void *Py_UNUSED(ignored))
{
if (self->pers_func == NULL) {
PyErr_SetString(PyExc_AttributeError, "persistent_load");
@@ -7092,7 +7092,7 @@ Unpickler_get_persload(UnpicklerObject *self)
}
static int
-Unpickler_set_persload(UnpicklerObject *self, PyObject *value)
+Unpickler_set_persload(UnpicklerObject *self, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == NULL) {
PyErr_SetString(PyExc_TypeError,
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 65e8df4f7c61..b59d7d28cfd5 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -55,7 +55,7 @@ static const char * const begin_statements[] = {
NULL
};
-static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level);
+static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level, void *Py_UNUSED(ignored));
static void _pysqlite_drop_unused_cursor_references(pysqlite_Connection* self);
@@ -147,7 +147,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
Py_INCREF(isolation_level);
}
Py_CLEAR(self->isolation_level);
- if (pysqlite_connection_set_isolation_level(self, isolation_level) < 0) {
+ if (pysqlite_connection_set_isolation_level(self, isolation_level, NULL) < 0) {
Py_DECREF(isolation_level);
return -1;
}
@@ -1163,7 +1163,8 @@ static PyObject* pysqlite_connection_get_in_transaction(pysqlite_Connection* sel
Py_RETURN_FALSE;
}
-static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level)
+static int
+pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level, void *Py_UNUSED(ignored))
{
if (isolation_level == Py_None) {
PyObject *res = pysqlite_connection_commit(self, NULL);
diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c
index 2fc26a8822dc..3cfbeeb93bba 100644
--- a/Modules/_sqlite/row.c
+++ b/Modules/_sqlite/row.c
@@ -150,7 +150,8 @@ PyObject* pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx)
}
}
-Py_ssize_t pysqlite_row_length(pysqlite_Row* self, PyObject* args, PyObject* kwargs)
+static Py_ssize_t
+pysqlite_row_length(pysqlite_Row* self)
{
return PyTuple_GET_SIZE(self->data);
}
diff --git a/Modules/_sre.c b/Modules/_sre.c
index c3509796f3a1..75f030cfaa8f 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -1305,7 +1305,7 @@ PyDoc_STRVAR(pattern_doc, "Compiled regular expression object.");
/* PatternObject's 'groupindex' method. */
static PyObject *
-pattern_groupindex(PatternObject *self)
+pattern_groupindex(PatternObject *self, void *Py_UNUSED(ignored))
{
if (self->groupindex == NULL)
return PyDict_New();
@@ -2272,7 +2272,7 @@ PyDoc_STRVAR(match_group_doc,
For 0 returns the entire match.");
static PyObject *
-match_lastindex_get(MatchObject *self)
+match_lastindex_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->lastindex >= 0)
return PyLong_FromSsize_t(self->lastindex);
@@ -2280,7 +2280,7 @@ match_lastindex_get(MatchObject *self)
}
static PyObject *
-match_lastgroup_get(MatchObject *self)
+match_lastgroup_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->pattern->indexgroup &&
self->lastindex >= 0 &&
@@ -2295,7 +2295,7 @@ match_lastgroup_get(MatchObject *self)
}
static PyObject *
-match_regs_get(MatchObject *self)
+match_regs_get(MatchObject *self, void *Py_UNUSED(ignored))
{
if (self->regs) {
Py_INCREF(self->regs);
diff --git a/Modules/_testbuffer.c b/Modules/_testbuffer.c
index 4ff44f91a6ab..9d7b3e8b0b3f 100644
--- a/Modules/_testbuffer.c
+++ b/Modules/_testbuffer.c
@@ -1531,7 +1531,7 @@ ndarray_getbuf(NDArrayObject *self, Py_buffer *view, int flags)
return 0;
}
-static int
+static void
ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
{
if (!ND_IS_CONSUMER(self)) {
@@ -1539,8 +1539,6 @@ ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
if (--ndbuf->exports == 0 && ndbuf != self->head)
ndbuf_delete(self, ndbuf);
}
-
- return 0;
}
static PyBufferProcs ndarray_as_buffer = {
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index fa268599876a..a96924c9c6e7 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -842,7 +842,7 @@ PyTclObject_string(PyTclObject *self, void *ignored)
}
static PyObject *
-PyTclObject_str(PyTclObject *self, void *ignored)
+PyTclObject_str(PyTclObject *self)
{
if (self->string) {
Py_INCREF(self->string);
@@ -855,7 +855,7 @@ PyTclObject_str(PyTclObject *self, void *ignored)
static PyObject *
PyTclObject_repr(PyTclObject *self)
{
- PyObject *repr, *str = PyTclObject_str(self, NULL);
+ PyObject *repr, *str = PyTclObject_str(self);
if (str == NULL)
return NULL;
repr = PyUnicode_FromFormat("<%s object: %R>",
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index 8a0ac870f15e..938a774f05cb 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -108,7 +108,7 @@ call_error_callback(PyObject *errors, PyObject *exc)
}
static PyObject *
-codecctx_errors_get(MultibyteStatefulCodecContext *self)
+codecctx_errors_get(MultibyteStatefulCodecContext *self, void *Py_UNUSED(ignored))
{
const char *errors;
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index 86632358b7fc..f4caf8799f10 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -656,7 +656,7 @@ mmap_move_method(mmap_object *self, PyObject *args)
}
static PyObject *
-mmap_closed_get(mmap_object *self)
+mmap_closed_get(mmap_object *self, void *Py_UNUSED(ignored))
{
#ifdef MS_WINDOWS
return PyBool_FromLong(self->map_handle == NULL ? 1 : 0);
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index d86727a8978d..5a6b13466c80 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -1031,7 +1031,7 @@ select_devpoll_close_impl(devpollObject *self)
}
static PyObject*
-devpoll_get_closed(devpollObject *self)
+devpoll_get_closed(devpollObject *self, void *Py_UNUSED(ignored))
{
if (self->fd_devpoll < 0)
Py_RETURN_TRUE;
@@ -1333,7 +1333,7 @@ select_epoll_close_impl(pyEpoll_Object *self)
static PyObject*
-pyepoll_get_closed(pyEpoll_Object *self)
+pyepoll_get_closed(pyEpoll_Object *self, void *Py_UNUSED(ignored))
{
if (self->epfd < 0)
Py_RETURN_TRUE;
@@ -1979,7 +1979,7 @@ select_kqueue_close_impl(kqueue_queue_Object *self)
}
static PyObject*
-kqueue_queue_get_closed(kqueue_queue_Object *self)
+kqueue_queue_get_closed(kqueue_queue_Object *self, void *Py_UNUSED(ignored))
{
if (self->kqfd < 0)
Py_RETURN_TRUE;
diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c
index d9cb4cdb902f..bacbdf153618 100644
--- a/Modules/xxsubtype.c
+++ b/Modules/xxsubtype.c
@@ -89,7 +89,7 @@ spamlist_init(spamlistobject *self, PyObject *args, PyObject *kwds)
}
static PyObject *
-spamlist_state_get(spamlistobject *self)
+spamlist_state_get(spamlistobject *self, void *Py_UNUSED(ignored))
{
return PyLong_FromLong(self->state);
}
diff --git a/Objects/cellobject.c b/Objects/cellobject.c
index 6b7136c41270..86bebb9604a5 100644
--- a/Objects/cellobject.c
+++ b/Objects/cellobject.c
@@ -112,7 +112,7 @@ cell_get_contents(PyCellObject *op, void *closure)
}
static int
-cell_set_contents(PyCellObject *op, PyObject *obj)
+cell_set_contents(PyCellObject *op, PyObject *obj, void *Py_UNUSED(ignored))
{
Py_XINCREF(obj);
Py_XSETREF(op->ob_ref, obj);
diff --git a/Objects/descrobject.c b/Objects/descrobject.c
index 23d4b1a29e6f..d8dbfa9a4792 100644
--- a/Objects/descrobject.c
+++ b/Objects/descrobject.c
@@ -441,7 +441,7 @@ calculate_qualname(PyDescrObject *descr)
}
static PyObject *
-descr_get_qualname(PyDescrObject *descr)
+descr_get_qualname(PyDescrObject *descr, void *Py_UNUSED(ignored))
{
if (descr->d_qualname == NULL)
descr->d_qualname = calculate_qualname(descr);
@@ -1107,7 +1107,7 @@ static PyMemberDef wrapper_members[] = {
};
static PyObject *
-wrapper_objclass(wrapperobject *wp)
+wrapper_objclass(wrapperobject *wp, void *Py_UNUSED(ignored))
{
PyObject *c = (PyObject *)PyDescr_TYPE(wp->descr);
@@ -1116,7 +1116,7 @@ wrapper_objclass(wrapperobject *wp)
}
static PyObject *
-wrapper_name(wrapperobject *wp)
+wrapper_name(wrapperobject *wp, void *Py_UNUSED(ignored))
{
const char *s = wp->descr->d_base->name;
@@ -1124,21 +1124,21 @@ wrapper_name(wrapperobject *wp)
}
static PyObject *
-wrapper_doc(wrapperobject *wp, void *closure)
+wrapper_doc(wrapperobject *wp, void *Py_UNUSED(ignored))
{
return _PyType_GetDocFromInternalDoc(wp->descr->d_base->name, wp->descr->d_base->doc);
}
static PyObject *
-wrapper_text_signature(wrapperobject *wp, void *closure)
+wrapper_text_signature(wrapperobject *wp, void *Py_UNUSED(ignored))
{
return _PyType_GetTextSignatureFromInternalDoc(wp->descr->d_base->name, wp->descr->d_base->doc);
}
static PyObject *
-wrapper_qualname(wrapperobject *wp)
+wrapper_qualname(wrapperobject *wp, void *Py_UNUSED(ignored))
{
- return descr_get_qualname((PyDescrObject *)wp->descr);
+ return descr_get_qualname((PyDescrObject *)wp->descr, NULL);
}
static PyGetSetDef wrapper_getsets[] = {
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index cecbf977a327..05578d4a6aad 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -182,7 +182,7 @@ static PyMethodDef BaseException_methods[] = {
};
static PyObject *
-BaseException_get_args(PyBaseExceptionObject *self)
+BaseException_get_args(PyBaseExceptionObject *self, void *Py_UNUSED(ignored))
{
if (self->args == NULL) {
Py_RETURN_NONE;
@@ -192,7 +192,7 @@ BaseException_get_args(PyBaseExceptionObject *self)
}
static int
-BaseException_set_args(PyBaseExceptionObject *self, PyObject *val)
+BaseException_set_args(PyBaseExceptionObject *self, PyObject *val, void *Py_UNUSED(ignored))
{
PyObject *seq;
if (val == NULL) {
@@ -207,7 +207,7 @@ BaseException_set_args(PyBaseExceptionObject *self, PyObject *val)
}
static PyObject *
-BaseException_get_tb(PyBaseExceptionObject *self)
+BaseException_get_tb(PyBaseExceptionObject *self, void *Py_UNUSED(ignored))
{
if (self->traceback == NULL) {
Py_RETURN_NONE;
@@ -217,7 +217,7 @@ BaseException_get_tb(PyBaseExceptionObject *self)
}
static int
-BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb)
+BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb, void *Py_UNUSED(ignored))
{
if (tb == NULL) {
PyErr_SetString(PyExc_TypeError, "__traceback__ may not be deleted");
@@ -235,7 +235,8 @@ BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb)
}
static PyObject *
-BaseException_get_context(PyObject *self) {
+BaseException_get_context(PyObject *self, void *Py_UNUSED(ignored))
+{
PyObject *res = PyException_GetContext(self);
if (res)
return res; /* new reference already returned above */
@@ -243,7 +244,8 @@ BaseException_get_context(PyObject *self) {
}
static int
-BaseException_set_context(PyObject *self, PyObject *arg) {
+BaseException_set_context(PyObject *self, PyObject *arg, void *Py_UNUSED(ignored))
+{
if (arg == NULL) {
PyErr_SetString(PyExc_TypeError, "__context__ may not be deleted");
return -1;
@@ -262,7 +264,8 @@ BaseException_set_context(PyObject *self, PyObject *arg) {
}
static PyObject *
-BaseException_get_cause(PyObject *self) {
+BaseException_get_cause(PyObject *self, void *Py_UNUSED(ignored))
+{
PyObject *res = PyException_GetCause(self);
if (res)
return res; /* new reference already returned above */
@@ -270,7 +273,8 @@ BaseException_get_cause(PyObject *self) {
}
static int
-BaseException_set_cause(PyObject *self, PyObject *arg) {
+BaseException_set_cause(PyObject *self, PyObject *arg, void *Py_UNUSED(ignored))
+{
if (arg == NULL) {
PyErr_SetString(PyExc_TypeError, "__cause__ may not be deleted");
return -1;
@@ -293,10 +297,10 @@ static PyGetSetDef BaseException_getset[] = {
{"__dict__", PyObject_GenericGetDict, PyObject_GenericSetDict},
{"args", (getter)BaseException_get_args, (setter)BaseException_set_args},
{"__traceback__", (getter)BaseException_get_tb, (setter)BaseException_set_tb},
- {"__context__", (getter)BaseException_get_context,
- (setter)BaseException_set_context, PyDoc_STR("exception context")},
- {"__cause__", (getter)BaseException_get_cause,
- (setter)BaseException_set_cause, PyDoc_STR("exception cause")},
+ {"__context__", BaseException_get_context,
+ BaseException_set_context, PyDoc_STR("exception context")},
+ {"__cause__", BaseException_get_cause,
+ BaseException_set_cause, PyDoc_STR("exception cause")},
{NULL},
};
@@ -311,7 +315,7 @@ PyException_GetTraceback(PyObject *self) {
int
PyException_SetTraceback(PyObject *self, PyObject *tb) {
- return BaseException_set_tb((PyBaseExceptionObject *)self, tb);
+ return BaseException_set_tb((PyBaseExceptionObject *)self, tb, NULL);
}
PyObject *
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index b1a83d82a398..400f99f6c963 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -87,7 +87,7 @@ get_arg(const _Py_CODEUNIT *codestr, Py_ssize_t i)
* that time.
*/
static int
-frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno)
+frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno, void *Py_UNUSED(ignored))
{
int new_lineno = 0; /* The new value of f_lineno */
long l_new_lineno;
@@ -470,7 +470,7 @@ frame_traverse(PyFrameObject *f, visitproc visit, void *arg)
return 0;
}
-static void
+static int
frame_tp_clear(PyFrameObject *f)
{
PyObject **fastlocals, **p, **oldtop;
@@ -498,6 +498,7 @@ frame_tp_clear(PyFrameObject *f)
for (p = f->f_valuestack; p < oldtop; p++)
Py_CLEAR(*p);
}
+ return 0;
}
static PyObject *
@@ -512,7 +513,7 @@ frame_clear(PyFrameObject *f, PyObject *Py_UNUSED(ignored))
_PyGen_Finalize(f->f_gen);
assert(f->f_gen == NULL);
}
- frame_tp_clear(f);
+ (void)frame_tp_clear(f);
Py_RETURN_NONE;
}
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index c77e4e9f4e89..2add874fced6 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -244,14 +244,14 @@ static PyMemberDef func_memberlist[] = {
};
static PyObject *
-func_get_code(PyFunctionObject *op)
+func_get_code(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_code);
return op->func_code;
}
static int
-func_set_code(PyFunctionObject *op, PyObject *value)
+func_set_code(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
Py_ssize_t nfree, nclosure;
@@ -279,14 +279,14 @@ func_set_code(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_name(PyFunctionObject *op)
+func_get_name(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_name);
return op->func_name;
}
static int
-func_set_name(PyFunctionObject *op, PyObject *value)
+func_set_name(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del f.func_name or to set it to anything
* other than a string object. */
@@ -301,14 +301,14 @@ func_set_name(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_qualname(PyFunctionObject *op)
+func_get_qualname(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->func_qualname);
return op->func_qualname;
}
static int
-func_set_qualname(PyFunctionObject *op, PyObject *value)
+func_set_qualname(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del f.__qualname__ or to set it to anything
* other than a string object. */
@@ -323,7 +323,7 @@ func_set_qualname(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_defaults(PyFunctionObject *op)
+func_get_defaults(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_defaults == NULL) {
Py_RETURN_NONE;
@@ -333,7 +333,7 @@ func_get_defaults(PyFunctionObject *op)
}
static int
-func_set_defaults(PyFunctionObject *op, PyObject *value)
+func_set_defaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Legal to del f.func_defaults.
* Can only set func_defaults to NULL or a tuple. */
@@ -350,7 +350,7 @@ func_set_defaults(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_kwdefaults(PyFunctionObject *op)
+func_get_kwdefaults(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_kwdefaults == NULL) {
Py_RETURN_NONE;
@@ -360,7 +360,7 @@ func_get_kwdefaults(PyFunctionObject *op)
}
static int
-func_set_kwdefaults(PyFunctionObject *op, PyObject *value)
+func_set_kwdefaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == Py_None)
value = NULL;
@@ -377,7 +377,7 @@ func_set_kwdefaults(PyFunctionObject *op, PyObject *value)
}
static PyObject *
-func_get_annotations(PyFunctionObject *op)
+func_get_annotations(PyFunctionObject *op, void *Py_UNUSED(ignored))
{
if (op->func_annotations == NULL) {
op->func_annotations = PyDict_New();
@@ -389,7 +389,7 @@ func_get_annotations(PyFunctionObject *op)
}
static int
-func_set_annotations(PyFunctionObject *op, PyObject *value)
+func_set_annotations(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
if (value == Py_None)
value = NULL;
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 3279a0947e8f..e2def38af541 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -645,14 +645,14 @@ gen_repr(PyGenObject *gen)
}
static PyObject *
-gen_get_name(PyGenObject *op)
+gen_get_name(PyGenObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->gi_name);
return op->gi_name;
}
static int
-gen_set_name(PyGenObject *op, PyObject *value)
+gen_set_name(PyGenObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del gen.gi_name or to set it to anything
* other than a string object. */
@@ -667,14 +667,14 @@ gen_set_name(PyGenObject *op, PyObject *value)
}
static PyObject *
-gen_get_qualname(PyGenObject *op)
+gen_get_qualname(PyGenObject *op, void *Py_UNUSED(ignored))
{
Py_INCREF(op->gi_qualname);
return op->gi_qualname;
}
static int
-gen_set_qualname(PyGenObject *op, PyObject *value)
+gen_set_qualname(PyGenObject *op, PyObject *value, void *Py_UNUSED(ignored))
{
/* Not legal to del gen.__qualname__ or to set it to anything
* other than a string object. */
@@ -689,7 +689,7 @@ gen_set_qualname(PyGenObject *op, PyObject *value)
}
static PyObject *
-gen_getyieldfrom(PyGenObject *gen)
+gen_getyieldfrom(PyGenObject *gen, void *Py_UNUSED(ignored))
{
PyObject *yf = _PyGen_yf(gen);
if (yf == NULL)
@@ -926,7 +926,7 @@ coro_await(PyCoroObject *coro)
}
static PyObject *
-coro_get_cr_await(PyCoroObject *coro)
+coro_get_cr_await(PyCoroObject *coro, void *Py_UNUSED(ignored))
{
PyObject *yf = _PyGen_yf((PyGenObject *) coro);
if (yf == NULL)
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index c1350b7dc37d..40e6308c87ae 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -2920,7 +2920,7 @@ _IntTupleFromSsizet(int len, Py_ssize_t *vals)
}
static PyObject *
-memory_obj_get(PyMemoryViewObject *self)
+memory_obj_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
Py_buffer *view = &self->view;
@@ -2933,56 +2933,56 @@ memory_obj_get(PyMemoryViewObject *self)
}
static PyObject *
-memory_nbytes_get(PyMemoryViewObject *self)
+memory_nbytes_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromSsize_t(self->view.len);
}
static PyObject *
-memory_format_get(PyMemoryViewObject *self)
+memory_format_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyUnicode_FromString(self->view.format);
}
static PyObject *
-memory_itemsize_get(PyMemoryViewObject *self)
+memory_itemsize_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromSsize_t(self->view.itemsize);
}
static PyObject *
-memory_shape_get(PyMemoryViewObject *self)
+memory_shape_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.shape);
}
static PyObject *
-memory_strides_get(PyMemoryViewObject *self)
+memory_strides_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.strides);
}
static PyObject *
-memory_suboffsets_get(PyMemoryViewObject *self)
+memory_suboffsets_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return _IntTupleFromSsizet(self->view.ndim, self->view.suboffsets);
}
static PyObject *
-memory_readonly_get(PyMemoryViewObject *self)
+memory_readonly_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyBool_FromLong(self->view.readonly);
}
static PyObject *
-memory_ndim_get(PyMemoryViewObject *self)
+memory_ndim_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
{
CHECK_RELEASED(self);
return PyLong_FromLong(self->view.ndim);
diff --git a/Python/context.c b/Python/context.c
index d6ef5b337ca3..7531f1440bce 100644
--- a/Python/context.c
+++ b/Python/context.c
@@ -1141,14 +1141,14 @@ token_tp_repr(PyContextToken *self)
}
static PyObject *
-token_get_var(PyContextToken *self)
+token_get_var(PyContextToken *self, void *Py_UNUSED(ignored))
{
Py_INCREF(self->tok_var);
return (PyObject *)self->tok_var;
}
static PyObject *
-token_get_old_value(PyContextToken *self)
+token_get_old_value(PyContextToken *self, void *Py_UNUSED(ignored))
{
if (self->tok_oldval == NULL) {
return get_token_missing();
diff --git a/Python/traceback.c b/Python/traceback.c
index daaf28775491..bd1061ed43b1 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -178,11 +178,12 @@ tb_traverse(PyTracebackObject *tb, visitproc visit, void *arg)
return 0;
}
-static void
+static int
tb_clear(PyTracebackObject *tb)
{
Py_CLEAR(tb->tb_next);
Py_CLEAR(tb->tb_frame);
+ return 0;
}
PyTypeObject PyTraceBack_Type = {
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
27 Nov '18
https://github.com/python/cpython/commit/1005c84535191a72ebb7587d8c5636a065…
commit: 1005c84535191a72ebb7587d8c5636a065b7ed79
branch: master
author: Victor Stinner <vstinner(a)redhat.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T15:12:47+01:00
summary:
bpo-34100: Partially revert merge_consts_recursive() (GH-10743)
Partically revert commit c2e1607a51d7a17f143b5a34e8cff7c6fc58a091 to
fix a reference leak.
files:
M Lib/test/test_compile.py
M Python/compile.c
diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py
index 58bd9b5e4c7a..a086ef65b44a 100644
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -615,16 +615,6 @@ def check_same_constant(const):
self.check_constant(f1, Ellipsis)
self.assertEqual(repr(f1()), repr(Ellipsis))
- # Merge constants in tuple or frozenset
- # NOTE: frozenset can't reuse previous const, but frozenset
- # item can be reused later.
- f3 = lambda x: x in {("not a name",)}
- f1, f2 = lambda: "not a name", lambda: ("not a name",)
- self.assertIs(next(iter(f3.__code__.co_consts[1])),
- f2.__code__.co_consts[1])
- self.assertIs(f1.__code__.co_consts[1],
- f2.__code__.co_consts[1][0])
-
# {0} is converted to a constant frozenset({0}) by the peephole
# optimizer
f1, f2 = lambda x: x in {0}, lambda x: x in {0}
diff --git a/Python/compile.c b/Python/compile.c
index acb5cfe29b42..7d51819e00f0 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1240,56 +1240,6 @@ merge_consts_recursive(struct compiler *c, PyObject *o)
Py_DECREF(u);
}
}
- else if (PyFrozenSet_CheckExact(o)) {
- // We register items in the frozenset, but don't rewrite
- // the frozenset when the item is already registered
- // because frozenset is rare and difficult.
-
- // *key* is tuple. And it's first item is frozenset of
- // constant keys.
- // See _PyCode_ConstantKey() for detail.
- assert(PyTuple_CheckExact(key));
- assert(PyTuple_GET_SIZE(key) == 2);
-
- Py_ssize_t len = PySet_GET_SIZE(o);
- if (len == 0) {
- return key;
- }
- PyObject *tuple = PyTuple_New(len);
- if (tuple == NULL) {
- Py_DECREF(key);
- return NULL;
- }
- Py_ssize_t i = 0, pos = 0;
- PyObject *item;
- Py_hash_t hash;
- while (_PySet_NextEntry(o, &pos, &item, &hash)) {
- PyObject *k = merge_consts_recursive(c, item);
- if (k == NULL) {
- Py_DECREF(tuple);
- Py_DECREF(key);
- return NULL;
- }
- PyObject *u;
- if (PyTuple_CheckExact(k)) {
- u = PyTuple_GET_ITEM(k, 1);
- }
- else {
- u = k;
- }
- Py_INCREF(u);
- PyTuple_SET_ITEM(tuple, i, u);
- i++;
- }
-
- PyObject *new = PyFrozenSet_New(tuple);
- Py_DECREF(tuple);
- if (new == NULL) {
- Py_DECREF(key);
- return NULL;
- }
- PyTuple_SET_ITEM(key, 1, new);
- }
return key;
}
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
27 Nov '18
https://github.com/python/cpython/commit/54fa83e0a3f3b077763cb50705d7a7dbe4…
commit: 54fa83e0a3f3b077763cb50705d7a7dbe4a40a4a
branch: 3.6
author: Victor Stinner <vstinner(a)redhat.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T14:30:55+01:00
summary:
bpo-33954: Rewrite FILL() macro of unicodeobject.c (GH-10740)
Copy code from master: add assertions on start and value, replace 'i'
iterator with 'end' pointer for the loop stop condition.
_PyUnicode_FastFill(): fix type of 'data', it must not be constant,
since data is modified by FILL().
files:
M Objects/unicodeobject.c
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 6bfcddaa64e4..29b019887ac0 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -205,22 +205,30 @@ static PyObject *unicode_empty = NULL;
#define FILL(kind, data, value, start, length) \
do { \
- Py_ssize_t i_ = 0; \
+ assert(0 <= start); \
assert(kind != PyUnicode_WCHAR_KIND); \
- switch ((kind)) { \
+ switch (kind) { \
case PyUnicode_1BYTE_KIND: { \
- unsigned char * to_ = (unsigned char *)((data)) + (start); \
- memset(to_, (unsigned char)value, (length)); \
+ assert(value <= 0xff); \
+ Py_UCS1 ch = (unsigned char)value; \
+ Py_UCS1 *to = (Py_UCS1 *)data + start; \
+ memset(to, ch, length); \
break; \
} \
case PyUnicode_2BYTE_KIND: { \
- Py_UCS2 * to_ = (Py_UCS2 *)((data)) + (start); \
- for (; i_ < (length); ++i_, ++to_) *to_ = (value); \
+ assert(value <= 0xffff); \
+ Py_UCS2 ch = (Py_UCS2)value; \
+ Py_UCS2 *to = (Py_UCS2 *)data + start; \
+ const Py_UCS2 *end = to + length; \
+ for (; to < end; ++to) *to = ch; \
break; \
} \
case PyUnicode_4BYTE_KIND: { \
- Py_UCS4 * to_ = (Py_UCS4 *)((data)) + (start); \
- for (; i_ < (length); ++i_, ++to_) *to_ = (value); \
+ assert(value <= MAX_UNICODE); \
+ Py_UCS4 ch = value; \
+ Py_UCS4 * to = (Py_UCS4 *)data + start; \
+ const Py_UCS4 *end = to + length; \
+ for (; to < end; ++to) *to = ch; \
break; \
} \
default: assert(0); \
@@ -10262,7 +10270,7 @@ _PyUnicode_FastFill(PyObject *unicode, Py_ssize_t start, Py_ssize_t length,
Py_UCS4 fill_char)
{
const enum PyUnicode_Kind kind = PyUnicode_KIND(unicode);
- const void *data = PyUnicode_DATA(unicode);
+ void *data = PyUnicode_DATA(unicode);
assert(PyUnicode_IS_READY(unicode));
assert(unicode_modifiable(unicode));
assert(fill_char <= PyUnicode_MAX_CHAR_VALUE(unicode));
1
0
![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
27 Nov '18
https://github.com/python/cpython/commit/b59fc311609aadaafaae68240127b4997b…
commit: b59fc311609aadaafaae68240127b4997b85859d
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
committer: GitHub <noreply(a)github.com>
date: 2018-11-27T04:01:00-08:00
summary:
bpo-35317: Fix mktime() error in test_email (GH-10721)
Fix mktime() overflow error in test_email: run
test_localtime_daylight_true_dst_true() and
test_localtime_daylight_false_dst_true() with a specific timezone.
(cherry picked from commit cfaafda8e3e19764682abb4bd4c574accb784c42)
Co-authored-by: Victor Stinner <vstinner(a)redhat.com>
files:
A Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
M Lib/test/test_email/test_utils.py
diff --git a/Lib/test/test_email/test_utils.py b/Lib/test/test_email/test_utils.py
index 6dcb3bbe7aab..4e3c3f3a195f 100644
--- a/Lib/test/test_email/test_utils.py
+++ b/Lib/test/test_email/test_utils.py
@@ -75,6 +75,7 @@ def test_localtime_daylight_false_dst_false(self):
t2 = utils.localtime(t1)
self.assertEqual(t1, t2)
+ @test.support.run_with_tz('Europe/Minsk')
def test_localtime_daylight_true_dst_true(self):
test.support.patch(self, time, 'daylight', True)
t0 = datetime.datetime(2012, 3, 12, 1, 1)
@@ -82,6 +83,7 @@ def test_localtime_daylight_true_dst_true(self):
t2 = utils.localtime(t1)
self.assertEqual(t1, t2)
+ @test.support.run_with_tz('Europe/Minsk')
def test_localtime_daylight_false_dst_true(self):
test.support.patch(self, time, 'daylight', False)
t0 = datetime.datetime(2012, 3, 12, 1, 1)
diff --git a/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst b/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
new file mode 100644
index 000000000000..73a30f71927f
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
@@ -0,0 +1,3 @@
+Fix ``mktime()`` overflow error in ``test_email``: run
+``test_localtime_daylight_true_dst_true()`` and
+``test_localtime_daylight_false_dst_true()`` with a specific timezone.
1
0