pike.git/
src/
operators.c
Branch:
Tag:
Non-build tags
All tags
No tags
1999-11-22
1999-11-22 14:17:49 by Henrik Grubbström (Grubba) <grubba@grubba.org>
01b2c2f6858b260a2736eb6fe0d1a24ab62ad11d (
38
lines) (+
11
/-
27
)
[
Show
|
Annotate
]
Branch:
7.9
Fixed support for SHARED_NODES.
Rev: src/operators.c:1.71
6:
/**/ #include "global.h" #include <math.h>
-
RCSID("$Id: operators.c,v 1.
70
1999/11/
11
16
:
07
:
05
grubba Exp $");
+
RCSID("$Id: operators.c,v 1.
71
1999/11/
22
14
:
17
:
49
grubba Exp $");
#include "interpret.h" #include "svalue.h" #include "multiset.h"
456:
if(node_is_false(*first_arg) && !node_may_overload(*second_arg,LFUN_EQ)) { ret=*second_arg;
-
#ifndef
SHARED_NODES
-
*second_arg
=0
;
-
#endif /* !SHARED_NODES */
+
ADD_NODE_REF(
*second_arg
)
;
return mkopernode("`!",ret,0); } if(node_is_false(*second_arg) && !node_may_overload(*first_arg,LFUN_EQ)) { ret=*first_arg;
-
#ifndef
SHARED_NODES
-
*first_arg
=0
;
-
#endif /* !SHARED_NODES */
+
ADD_NODE_REF(
*first_arg
)
;
return mkopernode("`!",ret,0); } }
489:
if(node_is_true(*first_arg)) return mkintnode(0); if(node_is_false(*first_arg)) return mkintnode(1);
-
#ifdef SHARED_NODES
+
#define TMP_OPT(X,Y) do { \ if((more_args=is_call_to(*first_arg, X))) \ { \ node *tmp=*more_args; \
-
+
ADD_NODE_REF(*more_args); \
return mkopernode(Y,tmp,0); \ } } while(0)
-
#else /* !SHARED_NODES */
-
#define TMP_OPT(X,Y) do { \
-
if((more_args=is_call_to(*first_arg, X))) \
-
{ \
-
node *tmp=*more_args; \
-
*more_args=0; \
-
return mkopernode(Y,tmp,0); \
-
} } while(0)
-
#endif /* SHARED_NODES */
+
TMP_OPT(f_eq, "`!="); TMP_OPT(f_ne, "`==");
544:
mknode(F_ARG_LIST, CDR(*first_arg), *second_arg));
-
#ifndef
SHARED_NODES
-
CAR(n)
=0
;
-
CDR(*first_arg)
=0
;
-
*second_arg
=0
;
-
#endif /* !SHARED_NODES */
+
ADD_NODE_REF(
CAR(n)
)
;
+
ADD_NODE_REF(
CDR(*first_arg)
)
;
+
ADD_NODE_REF(
*second_arg
)
;
return ret; }
561:
mknode(F_ARG_LIST, *first_arg, CDR(*second_arg)));
-
#ifndef
SHARED_NODES
-
CAR(n)
=0
;
-
*first_arg
=0
;
-
CDR(*second_arg)
=0
;
-
#endif /* SHARED_NODES */
+
ADD_NODE_REF(
CAR(n)
)
;
+
ADD_NODE_REF(
*first_arg
)
;
+
ADD_NODE_REF(
CDR(*second_arg)
)
;
return ret; } }