load_stdlib releases arena objects every time evaluating exprssion
This commit is contained in:
		
							parent
							
								
									6581177ec5
								
							
						
					
					
						commit
						f146287eff
					
				|  | @ -25,7 +25,7 @@ pic_load_stdlib(pic_state *pic) | |||
| { | ||||
|   static const char *fn = "piclib/built-in.scm"; | ||||
|   FILE *file; | ||||
|   int n, i; | ||||
|   int n, i, ai; | ||||
|   pic_value v, vs; | ||||
|   struct pic_proc *proc; | ||||
| 
 | ||||
|  | @ -41,6 +41,7 @@ pic_load_stdlib(pic_state *pic) | |||
|     abort(); | ||||
|   } | ||||
| 
 | ||||
|   ai = pic_gc_arena_preserve(pic); | ||||
|   for (i = 0; i < n; ++i, vs = pic_cdr(pic, vs)) { | ||||
|     v = pic_car(pic, vs); | ||||
| 
 | ||||
|  | @ -57,6 +58,8 @@ pic_load_stdlib(pic_state *pic) | |||
|       fputs("fatal error: built-in.scm evaluation failure", stderr); | ||||
|       abort(); | ||||
|     } | ||||
| 
 | ||||
|     pic_gc_arena_restore(pic, ai); | ||||
|   } | ||||
| 
 | ||||
| #if DEBUG | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki