diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2018-06-29 11:14:36 -0700 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2018-06-29 11:15:06 -0700 |
| commit | e980a3c992c13178052f5994b063be58a2f95a2d (patch) | |
| tree | c2e145556e7666ef0babc01284c29bfb8966161e /src/lisp.h | |
| parent | eec71ebdb50c3110bb747db57c7d7f04b6d14ad1 (diff) | |
| download | emacs-e980a3c992c13178052f5994b063be58a2f95a2d.tar.gz | |
* src/lisp.h: Omit obsolete comment re bytecode stack.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/lisp.h b/src/lisp.h index 56ad8b814b6..b2449cb87d3 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3044,15 +3044,13 @@ extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int); } while (false) -/* Elisp uses several stacks: - - the C stack. - - the bytecode stack: used internally by the bytecode interpreter. - Allocated from the C stack. - - The specpdl stack: keeps track of active unwind-protect and - dynamic-let-bindings. Allocated from the `specpdl' array, a manually - managed stack. - - The handler stack: keeps track of active catch tags and condition-case - handlers. Allocated in a manually managed stack implemented by a +/* Elisp uses multiple stacks: + - The C stack. + - The specpdl stack keeps track of backtraces, unwind-protects and + dynamic let-bindings. It is allocated from the 'specpdl' array, + a manually managed stack. + - The handler stack keeps track of active catch tags and condition-case + handlers. It is allocated in a manually managed stack implemented by a doubly-linked list allocated via xmalloc and never freed. */ /* Structure for recording Lisp call stack for backtrace purposes. */ @@ -3131,7 +3129,7 @@ SPECPDL_INDEX (void) control structures. A struct handler contains all the information needed to restore the state of the interpreter after a non-local jump. - handler structures are chained together in a doubly linked list; the `next' + Handler structures are chained together in a doubly linked list; the `next' member points to the next outer catchtag and the `nextfree' member points in the other direction to the next inner element (which is typically the next free element since we mostly use it on the deepest handler). |
