cleanup vm
This commit is contained in:
		
							parent
							
								
									71a56a6b75
								
							
						
					
					
						commit
						8767d57fbd
					
				|  | @ -640,10 +640,9 @@ pic_apply(pic_state *pic, struct pic_proc *proc, pic_value args) | |||
|     } | ||||
|     CASE(OP_LREF) { | ||||
|       pic_callinfo *ci = pic->ci; | ||||
|       struct pic_irep *irep; | ||||
|       struct pic_irep *irep = ci->irep; | ||||
| 
 | ||||
|       if (ci->cxt != NULL && ci->cxt->regs == ci->cxt->storage) { | ||||
|         irep = pic_get_proc(pic)->u.i.irep; | ||||
|         if (c.u.i >= irep->argc + irep->localc) { | ||||
|           PUSH(ci->cxt->regs[c.u.i - (ci->regs - ci->fp)]); | ||||
|           NEXT; | ||||
|  | @ -654,10 +653,9 @@ pic_apply(pic_state *pic, struct pic_proc *proc, pic_value args) | |||
|     } | ||||
|     CASE(OP_LSET) { | ||||
|       pic_callinfo *ci = pic->ci; | ||||
|       struct pic_irep *irep; | ||||
|       struct pic_irep *irep = ci->irep; | ||||
| 
 | ||||
|       if (ci->cxt != NULL && ci->cxt->regs == ci->cxt->storage) { | ||||
|         irep = pic_get_proc(pic)->u.i.irep; | ||||
|         if (c.u.i >= irep->argc + irep->localc) { | ||||
|           ci->cxt->regs[c.u.i - (ci->regs - ci->fp)] = POP(); | ||||
|           PUSH(pic_undef_value()); | ||||
|  | @ -734,7 +732,7 @@ pic_apply(pic_state *pic, struct pic_proc *proc, pic_value args) | |||
|       ci->fp = pic->sp - c.u.i; | ||||
|       ci->irep = NULL; | ||||
|       ci->cxt = NULL; | ||||
|       if (pic_proc_func_p(pic_proc_ptr(x))) { | ||||
|       if (pic_proc_func_p(proc)) { | ||||
| 
 | ||||
|         /* invoke! */ | ||||
|         v = proc->u.f.func(pic); | ||||
|  | @ -776,11 +774,7 @@ pic_apply(pic_state *pic, struct pic_proc *proc, pic_value args) | |||
| 	} | ||||
| 
 | ||||
| 	/* prepare cxt */ | ||||
|         if (pic_proc_irep_p(proc)) { | ||||
|           ci->up = proc->u.i.cxt; | ||||
|         } else { | ||||
|           ci->up = NULL; | ||||
|         } | ||||
|         ci->up = proc->u.i.cxt; | ||||
|         ci->regc = irep->capturec; | ||||
|         ci->regs = ci->fp + irep->argc + irep->localc; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki