summaryrefslogtreecommitdiffstats
path: root/lisplib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-03-04 06:06:07 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-03-04 06:06:07 -0800
commit12bd13a955936fe1ee30bb4f2a202ecadd2cce9e (patch)
tree6acc97847d688492228bc471cb9ab469ae13047b /lisplib.c
parentf3caaf8efd66511eeff194c198e59308c27de54d (diff)
downloadtxr-12bd13a955936fe1ee30bb4f2a202ecadd2cce9e.tar.gz
txr-12bd13a955936fe1ee30bb4f2a202ecadd2cce9e.tar.bz2
txr-12bd13a955936fe1ee30bb4f2a202ecadd2cce9e.zip
compiler: frame depth bug in load-time.
* share/txr/stdlib/compiler.tl (compile-in-toplevel): This macro must not save and restore the nlev variable of the compiler. The nlev variable is a maximum: it measures the maximum environment depth, establishing the depth of the display needed when executing the code of the resulting VM description. By saving and restoring this variable around the compilation of a load-time form, we cause the load-time form's contribution to the maximum to be ignored. If the load-time form perpetrates nesting that is deeper than other code, it will execute with an under-sized display, causing an assertion crash or corruption.
Diffstat (limited to 'lisplib.c')
0 files changed, 0 insertions, 0 deletions