diff --git a/src/error.c b/src/error.c index 39ae2fe8b3b8e43db993f2eebc9d0d9b0c4e6d34..59849910cc152fd04bc23c80f031f95963d65c98 100644 --- a/src/error.c +++ b/src/error.c @@ -22,7 +22,7 @@ #include "threads.h" #include "gc.h" -RCSID("$Id: error.c,v 1.73 2001/07/01 21:34:50 mast Exp $"); +RCSID("$Id: error.c,v 1.74 2001/08/15 22:18:00 mast Exp $"); #undef ATTRIBUTE #define ATTRIBUTE(X) @@ -556,6 +556,20 @@ DECLSPEC(noreturn) void generic_error_va(struct object *o, pike_throw(); /* Hope someone is catching, or we will be out of balls. */ } + +PMOD_EXPORT DECLSPEC(noreturn) void throw_error_object( + struct object *o, + char *func, + struct svalue *base_sp, int args, + char *desc, ...) ATTRIBUTE((noreturn,format (printf, 5, 6))) +{ + va_list foo; + va_start(foo,desc); + ASSERT_THREAD_SWAPPED_IN(); + DWERROR((stderr, "%s(): Throwing an error object\n", func)); + ERROR_DONE(generic); +} + PMOD_EXPORT DECLSPEC(noreturn) void generic_error( char *func, struct svalue *base_sp, int args, diff --git a/src/pike_error.h b/src/pike_error.h index d7a42ae5f5a557985864119f4ee2916eb61e0344..6821ee8a8db8adea82348f6b70136f6d256274d0 100644 --- a/src/pike_error.h +++ b/src/pike_error.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: pike_error.h,v 1.12 2001/07/02 20:09:18 mast Exp $ + * $Id: pike_error.h,v 1.13 2001/08/15 22:18:00 mast Exp $ */ #ifndef PIKE_ERROR_H #define PIKE_ERROR_H @@ -203,6 +203,11 @@ void DECLSPEC(noreturn) generic_error_va(struct object *o, char *fmt, va_list foo) ATTRIBUTE((noreturn)); +PMOD_EXPORT DECLSPEC(noreturn) void throw_error_object( + struct object *o, + char *func, + struct svalue *base_sp, int args, + char *desc, ...) ATTRIBUTE((noreturn,format (printf, 5, 6))); PMOD_EXPORT void DECLSPEC(noreturn) generic_error( char *func, struct svalue *base_sp, int args,