pike.git/
src/
interpret_functions.h
Branch:
Tag:
Non-build tags
All tags
No tags
2015-05-21
2015-05-21 17:17:06 by Tobias S. Josefowitz <tobij@tobij.de>
a2f0f87cd0903078ec431ccfb933fd125d4e0315 (
17
lines) (+
10
/-
7
)
[
Show
|
Annotate
]
Branch:
8.1
destructedp, zero_type: detect trampolines referencing destructed objects
2995:
}); OPCODE0(F_DESTRUCTEDP,"destructedp",0, {
-
if(
(
TYPEOF(Pike_sp[-1]) =
=
T_
OBJECT || TYPEOF(Pike_sp[-1]
)
== T_FUNCTION)
-
&& !Pike_sp[-1].u.object->prog)
+
if(TYPEOF(Pike_sp[-1])
!
= T_
INT
)
{
-
+
if(IS_DESTRUCTED(Pike_sp-1))
+
{
pop_stack(); push_int(1);
-
}
-
else
-
{
+
}else{
pop_stack(); push_int(0); }
-
+
}else{
+
SET_SVAL(Pike_sp[-1], T_INT, NUMBER_NUMBER, integer,
+
NUMBER_DESTRUCTED == SUBTYPEOF(Pike_sp[-1]));
+
}
}); OPCODE0(F_ZERO_TYPE, "zero_type", 0, { if(TYPEOF(Pike_sp[-1]) != T_INT) {
-
if(
(TYPEOF(Pike
_
sp[-1]) == T_OBJECT || TYPEOF
(Pike_sp
[
-1
]
)
== T_FUNCTION
)
-
&& !Pike_sp[-1].u.object->prog)
+
if(
IS
_
DESTRUCTED
(Pike_sp-1))
{ pop_stack(); push_int(NUMBER_DESTRUCTED);