aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/eval.c b/src/eval.c
index 7520164108f..3f7be81a7e4 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -117,21 +117,29 @@ static Lisp_Object apply_lambda (Lisp_Object fun, Lisp_Object args);
117 117
118/* Functions to modify slots of backtrace records. */ 118/* Functions to modify slots of backtrace records. */
119 119
120static void set_backtrace_args (struct specbinding *pdl, Lisp_Object *args) 120static void
121set_backtrace_args (struct specbinding *pdl, Lisp_Object *args)
121{ eassert (pdl->kind == SPECPDL_BACKTRACE); pdl->v.bt.args = args; } 122{ eassert (pdl->kind == SPECPDL_BACKTRACE); pdl->v.bt.args = args; }
122 123
123static void set_backtrace_nargs (struct specbinding *pdl, ptrdiff_t n) 124static void
125set_backtrace_nargs (struct specbinding *pdl, ptrdiff_t n)
124{ eassert (pdl->kind == SPECPDL_BACKTRACE); pdl->v.bt.nargs = n; } 126{ eassert (pdl->kind == SPECPDL_BACKTRACE); pdl->v.bt.nargs = n; }
125 127
126void set_backtrace_debug_on_exit (struct specbinding *pdl, bool doe) 128static void
129set_backtrace_debug_on_exit (struct specbinding *pdl, bool doe)
127{ eassert (pdl->kind == SPECPDL_BACKTRACE); pdl->v.bt.debug_on_exit = doe; } 130{ eassert (pdl->kind == SPECPDL_BACKTRACE); pdl->v.bt.debug_on_exit = doe; }
128 131
129/* Helper functions to scan the backtrace. */ 132/* Helper functions to scan the backtrace. */
130 133
131EXTERN_INLINE bool backtrace_p (struct specbinding *pdl) 134bool backtrace_p (struct specbinding *) EXTERNALLY_VISIBLE;
135struct specbinding *backtrace_top (void) EXTERNALLY_VISIBLE;
136struct specbinding *backtrace_next (struct specbinding *pdl) EXTERNALLY_VISIBLE;
137
138bool backtrace_p (struct specbinding *pdl)
132{ return pdl >= specpdl; } 139{ return pdl >= specpdl; }
133 140
134EXTERN_INLINE struct specbinding *backtrace_top (void) 141struct specbinding *
142backtrace_top (void)
135{ 143{
136 struct specbinding *pdl = specpdl_ptr - 1; 144 struct specbinding *pdl = specpdl_ptr - 1;
137 while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE) 145 while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
@@ -139,7 +147,8 @@ EXTERN_INLINE struct specbinding *backtrace_top (void)
139 return pdl; 147 return pdl;
140} 148}
141 149
142EXTERN_INLINE struct specbinding *backtrace_next (struct specbinding *pdl) 150struct specbinding *
151backtrace_next (struct specbinding *pdl)
143{ 152{
144 pdl--; 153 pdl--;
145 while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE) 154 while (backtrace_p (pdl) && pdl->kind != SPECPDL_BACKTRACE)
@@ -1938,7 +1947,7 @@ grow_specpdl (void)
1938 specpdl_ptr = specpdl + count; 1947 specpdl_ptr = specpdl + count;
1939} 1948}
1940 1949
1941LISP_INLINE void 1950void
1942record_in_backtrace (Lisp_Object function, Lisp_Object *args, ptrdiff_t nargs) 1951record_in_backtrace (Lisp_Object function, Lisp_Object *args, ptrdiff_t nargs)
1943{ 1952{
1944 eassert (nargs >= UNEVALLED); 1953 eassert (nargs >= UNEVALLED);