diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-12-27 13:44:33 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-12-27 13:44:33 (GMT) |
commit | 726fc139a5f40d81a0013c856be1283da08de4a0 (patch) | |
tree | 7a7fe3b19e13842df5b5d45a8567fbfb5e7bbd75 /Modules | |
parent | bdb908ea5466bfa09869fd2e1e7f3b17fe0fb2ea (diff) | |
parent | 191321d11bc7e064e1a07830a43fa600de310e1b (diff) | |
download | cpython-726fc139a5f40d81a0013c856be1283da08de4a0.zip cpython-726fc139a5f40d81a0013c856be1283da08de4a0.tar.gz cpython-726fc139a5f40d81a0013c856be1283da08de4a0.tar.bz2 |
Issue #20440: More use of Py_SETREF.
This patch is manually crafted and contains changes that couldn't be handled
automatically.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_ctypes/_ctypes.c | 3 | ||||
-rw-r--r-- | Modules/_elementtree.c | 34 | ||||
-rw-r--r-- | Modules/_sqlite/cursor.c | 4 | ||||
-rw-r--r-- | Modules/zlibmodule.c | 18 |
4 files changed, 21 insertions, 38 deletions
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index ac5e5fa..5db9f90 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -2983,10 +2983,9 @@ PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob) "restype must be a type, a callable, or None"); return -1; } - Py_XDECREF(self->checker); Py_INCREF(ob); Py_SETREF(self->restype, ob); - self->checker = PyObject_GetAttrString(ob, "_check_retval_"); + Py_SETREF(self->checker, PyObject_GetAttrString(ob, "_check_retval_")); if (self->checker == NULL) PyErr_Clear(); return 0; diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c index f69ce29..f16d48f 100644 --- a/Modules/_elementtree.c +++ b/Modules/_elementtree.c @@ -965,9 +965,8 @@ element_setstate_from_attributes(ElementObject *self, return NULL; } - Py_CLEAR(self->tag); - self->tag = tag; - Py_INCREF(self->tag); + Py_INCREF(tag); + Py_SETREF(self->tag, tag); _clear_joined_ptr(&self->text); self->text = text ? JOIN_SET(text, PyList_CheckExact(text)) : Py_None; @@ -1010,9 +1009,8 @@ element_setstate_from_attributes(ElementObject *self, /* Stash attrib. */ if (attrib) { - Py_CLEAR(self->extra->attrib); - self->extra->attrib = attrib; Py_INCREF(attrib); + Py_SETREF(self->extra->attrib, attrib); } Py_RETURN_NONE; @@ -1961,8 +1959,7 @@ element_tag_setter(ElementObject *self, PyObject *value, void *closure) { _VALIDATE_ATTR_VALUE(value); Py_INCREF(value); - Py_DECREF(self->tag); - self->tag = value; + Py_SETREF(self->tag, value); return 0; } @@ -1995,8 +1992,7 @@ element_attrib_setter(ElementObject *self, PyObject *value, void *closure) return -1; } Py_INCREF(value); - Py_DECREF(self->extra->attrib); - self->extra->attrib = value; + Py_SETREF(self->extra->attrib, value); return 0; } @@ -2533,13 +2529,10 @@ treebuilder_handle_start(TreeBuilderObject* self, PyObject* tag, } self->index++; - Py_DECREF(this); Py_INCREF(node); - self->this = node; - - Py_DECREF(self->last); + Py_SETREF(self->this, node); Py_INCREF(node); - self->last = node; + Py_SETREF(self->last, node); if (treebuilder_append_event(self, self->start_event_obj, node) < 0) goto error; @@ -2612,15 +2605,12 @@ treebuilder_handle_end(TreeBuilderObject* self, PyObject* tag) return NULL; } - self->index--; - - item = PyList_GET_ITEM(self->stack, self->index); - Py_INCREF(item); - - Py_DECREF(self->last); - + item = self->last; self->last = self->this; - self->this = item; + self->index--; + self->this = PyList_GET_ITEM(self->stack, self->index); + Py_INCREF(self->this); + Py_DECREF(item); if (treebuilder_append_event(self, self->end_event_obj, self->last) < 0) return NULL; diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c index 1c240d6..cdb91ee 100644 --- a/Modules/_sqlite/cursor.c +++ b/Modules/_sqlite/cursor.c @@ -524,10 +524,10 @@ PyObject* _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* if (self->statement) { (void)pysqlite_statement_reset(self->statement); - Py_DECREF(self->statement); } - self->statement = (pysqlite_Statement*)pysqlite_cache_get(self->connection->statement_cache, func_args); + Py_SETREF(self->statement, + (pysqlite_Statement *)pysqlite_cache_get(self->connection->statement_cache, func_args)); Py_DECREF(func_args); if (!self->statement) { diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c index 7d2f55a..ed4439d 100644 --- a/Modules/zlibmodule.c +++ b/Modules/zlibmodule.c @@ -961,14 +961,11 @@ zlib_Compress_copy_impl(compobject *self) goto error; } Py_INCREF(self->unused_data); + Py_SETREF(retval->unused_data, self->unused_data); Py_INCREF(self->unconsumed_tail); + Py_SETREF(retval->unconsumed_tail, self->unconsumed_tail); Py_XINCREF(self->zdict); - Py_XDECREF(retval->unused_data); - Py_XDECREF(retval->unconsumed_tail); - Py_XDECREF(retval->zdict); - retval->unused_data = self->unused_data; - retval->unconsumed_tail = self->unconsumed_tail; - retval->zdict = self->zdict; + Py_SETREF(retval->zdict, self->zdict); retval->eof = self->eof; /* Mark it as being initialized */ @@ -1020,14 +1017,11 @@ zlib_Decompress_copy_impl(compobject *self) } Py_INCREF(self->unused_data); + Py_SETREF(retval->unused_data, self->unused_data); Py_INCREF(self->unconsumed_tail); + Py_SETREF(retval->unconsumed_tail, self->unconsumed_tail); Py_XINCREF(self->zdict); - Py_XDECREF(retval->unused_data); - Py_XDECREF(retval->unconsumed_tail); - Py_XDECREF(retval->zdict); - retval->unused_data = self->unused_data; - retval->unconsumed_tail = self->unconsumed_tail; - retval->zdict = self->zdict; + Py_SETREF(retval->zdict, self->zdict); retval->eof = self->eof; /* Mark it as being initialized */ |