summaryrefslogtreecommitdiffstats
path: root/unwind.c
diff options
context:
space:
mode:
Diffstat (limited to 'unwind.c')
-rw-r--r--unwind.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/unwind.c b/unwind.c
index 0d8a48e4..4bb6646c 100644
--- a/unwind.c
+++ b/unwind.c
@@ -166,6 +166,22 @@ val uw_set_match_context(val context)
return context;
}
+void uw_push_debug(uw_frame_t *fr, val func, val args,
+ val ub_p_a_pairs, val bindings, val data,
+ val line, val chr)
+{
+ fr->db.type = UW_DBG;
+ fr->db.func = func;
+ fr->db.args = args;
+ fr->db.ub_p_a_pairs = args;
+ fr->db.bindings = bindings;
+ fr->db.data = data;
+ fr->db.line = line;
+ fr->db.chr = chr;
+ fr->db.up = uw_stack;
+ uw_stack = fr;
+}
+
void uw_pop_frame(uw_frame_t *fr)
{
assert (fr == uw_stack);
@@ -176,6 +192,11 @@ void uw_pop_frame(uw_frame_t *fr)
}
}
+uw_frame_t *uw_current_frame(void)
+{
+ return uw_stack;
+}
+
val uw_block_return(val tag, val result)
{
uw_frame_t *ex;