aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorStefan Monnier2013-06-03 11:18:18 -0400
committerStefan Monnier2013-06-03 11:18:18 -0400
commita8a7c5f651cd9c3d354a4cb4938e5289d4cbbe4b (patch)
treecf9664003563a682554c9f6826ac967d92e9b012 /src/eval.c
parent2f23b3ab02d48e972fbce7f4a38527e07c651aa0 (diff)
downloademacs-a8a7c5f651cd9c3d354a4cb4938e5289d4cbbe4b.tar.gz
emacs-a8a7c5f651cd9c3d354a4cb4938e5289d4cbbe4b.zip
* src/eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
.gdbinit. * src/data.c (pure_write_error): Add `object' argument. * src/puresize.h (CHECK_IMPURE): Use it. * src/keyboard.c (safe_run_hooks_error): Improve error message.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c
index fac71e34a22..d6236b6edf2 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -128,16 +128,18 @@ void set_backtrace_debug_on_exit (struct specbinding *pdl, bool doe)
128 128
129/* Helper functions to scan the backtrace. */ 129/* Helper functions to scan the backtrace. */
130 130
131LISP_INLINE bool backtrace_p (struct specbinding *pdl) 131EXTERN_INLINE bool backtrace_p (struct specbinding *pdl)
132{ return pdl >= specpdl; } 132{ return pdl >= specpdl; }
133LISP_INLINE struct specbinding *backtrace_top (void) 133
134EXTERN_INLINE struct specbinding *backtrace_top (void)
134{ 135{
135 struct specbinding *pdl = specpdl_ptr - 1; 136 struct specbinding *pdl = specpdl_ptr - 1;
136 while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE) \ 137 while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
137 pdl--; 138 pdl--;
138 return pdl; 139 return pdl;
139} 140}
140LISP_INLINE struct specbinding *backtrace_next (struct specbinding *pdl) 141
142EXTERN_INLINE struct specbinding *backtrace_next (struct specbinding *pdl)
141{ 143{
142 pdl--; 144 pdl--;
143 while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE) 145 while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)