summaryrefslogtreecommitdiff
path: root/numpy/f2py/common_rules.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/f2py/common_rules.py')
-rw-r--r--numpy/f2py/common_rules.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/numpy/f2py/common_rules.py b/numpy/f2py/common_rules.py
index 937d8bc72..5a488bf5a 100644
--- a/numpy/f2py/common_rules.py
+++ b/numpy/f2py/common_rules.py
@@ -91,6 +91,7 @@ def buildhooks(m):
idims = []
for n in inames:
ct = capi_maps.getctype(vars[n])
+ elsize = capi_maps.get_elsize(vars[n])
at = capi_maps.c2capi_map[ct]
dm = capi_maps.getarrdims(n, vars[n])
if dm['dims']:
@@ -100,7 +101,8 @@ def buildhooks(m):
dms = dm['dims'].strip()
if not dms:
dms = '-1'
- cadd('\t{\"%s\",%s,{{%s}},%s},' % (n, dm['rank'], dms, at))
+ cadd('\t{\"%s\",%s,{{%s}},%s, %s},'
+ % (n, dm['rank'], dms, at, elsize))
cadd('\t{NULL}\n};')
inames1 = rmbadname(inames)
inames1_tps = ','.join(['char *' + s for s in inames1])
@@ -121,7 +123,9 @@ def buildhooks(m):
% (F_FUNC, lower_name, name.upper(), name))
cadd('}\n')
iadd('\ttmp = PyFortranObject_New(f2py_%s_def,f2py_init_%s);' % (name, name))
- iadd('\tF2PyDict_SetItemString(d, \"%s\", tmp);' % name)
+ iadd('\tif (tmp == NULL) return NULL;')
+ iadd('\tif (F2PyDict_SetItemString(d, \"%s\", tmp) == -1) return NULL;'
+ % name)
iadd('\tPy_DECREF(tmp);')
tname = name.replace('_', '\\_')
dadd('\\subsection{Common block \\texttt{%s}}\n' % (tname))