publish pic_make_error

This commit is contained in:
Yuichi Nishiwaki 2014-09-17 00:43:03 +09:00
parent 486c99bf6f
commit 061ddb58ee
2 changed files with 6 additions and 4 deletions

View File

@ -71,8 +71,8 @@ pic_pop_try(pic_state *pic)
pic->jmp = try_jmp->prev_jmp; pic->jmp = try_jmp->prev_jmp;
} }
static struct pic_error * struct pic_error *
make_error(pic_state *pic, pic_sym type, pic_str *msg, pic_value irrs) pic_make_error(pic_state *pic, pic_sym type, const char *msg, pic_value irrs)
{ {
struct pic_error *e; struct pic_error *e;
pic_str *stack; pic_str *stack;
@ -81,7 +81,7 @@ make_error(pic_state *pic, pic_sym type, pic_str *msg, pic_value irrs)
e = (struct pic_error *)pic_obj_alloc(pic, sizeof(struct pic_error), PIC_TT_ERROR); e = (struct pic_error *)pic_obj_alloc(pic, sizeof(struct pic_error), PIC_TT_ERROR);
e->type = type; e->type = type;
e->msg = msg; e->msg = pic_make_str_cstr(pic, msg);
e->irrs = irrs; e->irrs = irrs;
e->stack = stack; e->stack = stack;
@ -109,7 +109,7 @@ pic_throw(pic_state *pic, pic_sym type, const char *msg, pic_value irrs)
{ {
struct pic_error *e; struct pic_error *e;
e = make_error(pic, type, pic_make_str_cstr(pic, msg), irrs); e = pic_make_error(pic, type, msg, irrs);
pic_raise(pic, pic_obj_value(e)); pic_raise(pic, pic_obj_value(e));
} }

View File

@ -49,6 +49,8 @@ struct pic_error {
#define pic_error_p(v) (pic_type(v) == PIC_TT_ERROR) #define pic_error_p(v) (pic_type(v) == PIC_TT_ERROR)
#define pic_error_ptr(v) ((struct pic_error *)pic_ptr(v)) #define pic_error_ptr(v) ((struct pic_error *)pic_ptr(v))
struct pic_error *pic_make_error(pic_state *, pic_sym, const char *, pic_list);
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif #endif