pike.git / src / mapping.c

version» Context lines:

pike.git/src/mapping.c:391:   void check_mapping_for_destruct(struct mapping *m)   {    INT32 e;    struct keypair *k, **prev;    TYPE_FIELD ind_types, val_types;      #ifdef DEBUG    if(d_flag > 1) check_mapping_type_fields(m);   #endif    -  if((m->ind_types | m->val_types) & BIT_OBJECT) +  if((m->ind_types | m->val_types) & (BIT_OBJECT | BIT_FUNCTION))    {    val_types = ind_types = 0;    m->val_types |= BIT_INT;    for(e=0;e<m->hashsize;e++)    {    for(prev= m->hash + e;k=*prev;)    {    check_destructed(& k->val);    -  if(k->ind.type == T_OBJECT && !k->ind.u.object->prog) +  if((k->ind.type == T_OBJECT || k->ind.type == T_FUNCTION) && +  !k->ind.u.object->prog)    {    *prev=k->next;    free_svalue(& k->ind);    free_svalue(& k->val);    k->next=m->free_list;    m->free_list=k;    m->size--;    }else{    val_types |= 1 << k->val.type;    ind_types |= 1 << k->ind.type;