diff --git a/src/interpret.h b/src/interpret.h index b8e5c71098c064920e677da8bce2e22fe5f893f4..6b52e670e93d26e38f62e9e8f1a178af026e3ac8 100644 --- a/src/interpret.h +++ b/src/interpret.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: interpret.h,v 1.66 2000/08/24 04:04:41 hubbe Exp $ + * $Id: interpret.h,v 1.67 2000/09/12 17:06:08 grubba Exp $ */ #ifndef INTERPRET_H #define INTERPRET_H @@ -100,6 +100,15 @@ struct external_variable_context 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) { \ + fatal("C stack overflow.\n"); \ + } \ + }while(0) + #define pop_stack() do{ free_svalue(--Pike_sp); debug_check_stack(); }while(0)