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.190 2007/10/06 13:45:22 grubba Exp $
+ || $Id: docode.c,v 1.191 2007/12/17 18:02:35 grubba Exp $
*/
#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:818: Inside #if defined(PIKE_DEBUG)
current_label->cleanups->cleanup != do_pop_to_mark))
Pike_fatal("F_PUSH_ARRAY unexpected in this context.\n");
#endif
current_label->cleanups->cleanup = do_pop_to_mark;
}
code_expression(CAR(n), 0, "`@");
emit0(F_PUSH_ARRAY);
return 0;
}
+ case F_APPEND_ARRAY: {
+ emit0(F_MARK);
+ PUSH_CLEANUP_FRAME(do_pop_mark, 0);
+ do_docode(CAR(n),DO_LVALUE);
+ emit0(F_CONST0); /* Reserved for svalue. */
+ do_docode(CDR(n),0);
+ emit0(F_APPEND_ARRAY);
+ POP_AND_DONT_CLEANUP;
+ return 1;
+ }
+
case '?':
{
INT32 *prev_switch_jumptable = current_switch.jumptable;
int adroppings , bdroppings;
current_switch.jumptable=0;
if(!CDDR(n))
{
tmp1=alloc_label();