remove pic_irep.ilen
This commit is contained in:
		
							parent
							
								
									5e58847721
								
							
						
					
					
						commit
						e96465f724
					
				| 
						 | 
				
			
			@ -701,8 +701,8 @@ codegen_context_destroy(pic_state *pic, codegen_context *cxt)
 | 
			
		|||
  irep->localc = (int)cxt->locals->len;
 | 
			
		||||
  irep->capturec = (int)cxt->captures->len;
 | 
			
		||||
  irep->code = pic_realloc(pic, cxt->code, sizeof(pic_code) * cxt->clen);
 | 
			
		||||
  irep->irep = pic_realloc(pic, cxt->irep, sizeof(struct pic_irep *) * cxt->ilen);
 | 
			
		||||
  irep->ilen = cxt->ilen;
 | 
			
		||||
  irep->irep = pic_realloc(pic, cxt->irep, sizeof(struct pic_irep *) * (cxt->ilen + 1));
 | 
			
		||||
  irep->irep[cxt->ilen] = NULL;
 | 
			
		||||
  irep->pool = pic_realloc(pic, cxt->pool, sizeof(pic_value) * cxt->plen);
 | 
			
		||||
  irep->plen = cxt->plen;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,7 +31,6 @@ struct pic_irep {
 | 
			
		|||
  int argc, localc, capturec;
 | 
			
		||||
  bool varg;
 | 
			
		||||
  struct pic_irep **irep;
 | 
			
		||||
  size_t ilen;
 | 
			
		||||
  pic_value *pool;
 | 
			
		||||
  size_t plen;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@ pic_irep_incref(pic_state PIC_UNUSED(*pic), struct pic_irep *irep)
 | 
			
		|||
void
 | 
			
		||||
pic_irep_decref(pic_state *pic, struct pic_irep *irep)
 | 
			
		||||
{
 | 
			
		||||
  size_t i;
 | 
			
		||||
  struct pic_irep **i;
 | 
			
		||||
 | 
			
		||||
  if (--irep->refc == 0) {
 | 
			
		||||
    pic_free(pic, irep->code);
 | 
			
		||||
| 
						 | 
				
			
			@ -23,8 +23,9 @@ pic_irep_decref(pic_state *pic, struct pic_irep *irep)
 | 
			
		|||
    irep->list.prev->next = irep->list.next;
 | 
			
		||||
    irep->list.next->prev = irep->list.prev;
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < irep->ilen; ++i) {
 | 
			
		||||
      pic_irep_decref(pic, irep->irep[i]);
 | 
			
		||||
    i = irep->irep;
 | 
			
		||||
    while (*i) {
 | 
			
		||||
      pic_irep_decref(pic, *i++);
 | 
			
		||||
    }
 | 
			
		||||
    pic_free(pic, irep->irep);
 | 
			
		||||
    pic_free(pic, irep);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue