pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/operators.c:1:
/*\ ||| This file a part of Pike, and is copyright by Fredrik Hubinette ||| Pike is distributed as GPL (General Public License) ||| See the files COPYING and DISCLAIMER for more information. \*/ /**/ #include "global.h" #include <math.h>
-
RCSID("$Id: operators.c,v 1.
127
2001/02/
25
17
:
40
:
19
hubbe
Exp $");
+
RCSID("$Id: operators.c,v 1.
128
2001/02/
26
21
:
46
:
15
grubba
Exp $");
#include "interpret.h" #include "svalue.h" #include "multiset.h" #include "mapping.h" #include "array.h" #include "stralloc.h" #include "opcodes.h" #include "operators.h" #include "language.h" #include "pike_memory.h"
pike.git/src/operators.c:2813:
case T_INT: sp[-1].u.integer = ~ sp[-1].u.integer; break; case T_FLOAT: sp[-1].u.float_number = -1.0 - sp[-1].u.float_number; break; case T_TYPE: type_stack_mark();
-
if (
EXTRACT_UCHAR(
sp[-1].u.
string
->
str)
== T_NOT) {
-
push_
unfinished
_type(sp[-1].u.
string
->
str + 1
);
+
#ifdef
USE_PIKE_TYPE
+
if (sp[-1].u.
type
->
type
== T_NOT) {
+
push_
finished
_type(sp[-1].u.
type
->
car
);
} else {
-
push_
unfinished
_type(sp[-1].u.
string->str
);
+
push_
finished
_type(sp[-1].u.
type
);
push_type(T_NOT); }
-
+
#else /* !USE_PIKE_TYPE */
+
if (EXTRACT_UCHAR(sp[-1].u.type->str) == T_NOT) {
+
push_unfinished_type(sp[-1].u.type->str + 1);
+
} else {
+
push_finished_type(sp[-1].u.type);
+
push_type(T_NOT);
+
}
+
#endif /* USE_PIKE_TYPE */
pop_stack(); push_type_value(pop_unfinished_type()); break; case T_FUNCTION: case T_PROGRAM: { /* !object(p) */ struct program *p = program_from_svalue(sp - 1); if (!p) {