From d6b2fe05ceed53ce96e1db14017e097749d3e1a7 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Wed, 24 Sep 2014 19:24:02 +0900 Subject: [PATCH] add many many assertions (pic_pop_try) --- error.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/error.c b/error.c index 92aa4710..be1e2337 100644 --- a/error.c +++ b/error.c @@ -122,13 +122,21 @@ pic_push_try(pic_state *pic) void pic_pop_try(pic_state *pic) { - struct pic_data *e; + pic_value cont, escape; assert(pic->xp > pic->xpbase); - e = pic_data_ptr(pic_attr_ref(pic, pic_proc_ptr(pic_attr_ref(pic, *--pic->xp, "@@escape")), "@@escape")); + cont = pic_attr_ref(pic, *--pic->xp, "@@escape"); - ((struct pic_escape *)e->data)->valid = false; + assert(pic_proc_p(cont)); + + escape = pic_attr_ref(pic, pic_proc_ptr(cont), "@@escape"); + + assert(pic_data_p(escape)); + + ((struct pic_escape *)pic_data_ptr(escape)->data)->valid = false; + + puts("pop_try done;"); } struct pic_error *