pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/docode.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: docode.c,v 1.208 2010/07/04 12:16:06 grubba Exp $
+
||
$Id$
*/ #include "global.h" #include "las.h" #include "program.h" #include "pike_types.h" #include "stralloc.h" #include "interpret.h" #include "constants.h" #include "array.h"
pike.git/src/docode.c:1158:
return 0; } if(CAR(n)->token != F_AUTO_MAP && (match_types(CAR(n)->type, array_type_string) || match_types(CAR(n)->type, string_type_string) || match_types(CAR(n)->type, mapping_type_string) || match_types(CAR(n)->type, object_type_string))) { code_expression(CDR(n), 0, "assignment");
-
emit0(F_LTOSVAL2);
+
emit0(F_LTOSVAL2
_AND_FREE
);
}else{ emit0(F_LTOSVAL); code_expression(CDR(n), 0, "assignment"); } switch(n->token) { case F_ADD_EQ: if(CAR(n)->type == int_type_string &&
pike.git/src/docode.c:1250:
tmp1=do_docode(CDR(n),DO_LVALUE); if(match_types(CDR(n)->type, array_type_string) || match_types(CDR(n)->type, string_type_string) || match_types(CDR(n)->type, object_type_string) || match_types(CDR(n)->type, multiset_type_string) || match_types(CDR(n)->type, mapping_type_string)) { num_args = do_docode(CDAR(n), 0); switch (num_args) {
-
case 0: emit0(F_
LTOSVAL1
); break;
-
case 1: emit0(F_LTOSVAL2); break;
-
case 2: emit0(F_LTOSVAL3); break;
+
case 0: emit0(F_
LTOSVAL_AND_FREE
); break;
+
case 1: emit0(F_LTOSVAL2
_AND_FREE
); break;
+
case 2: emit0(F_LTOSVAL3
_AND_FREE
); break;
#ifdef PIKE_DEBUG default: Pike_fatal("Arglebargle glop-glyf?\n"); #endif } }else{ emit0(F_LTOSVAL); num_args = do_docode(CDAR(n), 0); } if (CAR (n)->token == F_RANGE) emit_range (CAR (n) DO_IF_DEBUG (COMMA num_args)); else emit0(CAR(n)->token); emit0(n->token);
-
return n->token==F_ASSIGN;
+
return n->token==F_ASSIGN;
/* So when is this false? /mast */
} case F_APPLY: if ((CAAR(n)->token == F_CONSTANT) && (CAAR(n)->u.sval.type == T_FUNCTION) && (CAAR(n)->u.sval.subtype == FUNCTION_BUILTIN) && (CAAR(n)->u.sval.u.efun->function != f_map) && (CAAR(n)->u.sval.u.efun->function != f_filter)) { /* efuns typically don't access object variables. */ node *args = CDAR(n); if (args) {