don't use xhash in codegen
This commit is contained in:
		
							parent
							
								
									11ed51b236
								
							
						
					
					
						commit
						d500dd5d76
					
				| 
						 | 
				
			
			@ -1262,24 +1262,24 @@ create_activation(codegen_state *state)
 | 
			
		|||
  pic_state *pic = state->pic;
 | 
			
		||||
  codegen_context *cxt = state->cxt;
 | 
			
		||||
  size_t i, n;
 | 
			
		||||
  xhash regs;
 | 
			
		||||
  size_t offset;
 | 
			
		||||
  struct pic_reg *regs;
 | 
			
		||||
 | 
			
		||||
  xh_init_ptr(®s, sizeof(size_t));
 | 
			
		||||
  regs = pic_make_reg(pic);
 | 
			
		||||
 | 
			
		||||
  offset = 1;
 | 
			
		||||
  for (i = 0; i < kv_size(cxt->args); ++i) {
 | 
			
		||||
    n = i + offset;
 | 
			
		||||
    xh_put_ptr(®s, kv_A(cxt->args, i), &n);
 | 
			
		||||
    pic_reg_set(pic, regs, kv_A(cxt->args, i), pic_size_value(n));
 | 
			
		||||
  }
 | 
			
		||||
  offset += i;
 | 
			
		||||
  for (i = 0; i < kv_size(cxt->locals); ++i) {
 | 
			
		||||
    n = i + offset;
 | 
			
		||||
    xh_put_ptr(®s, kv_A(cxt->locals, i), &n);
 | 
			
		||||
    pic_reg_set(pic, regs, kv_A(cxt->locals, i), pic_size_value(n));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  for (i = 0; i < kv_size(cxt->captures); ++i) {
 | 
			
		||||
    n = xh_val(xh_get_ptr(®s, kv_A(cxt->captures, i)), size_t);
 | 
			
		||||
    n = (size_t)pic_int(pic_reg_ref(pic, regs,  kv_A(cxt->captures, i)));
 | 
			
		||||
    if (n <= kv_size(cxt->args) || (cxt->varg && n == kv_size(cxt->args) + 1)) {
 | 
			
		||||
      /* copy arguments to capture variable area */
 | 
			
		||||
      emit_i(state, OP_LREF, (int)n);
 | 
			
		||||
| 
						 | 
				
			
			@ -1288,8 +1288,6 @@ create_activation(codegen_state *state)
 | 
			
		|||
      emit_n(state, OP_PUSHUNDEF);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  xh_destroy(®s);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue