pike.git / src / operators.c

version» Context lines:

pike.git/src/operators.c:222:    case T_OBJECT:    if(!sp[-1].u.object->prog) {    /* Casting a destructed object should be like casting a zero. */    pop_stack();    push_int (0);    }       else {    {    struct object *o = sp[-1].u.object; -  struct pike_string *s; +     struct program *p = o->prog->inherits[SUBTYPEOF(sp[-1])].prog;    int f = FIND_LFUN(p, LFUN_CAST);    if(f == -1)    Pike_error("No cast method in object.\n"); -  REF_MAKE_CONST_STRING(s, "int"); -  push_string(s); +  ref_push_string(literal_int_string);    apply_low(o, f, 1);    stack_pop_keep_top();    }       if(TYPEOF(sp[-1]) != PIKE_T_INT)    {    if(TYPEOF(sp[-1]) == T_OBJECT && sp[-1].u.object->prog)    {    struct object *o = sp[-1].u.object;    int f = FIND_LFUN(o->prog->inherits[SUBTYPEOF(sp[-1])].prog,    LFUN__IS_TYPE);    if( f != -1)    { -  struct pike_string *s; -  REF_MAKE_CONST_STRING(s, "int"); -  push_string(s); +  ref_push_string(literal_int_string);    apply_low(o, f, 1);    f=!UNSAFE_IS_ZERO(sp-1);    pop_stack();    if(f) return;    }    }    Pike_error("Cast failed, wanted int, got %s\n",    get_name_of_type(TYPEOF(sp[-1])));    }    else if(SUBTYPEOF(sp[-1]) == NUMBER_UNDEFINED)
pike.git/src/operators.c:330:    if(!sp[-1].u.object->prog) {    /* Casting a destructed object should be like casting a zero. */    pop_stack();    push_constant_text("0");    } else {    {    struct object *o = sp[-1].u.object;    int f = FIND_LFUN(o->prog->inherits[SUBTYPEOF(sp[-1])].prog, LFUN_CAST);    if(f == -1)    Pike_error("No cast method in object.\n"); -  push_constant_text("string"); +  ref_push_string(literal_string_string);    apply_low(o, f, 1);    stack_pop_keep_top();    }       if(TYPEOF(sp[-1]) != PIKE_T_STRING)    {    if(TYPEOF(sp[-1])==PIKE_T_INT && SUBTYPEOF(sp[-1])==NUMBER_UNDEFINED)    Pike_error("Cannot cast this object to string.\n");    if(TYPEOF(sp[-1]) == T_OBJECT && sp[-1].u.object->prog)    {    struct object *o = sp[-1].u.object;    int f = FIND_LFUN(o->prog->inherits[SUBTYPEOF(sp[-1])].prog,    LFUN__IS_TYPE);    if( f != -1)    { -  REF_MAKE_CONST_STRING(s, "string"); -  push_string(s); +  ref_push_string(literal_string_string);    apply_low(o, f, 1);    f=!UNSAFE_IS_ZERO(sp-1);    pop_stack();    if(f) return;    }    }    Pike_error("Cast failed, wanted string, got %s\n",    get_name_of_type(TYPEOF(sp[-1])));    }    }