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])));    }    }
pike.git/src/operators.c:391:       case 1:    if ((unsigned INT32) val <= 0xffff)    break;    shift = 2;    /* FALL THROUGH */       case 2:   #if SIZEOF_INT_TYPE > 4    if (val < MIN_INT32 || val > MAX_INT32) -  Pike_error ("cast: Item %d is too large: %"PRINTPIKEINT"x.\n", +  Pike_error ("Item %d is too large: %"PRINTPIKEINT"x.\n",    i, val);   #endif    break;    }    }       s = begin_wide_shared_string(a->size, shift);    switch(shift) {    case 0:    for(i = a->size; i--; ) {
pike.git/src/operators.c:511:    if (run_time_type == T_PROGRAM) {    if (IS_UNDEFINED(Pike_sp-1)) {    pop_stack();    f_object_program(1);    return;    }    }       stack_pop_keep_top();    +  if(TYPEOF(sp[-1]) == T_INT && +  SUBTYPEOF(sp[-1]) == NUMBER_UNDEFINED) +  Pike_error("Cannot cast this object to %s.\n", +  get_name_of_type(type->type)); +     } else       switch(run_time_type)    {    default:    Pike_error("Cannot perform cast to that type.\n");       case T_MIXED:    return;   
pike.git/src/operators.c:722:    return;    }       default:    Pike_error("Cannot cast %s to a program.\n",    get_name_of_type(TYPEOF(sp[-1])));    }    }    }    -  if(TYPEOF(sp[-1]) == T_INT && -  SUBTYPEOF(sp[-1]) == NUMBER_UNDEFINED) -  Pike_error("Cannot cast this object to %s.\n", -  get_name_of_type(type->type)); -  +     if(run_time_type != TYPEOF(sp[-1]))    {    switch(TYPEOF(sp[-1])) {    case T_OBJECT:    if(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)