Commit 791605d2 authored by Stefan Behnel's avatar Stefan Behnel

Simplify some decref-set patterns using the __Pyx_Py_XDECREF_SET() macro.

parent 326a00e1
...@@ -1294,8 +1294,6 @@ __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, CYTHON_UNUSED void *contex ...@@ -1294,8 +1294,6 @@ __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, CYTHON_UNUSED void *contex
static int static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context) __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
{ {
PyObject *tmp;
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
if (unlikely(value == NULL || !PyUnicode_Check(value))) if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else #else
...@@ -1306,10 +1304,8 @@ __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UN ...@@ -1306,10 +1304,8 @@ __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UN
"__name__ must be set to a string object"); "__name__ must be set to a string object");
return -1; return -1;
} }
tmp = self->gi_name;
Py_INCREF(value); Py_INCREF(value);
self->gi_name = value; __Pyx_Py_XDECREF_SET(self->gi_name, value);
Py_XDECREF(tmp);
return 0; return 0;
} }
...@@ -1326,8 +1322,6 @@ __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, CYTHON_UNUSED void *co ...@@ -1326,8 +1322,6 @@ __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, CYTHON_UNUSED void *co
static int static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context) __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
{ {
PyObject *tmp;
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
if (unlikely(value == NULL || !PyUnicode_Check(value))) if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else #else
...@@ -1338,10 +1332,8 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHO ...@@ -1338,10 +1332,8 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHO
"__qualname__ must be set to a string object"); "__qualname__ must be set to a string object");
return -1; return -1;
} }
tmp = self->gi_qualname;
Py_INCREF(value); Py_INCREF(value);
self->gi_qualname = value; __Pyx_Py_XDECREF_SET(self->gi_qualname, value);
Py_XDECREF(tmp);
return 0; return 0;
} }
......
...@@ -117,14 +117,12 @@ __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure ...@@ -117,14 +117,12 @@ __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure
static int static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{ {
PyObject *tmp = op->func_doc;
if (value == NULL) { if (value == NULL) {
// Mark as deleted // Mark as deleted
value = Py_None; value = Py_None;
} }
Py_INCREF(value); Py_INCREF(value);
op->func_doc = value; __Pyx_Py_XDECREF_SET(op->func_doc, value);
Py_XDECREF(tmp);
return 0; return 0;
} }
...@@ -147,8 +145,6 @@ __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *contex ...@@ -147,8 +145,6 @@ __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *contex
static int static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{ {
PyObject *tmp;
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
if (unlikely(value == NULL || !PyUnicode_Check(value))) if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else #else
...@@ -159,10 +155,8 @@ __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UN ...@@ -159,10 +155,8 @@ __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UN
"__name__ must be set to a string object"); "__name__ must be set to a string object");
return -1; return -1;
} }
tmp = op->func_name;
Py_INCREF(value); Py_INCREF(value);
op->func_name = value; __Pyx_Py_XDECREF_SET(op->func_name, value);
Py_XDECREF(tmp);
return 0; return 0;
} }
...@@ -176,8 +170,6 @@ __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *co ...@@ -176,8 +170,6 @@ __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *co
static int static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{ {
PyObject *tmp;
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
if (unlikely(value == NULL || !PyUnicode_Check(value))) if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else #else
...@@ -188,10 +180,8 @@ __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHO ...@@ -188,10 +180,8 @@ __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHO
"__qualname__ must be set to a string object"); "__qualname__ must be set to a string object");
return -1; return -1;
} }
tmp = op->func_qualname;
Py_INCREF(value); Py_INCREF(value);
op->func_qualname = value; __Pyx_Py_XDECREF_SET(op->func_qualname, value);
Py_XDECREF(tmp);
return 0; return 0;
} }
...@@ -222,8 +212,6 @@ __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *contex ...@@ -222,8 +212,6 @@ __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *contex
static int static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{ {
PyObject *tmp;
if (unlikely(value == NULL)) { if (unlikely(value == NULL)) {
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"function's dictionary may not be deleted"); "function's dictionary may not be deleted");
...@@ -234,10 +222,8 @@ __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UN ...@@ -234,10 +222,8 @@ __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UN
"setting function's dictionary to a non-dict"); "setting function's dictionary to a non-dict");
return -1; return -1;
} }
tmp = op->func_dict;
Py_INCREF(value); Py_INCREF(value);
op->func_dict = value; __Pyx_Py_XDECREF_SET(op->func_dict, value);
Py_XDECREF(tmp);
return 0; return 0;
} }
...@@ -290,7 +276,6 @@ __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { ...@@ -290,7 +276,6 @@ __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
static int static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
PyObject* tmp;
if (!value) { if (!value) {
// del => explicit None to prevent rebuilding // del => explicit None to prevent rebuilding
value = Py_None; value = Py_None;
...@@ -300,9 +285,7 @@ __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHO ...@@ -300,9 +285,7 @@ __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHO
return -1; return -1;
} }
Py_INCREF(value); Py_INCREF(value);
tmp = op->defaults_tuple; __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
op->defaults_tuple = value;
Py_XDECREF(tmp);
return 0; return 0;
} }
...@@ -323,7 +306,6 @@ __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *co ...@@ -323,7 +306,6 @@ __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *co
static int static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
PyObject* tmp;
if (!value) { if (!value) {
// del => explicit None to prevent rebuilding // del => explicit None to prevent rebuilding
value = Py_None; value = Py_None;
...@@ -333,9 +315,7 @@ __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYT ...@@ -333,9 +315,7 @@ __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYT
return -1; return -1;
} }
Py_INCREF(value); Py_INCREF(value);
tmp = op->defaults_kwdict; __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
op->defaults_kwdict = value;
Py_XDECREF(tmp);
return 0; return 0;
} }
...@@ -356,7 +336,6 @@ __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void * ...@@ -356,7 +336,6 @@ __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *
static int static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
PyObject* tmp;
if (!value || value == Py_None) { if (!value || value == Py_None) {
value = NULL; value = NULL;
} else if (!PyDict_Check(value)) { } else if (!PyDict_Check(value)) {
...@@ -365,9 +344,7 @@ __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CY ...@@ -365,9 +344,7 @@ __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CY
return -1; return -1;
} }
Py_XINCREF(value); Py_XINCREF(value);
tmp = op->func_annotations; __Pyx_Py_XDECREF_SET(op->func_annotations, value);
op->func_annotations = value;
Py_XDECREF(tmp);
return 0; return 0;
} }
...@@ -1222,9 +1199,8 @@ __pyx_err: ...@@ -1222,9 +1199,8 @@ __pyx_err:
__pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func; __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func;
// TODO: move this to InitClassCell // TODO: move this to InitClassCell
Py_CLEAR(unbound->func.func_classobj);
Py_XINCREF(self->func.func_classobj); Py_XINCREF(self->func.func_classobj);
unbound->func.func_classobj = self->func.func_classobj; __Pyx_Py_XDECREF_SET(unbound->func.func_classobj, self->func.func_classobj);
result_func = __pyx_FusedFunction_descr_get(unbound_result_func, result_func = __pyx_FusedFunction_descr_get(unbound_result_func,
self->self, self->self); self->self, self->self);
...@@ -1320,8 +1296,7 @@ __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw) ...@@ -1320,8 +1296,7 @@ __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw)
goto bad; goto bad;
Py_XINCREF(binding_func->func.func_classobj); Py_XINCREF(binding_func->func.func_classobj);
Py_CLEAR(new_func->func.func_classobj); __Pyx_Py_XDECREF_SET(new_func->func.func_classobj, binding_func->func.func_classobj);
new_func->func.func_classobj = binding_func->func.func_classobj;
func = (PyObject *) new_func; func = (PyObject *) new_func;
} }
......
...@@ -1377,6 +1377,10 @@ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) ...@@ -1377,6 +1377,10 @@ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
#define __Pyx_XGIVEREF(r) #define __Pyx_XGIVEREF(r)
#endif /* CYTHON_REFNANNY */ #endif /* CYTHON_REFNANNY */
#define __Pyx_Py_XDECREF_SET(r, v) do { \
PyObject *tmp = (PyObject *) r; \
r = v; Py_XDECREF(tmp); \
} while (0)
#define __Pyx_XDECREF_SET(r, v) do { \ #define __Pyx_XDECREF_SET(r, v) do { \
PyObject *tmp = (PyObject *) r; \ PyObject *tmp = (PyObject *) r; \
r = v; __Pyx_XDECREF(tmp); \ r = v; __Pyx_XDECREF(tmp); \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment