From bf0c8e116db49379900020b5a20ba15d91b3fb9a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 6 Jan 2015 17:39:47 +1100 Subject: PyAPI: add PyList_APPEND This appends while giving ownership to the list, avoiding temp assignment. This matches PyList_SET_ITEM which bypasses refcount's Note, this also reduce code-size, Py_DECREF is a rather heavy macro. --- source/blender/python/bmesh/bmesh_py_types.c | 6 ++---- source/blender/python/bmesh/bmesh_py_types_select.c | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'source/blender/python/bmesh') diff --git a/source/blender/python/bmesh/bmesh_py_types.c b/source/blender/python/bmesh/bmesh_py_types.c index d3f4bfcacda..1da5599ea29 100644 --- a/source/blender/python/bmesh/bmesh_py_types.c +++ b/source/blender/python/bmesh/bmesh_py_types.c @@ -44,6 +44,7 @@ #include "../mathutils/mathutils.h" #include "../generic/py_capi_utils.h" +#include "../generic/python_utildefines.h" #include "bmesh_py_types.h" /* own include */ #include "bmesh_py_types_select.h" @@ -2796,7 +2797,6 @@ static PyObject *bpy_bmelemseq_subscript_slice(BPy_BMElemSeq *self, Py_ssize_t s bool ok; PyObject *list; - PyObject *item; BMHeader *ele; BPY_BM_CHECK_OBJ(self); @@ -2821,9 +2821,7 @@ static PyObject *bpy_bmelemseq_subscript_slice(BPy_BMElemSeq *self, Py_ssize_t s /* add items until stop */ while ((ele = BM_iter_step(&iter))) { - item = BPy_BMElem_CreatePyObject(self->bm, ele); - PyList_Append(list, item); - Py_DECREF(item); + PyList_APPEND(list, BPy_BMElem_CreatePyObject(self->bm, ele)); count++; if (count == stop) { diff --git a/source/blender/python/bmesh/bmesh_py_types_select.c b/source/blender/python/bmesh/bmesh_py_types_select.c index 6dd0ec5be0b..7b792e9f08e 100644 --- a/source/blender/python/bmesh/bmesh_py_types_select.c +++ b/source/blender/python/bmesh/bmesh_py_types_select.c @@ -44,6 +44,7 @@ #include "bmesh_py_types_select.h" #include "../generic/py_capi_utils.h" +#include "../generic/python_utildefines.h" PyDoc_STRVAR(bpy_bmeditselseq_active_doc, "The last selected element or None (read-only).\n\n:type: :class:`BMVert`, :class:`BMEdge` or :class:`BMFace`" @@ -193,7 +194,6 @@ static PyObject *bpy_bmeditselseq_subscript_slice(BPy_BMEditSelSeq *self, Py_ssi bool ok; PyObject *list; - PyObject *item; BMEditSelection *ese; BPY_BM_CHECK_OBJ(self); @@ -218,9 +218,7 @@ static PyObject *bpy_bmeditselseq_subscript_slice(BPy_BMEditSelSeq *self, Py_ssi /* add items until stop */ while ((ese = ese->next)) { - item = BPy_BMElem_CreatePyObject(self->bm, &ese->ele->head); - PyList_Append(list, item); - Py_DECREF(item); + PyList_APPEND(list, BPy_BMElem_CreatePyObject(self->bm, &ese->ele->head)); count++; if (count == stop) { -- cgit v1.2.3