pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/operators.c:1:
/* || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information.
-
|| $Id: operators.c,v 1.
193
2004/08/
24
14
:
34
:
06
grubba Exp $
+
|| $Id: operators.c,v 1.
194
2004/08/
25
12
:
15
:
29
grubba Exp $
*/ #include "global.h" #include <math.h>
-
RCSID("$Id: operators.c,v 1.
193
2004/08/
24
14
:
34
:
06
grubba Exp $");
+
RCSID("$Id: operators.c,v 1.
194
2004/08/
25
12
:
15
:
29
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 "pike_memory.h" #include "pike_error.h"
pike.git/src/operators.c:1546:
case 2: first_arg=my_get_arg(&_CDR(n), 0); second_arg=my_get_arg(&_CDR(n), 1); do_docode(CDR(n),DO_NOT_COPY_TOPLEVEL); if(first_arg[0]->type == float_type_string && second_arg[0]->type == float_type_string) { emit0(F_ADD_FLOATS); }
-
else if(pike_types_le(first_arg[0]->type, int_type_string) &&
+
else if(
first_arg[0]->type && second_arg[0]->type &&
+
pike_types_le(first_arg[0]->type, int_type_string) &&
pike_types_le(second_arg[0]->type, int_type_string)) { emit0(F_ADD_INTS); } else { emit0(F_ADD); } return 1;
pike.git/src/operators.c:1574:
{ do_docode(*first_arg, 0); do_docode(*second_arg, 0); emit0(F_ADD_FLOATS); if (third_arg[0]->type == float_type_string) { do_docode(*third_arg, 0); emit0(F_ADD_FLOATS); return 1; } }
-
else if(pike_types_le(first_arg[0]->type, int_type_string) &&
+
else if(
first_arg[0]->type && second_arg[0]->type &&
+
pike_types_le(first_arg[0]->type, int_type_string) &&
pike_types_le(second_arg[0]->type, int_type_string)) { do_docode(*first_arg, 0); do_docode(*second_arg, 0); emit0(F_ADD_INTS);
-
if (pike_types_le(third_arg[0]->type, int_type_string)) {
+
if (
third_arg[0]->type &&
+
pike_types_le(third_arg[0]->type, int_type_string)) {
do_docode(*third_arg, 0); emit0(F_ADD_INTS); return 1; } } else { return 0; } do_docode(*third_arg, 0);