summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-07-07 10:23:51 +0000
committerGerd Moellmann <gerd@gnu.org>2000-07-07 10:23:51 +0000
commit090a072fc19d89419186471ba7e5249eb04a7070 (patch)
tree2c1471a9962ab3ef08ea9a4703d9a89e56871b50 /src/eval.c
parentd7e1fe1f9eb8e77a9e6f432570ef0a089b5a59d9 (diff)
downloademacs-090a072fc19d89419186471ba7e5249eb04a7070.tar.gz
(Fsignal): Handle case that backtrace_list is null.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c
index 56842ac99f3..da63f9833a1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1328,10 +1328,15 @@ See also the function `condition-case'.")
/* Remember from where signal was called. Skip over the frame for
`signal' itself. If a frame for `error' follows, skip that,
too. */
- bp = backtrace_list->next;
- if (bp && bp->function && EQ (*bp->function, Qerror))
- bp = bp->next;
- Vsignaling_function = bp && bp->function ? *bp->function : Qnil;
+ Vsignaling_function = Qnil;
+ if (backtrace_list)
+ {
+ bp = backtrace_list->next;
+ if (bp && bp->function && EQ (*bp->function, Qerror))
+ bp = bp->next;
+ if (bp && bp->function)
+ Vsignaling_function = *bp->function;
+ }
for (; handlerlist; handlerlist = handlerlist->next)
{