pike.git / src / array.c

version» Context lines:

pike.git/src/array.c:2102:       if(!a->size)    return mkefuncallnode("aggregate",0);    if (a->size == 1)    return mkefuncallnode("aggregate", mksvaluenode(ITEM(a)));       if(array_fix_type_field(a) == BIT_INT)    {    debug_malloc_touch(a);    for(e=0; e<a->size; e++) -  if(ITEM(a)[e].u.integer != 0) +  if(ITEM(a)[e].u.integer || SUBTYPEOF(ITEM(a)[e]))    break;    if(e == a->size)    {    return mkefuncallnode("allocate",mkintnode(a->size));    }    }    debug_malloc_touch(a);    if(!is_more_than_one_bit(a->type_field))    {    e=0;    debug_malloc_touch(a);    switch(a->type_field)    {    case BIT_INT:    for(e=1; e<a->size; e++) -  if(ITEM(a)[e].u.integer != ITEM(a)[0].u.integer) +  if((ITEM(a)[e].u.integer != ITEM(a)[0].u.integer) || +  (SUBTYPEOF(ITEM(a)[e]) != SUBTYPEOF(ITEM(a)[0]))) {    break; -  if(e==a->size && ITEM(a)[0].u.integer==0) +  } +  if(e==a->size && ITEM(a)[0].u.integer==0 && !SUBTYPEOF(ITEM(a)[0]))    return mkefuncallnode("allocate",mkintnode(a->size));    break;       case BIT_STRING:    case BIT_PROGRAM:    for(e=1; e<a->size; e++)    if(ITEM(a)[e].u.refs != ITEM(a)[0].u.refs)    break;    break;