pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.c:5633:    return 0;    }   }      /* Get the type for the specified argument in a function type.    * Argument number -1 is the return type.    * True arguments are counted from zero.    */   struct pike_type *get_argument_type(struct pike_type *fun, int arg_no)   { -  struct pike_type *tmp; +  struct pike_type *tmp, *tmp2;       loop:    switch(fun->type) {    case T_OR: -  return or_pike_types(get_argument_type(fun->car, arg_no), -  get_argument_type(fun->cdr, arg_no), +  fun = or_pike_types(tmp = get_argument_type(fun->car, arg_no), +  tmp2 = get_argument_type(fun->cdr, arg_no),    1); -  +  free_type(tmp); +  free_type(tmp2); +  return fun; +     case T_FUNCTION:    if (arg_no > 0) {    arg_no--;    fun = fun->cdr;    goto loop;    }    /* FALL_THROUGH */    case T_MANY:    if (arg_no < 0) {    add_ref(fun->cdr);