pike.git / src / program.c

version» Context lines:

pike.git/src/program.c:7931:    }    for (i = 0; i < p->num_inherits; i++) {    struct inherit *inh = p->inherits + i;    if (inh->inherit_level > 0) {    push_svalue(res + inh->inherit_level - 1);    } else {    push_undefined();    }    if (inh->annotations) {    ref_push_array(inh->annotations); +  f_mkmultiset(1);    f_add(2);    found = 1;    }    assign_svalue(res + inh->inherit_level, Pike_sp - 1);    pop_stack();    }    if (found) {    return aggregate_array(Pike_sp - res);    }    pop_n_elems(Pike_sp - res);
pike.git/src/program.c:7970:    id = ID_FROM_INT(p, e);    if (IDENTIFIER_IS_ALIAS(id->identifier_flags)) {    /* FIXME!    */    continue;    } else if (IDENTIFIER_IS_CONSTANT(id->identifier_flags)) {    if (id->func.const_info.offset >= 0) {    struct reference *ref = PTR_FROM_INT(p, e);    struct program *p2 = PROG_FROM_PTR(p, ref);    struct svalue *val = &p2->constants[id->func.const_info.offset].sval; -  struct array *inh_ann = NULL; +  struct multiset *inh_ann = NULL;    if ((TYPEOF(*val) != T_PROGRAM) ||    !(val->u.program->flags & PROGRAM_USES_PARENT)) {    if (inherit_annotations &&    (TYPEOF(ITEM(inherit_annotations)[ref->inherit_offset]) == -  PIKE_T_ARRAY)) { -  inh_ann = ITEM(inherit_annotations)[ref->inherit_offset].u.array; -  ref_push_array(inh_ann); +  PIKE_T_MULTISET)) { +  inh_ann = ITEM(inherit_annotations)[ref->inherit_offset].u.multiset; +  ref_push_multiset(inh_ann);    }    if ((p2->num_annotations > ref->identifier_offset) &&    p2->annotations[ref->identifier_offset]) {    ref_push_array(p2->annotations[ref->identifier_offset]); -  +  f_mkmultiset(1);    if (inh_ann) {    f_add(2);    }    } else if (!inh_ann) {    push_int(0);    }    n++;    }    } else {    /* FIXME: Prototype constant. */