summaryrefslogtreecommitdiff
path: root/numpy/f2py/cb_rules.py
diff options
context:
space:
mode:
authorPearu Peterson <pearu.peterson@gmail.com>2021-02-09 14:24:50 +0200
committerPearu Peterson <pearu.peterson@gmail.com>2021-02-09 14:24:50 +0200
commitd32fd54bafc1c98c3b53709c86e7d51db19fe059 (patch)
tree75c14d9f809059a3f44051944f5b6096ab8b9f03 /numpy/f2py/cb_rules.py
parent7b085eac10d08c49453541a896297f42f09ddfe7 (diff)
downloadnumpy-d32fd54bafc1c98c3b53709c86e7d51db19fe059.tar.gz
MAINT: Debug issue #18341
Diffstat (limited to 'numpy/f2py/cb_rules.py')
-rw-r--r--numpy/f2py/cb_rules.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/numpy/f2py/cb_rules.py b/numpy/f2py/cb_rules.py
index 60bc1ad11..9efb9683b 100644
--- a/numpy/f2py/cb_rules.py
+++ b/numpy/f2py/cb_rules.py
@@ -40,6 +40,15 @@ typedef struct {
jmp_buf jmpbuf;
} #name#_t;
+static void show_#name#(#name#_t *ptr) {
+ if (ptr != NULL) {
+ CFUNCSMESSPY(\"show_#name#: capi=\", ptr->capi);
+ CFUNCSMESSPY(\"show_#name#: args_capi=\", ptr->args_capi);
+ } else {
+ CFUNCSMESS(\"show_#name#: ptr=NULL");
+ }
+}
+
#if defined(F2PY_THREAD_LOCAL_DECL) && !defined(F2PY_USE_PYTHON_TLS)
static F2PY_THREAD_LOCAL_DECL #name#_t *_active_#name# = NULL;
@@ -82,6 +91,11 @@ static #name#_t *get_active_#name#(void) {
f2py_cb_start_clock();
#endif
cb = get_active_#name#();
+ show_#name#(cb);
+ if (cb == NULL) {
+ PyErr_SetString(#modulename#_error,\"cb: No active callback #name#!\\n\");
+ goto capi_fail;
+ }
capi_arglist = cb->args_capi;
CFUNCSMESS(\"cb:Call-back function #name# (maxnofargs=#maxnofargs#(-#nofoptargs#))\\n\");
CFUNCSMESSPY(\"cb:#name#_capi=\",cb->capi);
@@ -180,7 +194,7 @@ capi_return_pt:
}
#endtitle#
""",
- 'need': ['setjmp.h', 'CFUNCSMESS', 'F2PY_THREAD_LOCAL_DECL'],
+ 'need': ['setjmp.h', 'CFUNCSMESS', 'CFUNCSMESSPY', 'F2PY_THREAD_LOCAL_DECL'],
'maxnofargs': '#maxnofargs#',
'nofoptargs': '#nofoptargs#',
'docstr': """\