pike.git / src / las.cmod

version» Context lines:

pike.git/src/las.cmod:1782:    /* Attempt to get the return type for the function. */    struct pike_type *a, *b = NULL;    struct call_state cs;    a = get_type_of_svalue(Pike_sp-1);    /* Note: check_splice_call() below eats a reference from a.    * Note: CALL_INHIBIT_WARNINGS is needed since we don't    * provide a function name (and we don't want    * warnings here anyway).    */    INIT_CALL_STATE(cs, NULL); -  a = check_splice_call(NULL, a, &cs, mixed_type_string, NULL, +  a = check_splice_call(a, &cs, mixed_type_string, NULL,    CALL_INHIBIT_WARNINGS);    if (a) {    b = new_get_return_type(a, &cs, 0);    free_type(a);    }    FREE_CALL_STATE(cs);    if (b) {    push_finished_type(b);    free_type(b);    break;
pike.git/src/las.cmod:3893:    /* NOTE: new_check_call() steals a reference from f! */    copy_pike_type(f, efun_node->type);       free_node(efun_node);       /* NOTE: Temporarily convert the node into an argument list node    * for new_check_call(),    */    n->token = F_ARG_LIST;    INIT_CALL_STATE(cs, efun_string); -  f = debug_malloc_pass(new_check_call(efun_string, f, n, &cs, 0)); +  f = debug_malloc_pass(new_check_call(f, n, &cs, 0));    n->token = opcode;    if (f) {    struct pike_type *ret = new_get_return_type(f, &cs, 0);    free_type(f);    f = ret;    }       FREE_CALL_STATE(cs);       if (f && CAR(n)) {
pike.git/src/las.cmod:4123:   #ifdef PIKE_DEBUG    if (l_flag>2)    safe_pike_fprintf (stderr, "Checking call to %S at %S:%ld.\n", name,    n->current_file, (long)n->line_number);   #endif /* PIKE_DEBUG */       INIT_CALL_STATE(cs, name);       /* NOTE: new_check_call() steals a reference from f! */    copy_pike_type(f, CAR(n)->type); -  f = debug_malloc_pass(new_check_call(name, f, CDR(n), &cs, 0)); +  f = debug_malloc_pass(new_check_call(f, CDR(n), &cs, 0));       if (!f) {    /* Errors have been generated. */   #ifdef PIKE_DEBUG    l_flag = save_l_flag;   #endif    copy_pike_type(n->type, mixed_type_string);       FREE_CALL_STATE(cs);    break;
pike.git/src/las.cmod:4421:    MAKE_CONST_STRING(sscanf_name, "sscanf");    if (n->token == F_SSCANF_80) {    add_ref(sscanf_type = sscanf_80_type_string);    } else {    add_ref(sscanf_type = sscanf_type_string);    }    args = mknode(F_ARG_LIST, CAR(n), CDR(n));    add_ref(CAR(n));    if (CDR(n)) add_ref(CDR(n));    INIT_CALL_STATE(cs, sscanf_name); -  sscanf_type = new_check_call(sscanf_name, sscanf_type, args, &cs, 0); +  sscanf_type = new_check_call(sscanf_type, args, &cs, 0);    free_node(args);    if (sscanf_type) {    if (!(n->type = new_get_return_type(sscanf_type, &cs, 0))) {    struct pike_type *expected;    if ((expected = get_first_arg_type(sscanf_type, CALL_NOT_LAST_ARG))) {    yytype_report(REPORT_ERROR,    NULL, 0, expected,    NULL, 0, NULL,    0, "Too few arguments to sscanf (got %d).",    cs.argno);