pike.git / src / interpret.h

version» Context lines:

pike.git/src/interpret.h:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/      /* -  * $Id: interpret.h,v 1.67 2000/09/12 17:06:08 grubba Exp $ +  * $Id: interpret.h,v 1.68 2000/11/20 01:20:24 mast Exp $    */   #ifndef INTERPRET_H   #define INTERPRET_H      #include "global.h"   #include "program.h"   #include "error.h"      struct Pike_interpreter {    /* Swapped variables */
pike.git/src/interpret.h:23:    struct pike_frame *frame_pointer;    int evaluator_stack_malloced;    int mark_stack_malloced;    JMP_BUF *recoveries;   #ifdef PIKE_THREADS    struct object * thread_id;   #endif    char *stack_top;    DO_IF_SECURITY(struct object *current_creds;)    +  int svalue_stack_margin; +  int c_stack_margin; +    #ifdef PROFILING   #ifdef HAVE_GETHRTIME    long long accounted_time;    long long time_base;   #endif   #endif      #ifdef THREAD_TRACE    int t_flag;   #endif /* THREAD_TRACE */
pike.git/src/interpret.h:73:   #ifdef PIKE_DEBUG   #define debug_check_stack() do{if(Pike_sp<Pike_interpreter.evaluator_stack)fatal("Stack error.\n");}while(0)   #define check__positive(X,Y) if((X)<0) fatal Y   #include "error.h"   #else   #define check__positive(X,Y)   #define debug_check_stack()   #endif      #define check_stack(X) do { \ -  if(Pike_sp - Pike_interpreter.evaluator_stack + (X) >= Pike_stack_size) \ +  if(Pike_sp - Pike_interpreter.evaluator_stack + \ +  Pike_interpreter.svalue_stack_margin + (X) >= Pike_stack_size) \    error("Svalue stack overflow. " \    "(%ld of %ld entries on stack, needed %ld more entries)\n", \    PTRDIFF_T_TO_LONG(Pike_sp - Pike_interpreter.evaluator_stack), \    PTRDIFF_T_TO_LONG(Pike_stack_size), \    PTRDIFF_T_TO_LONG(X)); \    }while(0)      #define check_mark_stack(X) do { \    if(Pike_mark_sp - Pike_interpreter.mark_stack + (X) >= Pike_stack_size) \    error("Mark stack overflow.\n"); \    }while(0)    - #define check_c_stack(X) do { \ -  ptrdiff_t x_= ((char *)&x_) + STACK_DIRECTION * (X) - Pike_interpreter.stack_top ; \ + #define check_c_stack(X) do { \ +  ptrdiff_t x_= ((char *)&x_) + \ +  STACK_DIRECTION * (Pike_interpreter.c_stack_margin + (X)) - \ +  Pike_interpreter.stack_top ; \    x_*=STACK_DIRECTION; \    if(x_>0) \    low_error("C stack overflow.\n"); \    }while(0)      #define fatal_check_c_stack(X) do { \    ptrdiff_t x_= \    ((char *)&x_) + STACK_DIRECTION * (X) - Pike_interpreter.stack_top ; \    x_*=STACK_DIRECTION; \    if(x_>0) { \
pike.git/src/interpret.h:239:   void print_return_value(void);   void reset_evaluator(void);   struct backlog;   void dump_backlog(void);   BLOCK_ALLOC(pike_frame,128)      PMOD_EXPORT void find_external_context(struct external_variable_context *loc,    int arg2);   PMOD_EXPORT void mega_apply(enum apply_type type, INT32 args, void *arg1, void *arg2);   PMOD_EXPORT void f_call_function(INT32 args); + PMOD_EXPORT void call_handle_error(void);   PMOD_EXPORT int apply_low_safe_and_stupid(struct object *o, INT32 offset);   PMOD_EXPORT void safe_apply_low(struct object *o,int fun,int args);   PMOD_EXPORT void safe_apply(struct object *o, char *fun ,INT32 args);   PMOD_EXPORT void apply_lfun(struct object *o, int fun, int args);   PMOD_EXPORT void apply_shared(struct object *o,    struct pike_string *fun,    int args);   PMOD_EXPORT void apply(struct object *o, char *fun, int args);   PMOD_EXPORT void apply_svalue(struct svalue *s, INT32 args);   PMOD_EXPORT void slow_check_stack(void);