summaryrefslogtreecommitdiff
path: root/numpy/f2py/src/test
diff options
context:
space:
mode:
authorSebastian Berg <sebastian@sipsolutions.net>2018-12-31 01:28:17 +0100
committerSebastian Berg <sebastian@sipsolutions.net>2019-08-19 13:13:28 -0500
commit684bee2ae868c1bd8cb4fd4066d447ca35bd848e (patch)
tree14bd42e7116fa472800d2524c317f5ba20d2dca2 /numpy/f2py/src/test
parent98bdde643af6443d68a8c6233807b75bd3f0ed80 (diff)
downloadnumpy-684bee2ae868c1bd8cb4fd4066d447ca35bd848e.tar.gz
BUG: General fixes to f2py reference counts (dereferencing)
Diffstat (limited to 'numpy/f2py/src/test')
-rw-r--r--numpy/f2py/src/test/foomodule.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/numpy/f2py/src/test/foomodule.c b/numpy/f2py/src/test/foomodule.c
index 733fab0be..caf3590d4 100644
--- a/numpy/f2py/src/test/foomodule.c
+++ b/numpy/f2py/src/test/foomodule.c
@@ -115,7 +115,7 @@ static PyMethodDef foo_module_methods[] = {
void initfoo() {
int i;
- PyObject *m, *d, *s;
+ PyObject *m, *d, *s, *tmp;
import_array();
m = Py_InitModule("foo", foo_module_methods);
@@ -125,11 +125,17 @@ void initfoo() {
PyDict_SetItemString(d, "__doc__", s);
/* Fortran objects: */
- PyDict_SetItemString(d, "mod", PyFortranObject_New(f2py_mod_def,f2py_init_mod));
- PyDict_SetItemString(d, "foodata", PyFortranObject_New(f2py_foodata_def,f2py_init_foodata));
- for(i=0;f2py_routines_def[i].name!=NULL;i++)
- PyDict_SetItemString(d, f2py_routines_def[i].name,
- PyFortranObject_NewAsAttr(&f2py_routines_def[i]));
+ tmp = PyFortranObject_New(f2py_mod_def,f2py_init_mod);
+ PyDict_SetItemString(d, "mod", tmp);
+ Py_DECREF(tmp);
+ tmp = PyFortranObject_New(f2py_foodata_def,f2py_init_foodata);
+ PyDict_SetItemString(d, "foodata", tmp);
+ Py_DECREF(tmp);
+ for(i=0;f2py_routines_def[i].name!=NULL;i++) {
+ tmp = PyFortranObject_NewAsAttr(&f2py_routines_def[i]);
+ PyDict_SetItemString(d, f2py_routines_def[i].name, tmp);
+ Py_DECREF(tmp);
+ }
Py_DECREF(s);