rest array got by pic_get_args has a dynamic extent; that is, we cannot

store it to a heap object when we are going to rewind that stack and
restore an old continuation.
This commit is contained in:
Yuichi Nishiwaki
2014-02-02 12:27:48 +09:00
parent cb3128d241
commit 19db4bb6b2
3 changed files with 22 additions and 11 deletions
+2 -2
View File
@@ -30,8 +30,7 @@ struct pic_cont {
struct pic_object *arena[PIC_ARENA_SIZE];
int arena_idx;
size_t argc;
pic_value *argv;
pic_value results;
};
#define PIC_BLK_INCREF(pic,blk) do { \
@@ -54,6 +53,7 @@ struct pic_cont {
pic_value pic_callcc(pic_state *, struct pic_proc *);
pic_value pic_values(pic_state *, size_t, ...);
pic_value pic_values_by_array(pic_state *, size_t, pic_value *);
pic_value pic_values_by_list(pic_state *, pic_value);
#if defined(__cplusplus)
}