pike.git / src / las.cmod

version» Context lines:

pike.git/src/las.cmod:1781:    } else {    /* 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); +  INIT_CALL_STATE(cs, NULL);    a = check_splice_call(NULL, 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);
pike.git/src/las.cmod:3821:    /* <lval> <op>= <rval> */    {    const char *efun_name = NULL;    struct pike_string *efun_string = NULL;    int orig_flags;    node *efun_node = NULL;    struct pike_type *f;    enum Pike_opcodes opcode = n->token;    struct call_state cs;    -  INIT_CALL_STATE(cs); -  +     switch(opcode) {    case F_AND_EQ:    efun_name = "`&";    break;    case F_OR_EQ:    efun_name = "`|";    break;    case F_XOR_EQ:    efun_name = "`^";    break;
pike.git/src/las.cmod:3894:       /* 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));    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);   
pike.git/src/las.cmod:4112:    struct pike_string *name = NULL;    struct call_state cs;   #ifdef PIKE_DEBUG    int save_l_flag = l_flag;       if (c->lex.pragmas & ID_COMPILER_TRACE) {    l_flag = 3;    }   #endif    -  INIT_CALL_STATE(cs); +     name = get_name_of_function(CAR(n));      #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));       if (!f) {    /* Errors have been generated. */   #ifdef PIKE_DEBUG    l_flag = save_l_flag;   #endif    copy_pike_type(n->type, mixed_type_string);
pike.git/src/las.cmod:4420:    struct call_state cs;    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); +  INIT_CALL_STATE(cs, sscanf_name);    sscanf_type = new_check_call(sscanf_name, 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).",