summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-10-21 06:34:27 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-10-21 06:34:27 -0700
commit0d3037d0739400df5a7cdf197690b54a671b897a (patch)
tree00195669927c171d5afc5faf91512478ad1d6cb7
parent0279e408933e94213ca09381f4bc183859072cf0 (diff)
downloadtxr-0d3037d0739400df5a7cdf197690b54a671b897a.tar.gz
txr-0d3037d0739400df5a7cdf197690b54a671b897a.tar.bz2
txr-0d3037d0739400df5a7cdf197690b54a671b897a.zip
Block continuation capture across printer.
* lib.c (obj_print): Applying a continuation guard around the body of the function. This seems prudent.
-rw-r--r--lib.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 7fcfb875..8ffadc8c 100644
--- a/lib.c
+++ b/lib.c
@@ -9451,6 +9451,9 @@ val obj_print(val obj, val out, val pretty)
val save_indent = get_indent(out);
struct strm_ctx *ctx_orig = get_ctx(out);
struct strm_ctx *volatile ctx = ctx_orig, ctx_struct;
+ uw_frame_t cont_guard;
+
+ uw_push_guard(&cont_guard);
uw_simple_catch_begin;
@@ -9481,6 +9484,8 @@ val obj_print(val obj, val out, val pretty)
uw_catch_end;
+ uw_pop_frame(&cont_guard);
+
return ret;
}