pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.c:5641:    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; +     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),    1);    case T_FUNCTION:    if (arg_no > 0) {    arg_no--;    fun = fun->cdr;
pike.git/src/pike_types.c:5678:    type_stack_mark();    push_finished_type(fun = get_argument_type(fun->car, arg_no));    push_type(T_ARRAY);    free_type(fun);    return pop_unfinished_type();    }    return get_argument_type(fun->car, arg_no);       case PIKE_T_ATTRIBUTE:    type_stack_mark(); -  push_finished_type(get_argument_type(fun->cdr, arg_no)); +  push_finished_type(tmp = get_argument_type(fun->cdr, arg_no));    push_type_attribute((struct pike_string *)(fun->car)); -  +  free_type(tmp);    return pop_unfinished_type();       case PIKE_T_SCOPE:    case T_ASSIGN:    case PIKE_T_NAME:    fun = fun->cdr;    goto loop;       default:   #if 0