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.
188
2004/04/
06
15:
37
:
55
nilsson Exp $
+
|| $Id: operators.c,v 1.
189
2004/04/
15
00
:
11
:
51
nilsson Exp $
*/ #include "global.h" #include <math.h>
-
RCSID("$Id: operators.c,v 1.
188
2004/04/
06
15:
37
:
55
nilsson Exp $");
+
RCSID("$Id: operators.c,v 1.
189
2004/04/
15
00
:
11
:
51
nilsson 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:819:
struct mapping *m; struct mapping *tmp=sp[-3].u.mapping; DECLARE_CYCLIC(); if((m=(struct mapping *)BEGIN_CYCLIC(tmp,0))) { ref_push_mapping(m); }else{ INT32 e; struct keypair *k;
+
struct mapping_data *md;
#ifdef PIKE_DEBUG struct svalue *save_sp=sp+1; #endif push_mapping(m=allocate_mapping(m_sizeof(tmp))); SET_CYCLIC_RET(m);
-
MAPPING_LOOP(
tmp
)
+
md = tmp->data;
+
NEW_
MAPPING_LOOP(
md
)
{ push_svalue(& k->ind); o_cast(itype, run_time_itype); push_svalue(& k->val); o_cast(vtype, run_time_vtype); mapping_insert(m,sp-2,sp-1); pop_n_elems(2); } #ifdef PIKE_DEBUG if(save_sp!=sp)