pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/operators.c:22:
#include "peep.h" #include "lex.h" #include "program.h" #include "object.h" #include "pike_types.h" #include "module_support.h" #include "pike_macros.h" #include "bignum.h" #include "builtin_functions.h" #include "cyclic.h"
-
#include "pike_security.h"
+
#include "pike_compiler.h" #define sp Pike_sp #define OP_DIVISION_BY_ZERO_ERROR(FUNC) \ math_error(FUNC, sp-2, 2, 0, "Division by zero.\n") #define OP_MODULO_BY_ZERO_ERROR(FUNC) \ math_error(FUNC, sp-2, 2, 0, "Modulo by zero.\n") /* The destructive multiset merge code is broken.
pike.git/src/operators.c:52:
/* It utilizes that log10(256) ~= 2.4 < 5/2. */ /* One extra char for the sign and one for the \0 terminator. */ #define MAX_INT_SPRINTF_LEN (2 + (SIZEOF_INT_TYPE * 5 + 1) / 2) /* Enough to hold a Pike float or int in textform */ #define MAX_NUM_BUF (MAXIMUM(MAX_INT_SPRINTF_LEN,MAX_FLOAT_SPRINTF_LEN)) void index_no_free(struct svalue *to,struct svalue *what,struct svalue *ind) {
-
#ifdef PIKE_SECURITY
-
if(TYPEOF(*what) <= MAX_COMPLEX)
-
if(!CHECK_DATA_SECURITY(what->u.array, SECURITY_BIT_INDEX))
-
Pike_error("Index permission denied.\n");
-
#endif
-
+
switch(TYPEOF(*what)) { case T_ARRAY: simple_array_index_no_free(to,what->u.array,ind); break; case T_MAPPING: mapping_index_no_free(to,what->u.mapping,ind); break;