pike.git / src / array.c

version» Context lines:

pike.git/src/array.c:2736: Inside #if defined(PIKE_DEBUG)
   struct array *a;    for (a = first_array; a; a = a->next)    check_array(a);   }   #endif /* PIKE_DEBUG */         PMOD_EXPORT void visit_array (struct array *a, int action, void *extra)   {    visit_enter(a, T_ARRAY, extra); -  switch (action) { +  switch (action & VISIT_MODE_MASK) {   #ifdef PIKE_DEBUG    default:    Pike_fatal ("Unknown visit action %d.\n", action);    case VISIT_NORMAL:    case VISIT_COMPLEX_ONLY:    break;   #endif    case VISIT_COUNT_BYTES:    mc_counted_bytes += sizeof (struct array) +    (a->malloced_size - 1) * sizeof (struct svalue);    break;    }    -  if (a->type_field & +  if (!(action & VISIT_NO_REFS) && +  a->type_field &    (action & VISIT_COMPLEX_ONLY ? BIT_COMPLEX : BIT_REF_TYPES)) {    size_t e, s = a->size;    int ref_type = a->flags & ARRAY_WEAK_FLAG ? REF_TYPE_WEAK : REF_TYPE_NORMAL;    for (e = 0; e < s; e++)    visit_svalue (ITEM (a) + e, ref_type, extra);    }    visit_leave(a, T_ARRAY, extra);   }      static void gc_check_array(struct array *a)