pike.git / src / array.c

version» Context lines:

pike.git/src/array.c:16:   #include "pike_types.h"   #include "fsort.h"   #include "builtin_functions.h"   #include "pike_memory.h"   #include "gc.h"   #include "main.h"   #include "security.h"   #include "stuff.h"   #include "bignum.h"    - RCSID("$Id: array.c,v 1.116 2001/08/31 06:53:36 hubbe Exp $"); + RCSID("$Id: array.c,v 1.117 2001/09/11 05:37:26 hubbe Exp $");      PMOD_EXPORT struct array empty_array=   {    PIKE_CONSTANT_MEMOBJ_INIT(1), /* Never free */    &weak_empty_array, /* Next */    &weak_shrink_empty_array, /* previous (circular) */    0, /* Size = 0 */    0, /* malloced Size = 0 */    0, /* no types */    0, /* no flags */
pike.git/src/array.c:1613:   {    struct svalue s;    INT32 e;       array_fix_type_field(a);    if(!a->size)    return mkefuncallnode("aggregate",0);       if(a->type_field == BIT_INT)    { +  debug_malloc_touch(a);    for(e=0; e<a->size; e++)    if(ITEM(a)[e].u.integer != 0)    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)    break;    if(e==a->size && ITEM(a)[0].u.integer==0)    return mkefuncallnode("allocate",mkintnode(a->size));    break;   
pike.git/src/array.c:1649:    break;    break;       case BIT_FUNCTION:    for(e=1; e<a->size; e++)    if(ITEM(a)[e].u.object != ITEM(a)[0].u.object ||    ITEM(a)[e].subtype != ITEM(a)[0].subtype)    break;    break;    } +  debug_malloc_touch(a);    if(e == a->size)    return mkefuncallnode("allocate",mknode(F_ARG_LIST,    mkintnode(a->size),    mksvaluenode(ITEM(a))));    }       if(check_that_array_is_constant(a))    { -  +  debug_malloc_touch(a);    s.type=T_ARRAY;    s.subtype=0;    s.u.array=a;    return mkconstantsvaluenode(&s);    }else{    node *ret=0; -  +  debug_malloc_touch(a);    for(e=0; e<a->size; e++)    ret=mknode(F_ARG_LIST,ret,mksvaluenode(ITEM(a)+e));    return mkefuncallnode("aggregate",ret);    }   }      PMOD_EXPORT void push_array_items(struct array *a)   {    check_stack(a->size);    check_array_for_destruct(a);
pike.git/src/array.c:2301: Inside #if defined(PIKE_DEBUG)
   fprintf(stderr,"\n");    simple_describe_array(a);   }   #endif         void zap_all_arrays(void)   {    struct array *a,*next;    -  a=&empty_array; -  do +  for(a=empty_array.next;a!=&empty_array;a=next)    {      #if defined(PIKE_DEBUG) && defined(DEBUG_MALLOC)    if(verbose_debug_exit && a!=&empty_array &&    a!=&weak_empty_array && a!=&weak_shrink_empty_array)    describe(a);   #endif       add_ref(a);    free_svalues(ITEM(a), a->size, a->type_field);    a->size=0;    -  if(!(next=a->next)) -  fatal("Null pointer in array list.\n"); -  +     SET_NEXT_AND_FREE(a,free_array); -  } while (a != & empty_array); +     } -  + }         void count_memory_in_arrays(INT32 *num_, INT32 *size_)   {    INT32 num=0, size=0;    struct array *m;    for(m=empty_array.next;m!=&weak_empty_array;m=m->next)    {    num++;    size+=sizeof(struct array)+