add pic_alloca
This commit is contained in:
		
							parent
							
								
									5946c3ab39
								
							
						
					
					
						commit
						549d939ce6
					
				|  | @ -696,6 +696,15 @@ pic_gc(pic_state *pic) | ||||||
|   gc_sweep_phase(pic); |   gc_sweep_phase(pic); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void * | ||||||
|  | pic_alloca(pic_state *pic, size_t n) | ||||||
|  | { | ||||||
|  |   static const pic_data_type t = { "pic_alloca", pic_free, 0 }; | ||||||
|  | 
 | ||||||
|  |   /* TODO: optimize */ | ||||||
|  |   return pic_data_alloc(pic, &t, pic_malloc(pic, n))->data; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| struct pic_object * | struct pic_object * | ||||||
| pic_obj_alloc_unsafe(pic_state *pic, size_t size, enum pic_tt tt) | pic_obj_alloc_unsafe(pic_state *pic, size_t size, enum pic_tt tt) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -137,6 +137,7 @@ void pic_free(pic_state *, void *); | ||||||
| 
 | 
 | ||||||
| typedef pic_value (*pic_func_t)(pic_state *); | typedef pic_value (*pic_func_t)(pic_state *); | ||||||
| 
 | 
 | ||||||
|  | void *pic_alloca(pic_state *, size_t); | ||||||
| pic_value pic_gc_protect(pic_state *, pic_value); | pic_value pic_gc_protect(pic_state *, pic_value); | ||||||
| size_t pic_gc_arena_preserve(pic_state *); | size_t pic_gc_arena_preserve(pic_state *); | ||||||
| void pic_gc_arena_restore(pic_state *, size_t); | void pic_gc_arena_restore(pic_state *, size_t); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki