diff options
Diffstat (limited to 'numpy/f2py/lib/py_wrap_subprogram.py')
-rw-r--r-- | numpy/f2py/lib/py_wrap_subprogram.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/numpy/f2py/lib/py_wrap_subprogram.py b/numpy/f2py/lib/py_wrap_subprogram.py index 3044b5a6b..32853512d 100644 --- a/numpy/f2py/lib/py_wrap_subprogram.py +++ b/numpy/f2py/lib/py_wrap_subprogram.py @@ -41,7 +41,7 @@ static PyObject* %(cname)s(PyObject *capi_self, PyObject *capi_args, PyObject *c if (f2py_success) { %(pyobjfrom_list)s capi_buildvalue = Py_BuildValue("%(return_format_elist)s" - %(return_obj_list)s); + %(return_obj_clist)s); %(clean_pyobjfrom_list)s } %(clean_call_list)s @@ -92,6 +92,9 @@ static PyObject* %(cname)s(PyObject *capi_self, PyObject *capi_args, PyObject *c args_f.append('&'+argname) else: args_f.append(argname) + if var.is_intent_out(): # and is_scalar + self.return_format_list.append('O&') + self.return_obj_list.append('\npyobj_from_%s, &%s' % (ctype, argname)) WrapperCPPMacro(parent, 'F_FUNC') self.call_list.append('%s_f(%s);' % (name,', '.join(args_f))) @@ -99,6 +102,8 @@ static PyObject* %(cname)s(PyObject *capi_self, PyObject *capi_args, PyObject *c self.clean_pyobjfrom_list.reverse() self.clean_call_list.reverse() self.clean_frompyobj_list.reverse() + if self.return_obj_list: self.return_obj_list.insert(0,'') + parent.apply_templates(self) return |