pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
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)