}
func = PyObject_GetAttrString(module, fdef->ml_name);
if (func == NULL) {
+ Py_DECREF(name_obj);
return -1;
}
- if (PyDict_SetItem(state->constructs, func, name_obj) < 0) {
- return -1;
- }
+ int rc = PyDict_SetItem(state->constructs, func, name_obj);
Py_DECREF(func);
Py_DECREF(name_obj);
+ if (rc < 0) {
+ return -1;
+ }
}
proxy = PyDictProxy_New(state->constructs);
if (proxy == NULL) {
return -1;
}
- if (PyModule_AddObjectRef(module, "_constructors", proxy) < 0) {
+
+ int rc = PyModule_AddObjectRef(module, "_constructors", proxy);
+ Py_DECREF(proxy);
+ if (rc < 0) {
return -1;
}
return 0;