pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/operators.c:936:
return !s->u.integer; case PIKE_T_FUNCTION: if (SUBTYPEOF(*s) == FUNCTION_BUILTIN) return 0; /* FALLTHRU */ case PIKE_T_OBJECT: return !s->u.object->prog; } return 0; case T_ASSIGN: case PIKE_T_NAME:
-
case PIKE_T_ATTRIBUTE:
+
type = type->cdr; goto loop;
-
+
case PIKE_T_ATTRIBUTE:
+
{
+
int ret;
+
if (!low_check_soft_cast(s, type->cdr)) return 0;
+
push_svalue(s);
+
ref_push_string((struct pike_string *)type->car);
+
SAFE_MAYBE_APPLY_MASTER("handle_attribute", 2);
+
ret = !SAFE_IS_ZERO(Pike_sp-1) || IS_UNDEFINED(Pike_sp-1);
+
pop_stack();
+
return ret;
+
}
case T_AND: if (!low_check_soft_cast(s, type->car)) return 0; type = type->cdr; goto loop; case T_OR: if (low_check_soft_cast(s, type->car)) return 1; type = type->cdr; goto loop; case T_NOT: return !low_check_soft_cast(s, type->car);