pike.git / src / program.c

version» Context lines:

pike.git/src/program.c:11041:    mc_counted_bytes += p->total_size;    break;    }       if (!(p->flags & PROGRAM_AVOID_CHECK)) {    int e;    struct program_constant *consts = p->constants;    struct inherit *inh = p->inherits;       for (e = p->num_constants - 1; e >= 0; e--) -  visit_svalue (&consts[e].sval, REF_TYPE_NORMAL); +  visit_svalue (&consts[e].sval, REF_TYPE_NORMAL, extra);       for (e = p->num_inherits - 1; e >= 0; e--) {    if (inh[e].parent) -  visit_object_ref (inh[e].parent, REF_TYPE_NORMAL); +  visit_object_ref (inh[e].parent, REF_TYPE_NORMAL, extra);       if (e && inh[e].prog) -  visit_program_ref (inh[e].prog, REF_TYPE_NORMAL); +  visit_program_ref (inh[e].prog, REF_TYPE_NORMAL, extra);    }       if (!(action & VISIT_COMPLEX_ONLY)) {    struct identifier *ids = p->identifiers;    struct pike_string **strs = p->strings;       for (e = p->num_inherits - 1; e >= 0; e--) {    if (inh[e].name) -  visit_string_ref (inh[e].name, REF_TYPE_NORMAL); +  visit_string_ref (inh[e].name, REF_TYPE_NORMAL, extra);    }       for (e = p->num_identifiers - 1; e >= 0; e--) {    struct identifier *id = ids + e; -  visit_string_ref (id->name, REF_TYPE_NORMAL); -  visit_type_ref (id->type, REF_TYPE_NORMAL); +  visit_string_ref (id->name, REF_TYPE_NORMAL, extra); +  visit_type_ref (id->type, REF_TYPE_NORMAL, extra);    }       for (e = p->num_strings - 1; e >= 0; e--) -  visit_string_ref (strs[e], REF_TYPE_NORMAL); +  visit_string_ref (strs[e], REF_TYPE_NORMAL, extra);    }       /* Strong ref follows. It must be last. */    if (p->parent) -  visit_program_ref (p->parent, REF_TYPE_STRONG); +  visit_program_ref (p->parent, REF_TYPE_STRONG, extra);    }   }      static void gc_check_program(struct program *p);      void gc_mark_program_as_referenced(struct program *p)   {    debug_malloc_touch(p);       if (p->flags & PROGRAM_AVOID_CHECK) {