pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h: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: interpret_functions.h,v 1.201 2008/03/28 23:11:33 mast Exp $ + || $Id: interpret_functions.h,v 1.202 2008/03/29 01:33:18 mast Exp $   */      /*    * Opcode definitions for the interpreter.    */      #include "global.h"      #undef CJUMP   #undef AUTO_BIGNUM_LOOP_TEST
pike.git/src/interpret_functions.h:451:   });      OPCODE2(F_LOCAL_2_GLOBAL, "global = local", 0, {    object_low_set_index(Pike_fp->current_object,    arg1 + Pike_fp->context->identifier_level,    Pike_fp->locals + arg2);   });      OPCODE2(F_GLOBAL_2_LOCAL, "local = global", 0, {    free_svalue(Pike_fp->locals + arg2); +  mark_free_svalue (Pike_fp->locals + arg2);    low_index_current_object_no_free(Pike_fp->locals + arg2, arg1);   });      OPCODE1(F_LOCAL_LVALUE, "& local", I_UPDATE_SP, {    Pike_sp[0].type = T_SVALUE_PTR;    Pike_sp[0].u.lval = Pike_fp->locals + arg1;    Pike_sp[1].type = T_VOID;    Pike_sp += 2;   });   
pike.git/src/interpret_functions.h:2255:    { \    LOCAL_VAR(dynamic_buffer save_buf); \    init_buf(&save_buf); \    if (s->u.efun->name->size_shift) \    my_strcat ("[widestring function name]"); \    else \    my_strcat (s->u.efun->name->str); \    do_trace_call(args_, &save_buf); \    } \    (*(s->u.efun->function))(args_); \ -  s->u.efun->runs++; \ +  DO_IF_PROFILING (s->u.efun->runs++); \    if(Pike_sp != expected_stack + !s->u.efun->may_return_void) \    { \    if(Pike_sp < expected_stack) \    Pike_fatal("Function popped too many arguments: %s\n", \    s->u.efun->name->str); \    if(Pike_sp>expected_stack+1) \    Pike_fatal("Function left %"PRINTPTRDIFFT"d droppings on stack: %s\n", \    Pike_sp-(expected_stack+1), \    s->u.efun->name->str); \    if(Pike_sp == expected_stack && !s->u.efun->may_return_void) \
pike.git/src/interpret_functions.h:2338:   OPCODE1(F_LTOSVAL_CALL_BUILTIN_AND_ASSIGN, "ltosval, call builtin & assign",    I_UPDATE_ALL, {    INT32 args = DO_NOT_WARN((INT32)(Pike_sp - *--Pike_mark_sp));    ONERROR uwp;       /* FIXME: Assert that args > 0 */       STACK_LEVEL_START(args+2);       free_svalue(Pike_sp-args); +  mark_free_svalue (Pike_sp - args);    lvalue_to_svalue_no_free(Pike_sp-args, Pike_sp-args-2);    /* This is so that foo = efun(foo,...) (and similar things) will be faster.    * It's done by freeing the old reference to foo after it has been    * pushed on the stack. That way foo can have only 1 reference if we    * are lucky, and then the low array/multiset/mapping manipulation    * routines can be destructive if they like.    */    if( (1 << Pike_sp[-args].type) &    (BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING) )    {
pike.git/src/interpret_functions.h:2381:   OPCODE1(F_LTOSVAL_CALL_BUILTIN_AND_ASSIGN_POP,    "ltosval, call builtin, assign & pop", I_UPDATE_ALL, {    INT32 args = DO_NOT_WARN((INT32)(Pike_sp - *--Pike_mark_sp));    ONERROR uwp;       /* FIXME: Assert that args > 0 */       STACK_LEVEL_START(args+2);       free_svalue(Pike_sp-args); +  mark_free_svalue (Pike_sp - args);    lvalue_to_svalue_no_free(Pike_sp-args, Pike_sp-args-2);    /* This is so that foo = efun(foo,...) (and similar things) will be faster.    * It's done by freeing the old reference to foo after it has been    * pushed on the stack. That way foo can have only 1 reference if we    * are lucky, and then the low array/multiset/mapping manipulation    * routines can be destructive if they like.    */    if( (1 << Pike_sp[-args].type) &    (BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING) )    {