use proc_env in callcc implementation
This commit is contained in:
		
							parent
							
								
									0ea80d1f34
								
							
						
					
					
						commit
						9573c6db65
					
				|  | @ -99,7 +99,7 @@ cont_call(pic_state *pic) | |||
| 
 | ||||
|   pic_get_args(pic, "*", &argc, &argv); | ||||
| 
 | ||||
|   e = pic_data_ptr(pic_attr_ref(pic, pic_obj_value(pic_get_proc(pic)), "@@escape")); | ||||
|   e = pic_data_ptr(pic_proc_env_ref(pic, pic_get_proc(pic), "escape")); | ||||
|   ((struct pic_cont *)e->data)->results = pic_list_by_array(pic, argc, argv); | ||||
| 
 | ||||
|   pic_load_point(pic, e->data); | ||||
|  | @ -121,7 +121,7 @@ pic_make_cont(pic_state *pic, struct pic_cont *cont) | |||
|   e = pic_data_alloc(pic, &cont_type, cont); | ||||
| 
 | ||||
|   /* save the escape continuation in proc */ | ||||
|   pic_attr_set(pic, pic_obj_value(c), "@@escape", pic_obj_value(e)); | ||||
|   pic_proc_env_set(pic, c, "escape", pic_obj_value(e)); | ||||
| 
 | ||||
|   return c; | ||||
| } | ||||
|  |  | |||
|  | @ -73,7 +73,7 @@ native_exception_handler(pic_state *pic) | |||
| 
 | ||||
|   pic->err = err; | ||||
| 
 | ||||
|   cont = pic_proc_ptr(pic_attr_ref(pic, pic_obj_value(pic_get_proc(pic)), "@@escape")); | ||||
|   cont = pic_proc_ptr(pic_proc_env_ref(pic, pic_get_proc(pic), "cont")); | ||||
| 
 | ||||
|   pic_apply1(pic, cont, pic_false_value()); | ||||
| 
 | ||||
|  | @ -89,7 +89,7 @@ pic_push_try(pic_state *pic, struct pic_proc *cont) | |||
| 
 | ||||
|   handler = pic_make_proc(pic, native_exception_handler, "(native-exception-handler)"); | ||||
| 
 | ||||
|   pic_attr_set(pic, pic_obj_value(handler), "@@escape", pic_obj_value(cont)); | ||||
|   pic_proc_env_set(pic, handler, "cont", pic_obj_value(cont)); | ||||
| 
 | ||||
|   if (pic->xp >= pic->xpend) { | ||||
|     xp_len = (size_t)(pic->xpend - pic->xpbase) * 2; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki