summaryrefslogtreecommitdiff
path: root/libguile/jit.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2019-05-21 13:36:37 +0200
committerAndy Wingo <wingo@pobox.com>2019-05-21 13:36:37 +0200
commite00936d46bdb4a2d90ffa1f5d5ccf4790dce84c8 (patch)
tree95715f536670d4eb6482824bec0fad3cd81396b3 /libguile/jit.c
parent2876f054e8f58367217628afca65418bc58ef75c (diff)
downloadguile-e00936d46bdb4a2d90ffa1f5d5ccf4790dce84c8.tar.gz
Allow jit_end to fail
* libguile/jit.c (emit_code): Emitting a constant table might cause us to fail.
Diffstat (limited to 'libguile/jit.c')
-rw-r--r--libguile/jit.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/libguile/jit.c b/libguile/jit.c
index 6c7399a75..0996c6152 100644
--- a/libguile/jit.c
+++ b/libguile/jit.c
@@ -1356,10 +1356,9 @@ emit_code (scm_jit_state *j, void (*emit) (scm_jit_state *))
emit (j);
- if (!jit_has_overflow (j->jit))
+ size_t size;
+ if (!jit_has_overflow (j->jit) && jit_end (j->jit, &size))
{
- size_t size;
- jit_end (j->jit, &size);
ASSERT (size <= (arena->size - arena->used));
DEBUG ("mcode: %p,+%zu\n", ret, size);
arena->used += size;