pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:2812:    }   }      /* Used to generate code for functions. */   INT32 do_code_block(node *n, int identifier_flags)   {    struct compilation *c = THIS_COMPILATION;    struct reference *id = NULL;    INT32 entry_point;    int aggregate_cnum = -1; - #ifdef PIKE_DEBUG -  if (current_stack_depth != -4711) Pike_fatal("Reentrance in do_code_block().\n"); +  int save_stack_depth = current_stack_depth;    current_stack_depth = 0; - #endif +        if (Pike_compiler->compiler_frame->current_function_number >= 0) {    id = Pike_compiler->new_program->identifier_references +    Pike_compiler->compiler_frame->current_function_number;    }       init_bytecode();    label_no=1;       /* NOTE: This is no ordinary label... */
pike.git/src/docode.c:2918:    Pike_compiler->compiler_frame->max_number_of_locals);    }    if (Pike_compiler->compiler_frame->lexical_scope & SCOPE_SCOPE_USED) {    emit_save_locals(Pike_compiler->compiler_frame);    }       DO_CODE_BLOCK(n);    }    entry_point = assemble(1);    - #ifdef PIKE_DEBUG -  current_stack_depth = -4711; - #endif +  current_stack_depth = save_stack_depth;    return entry_point;   }      /* Used by eval_low() to build code for constant expressions. */   INT32 docode(node *n)   {    INT32 entry_point;    int label_no_save = label_no;    struct byte_buffer instrbuf_save = instrbuf;    int stack_depth_save = current_stack_depth;