diff --git a/src/block_alloc.h b/src/block_alloc.h index fe54e4394494d6b39ca3236e84c0d25a45986aa6..9d7eae0b2fc387739bd4888ccf4479c340a947cb 100644 --- a/src/block_alloc.h +++ b/src/block_alloc.h @@ -1,4 +1,4 @@ -/* $Id: block_alloc.h,v 1.5 1999/01/31 09:01:39 hubbe Exp $ */ +/* $Id: block_alloc.h,v 1.6 1999/03/23 16:22:05 hubbe Exp $ */ #undef PRE_INIT_BLOCK #undef INIT_BLOCK #undef EXIT_BLOCK @@ -49,7 +49,7 @@ struct DATA *PIKE_CONCAT(alloc_,DATA)(void) \ return tmp; \ } \ \ -inline void PIKE_CONCAT(really_free_,DATA)(struct DATA *d) \ +void PIKE_CONCAT(really_free_,DATA)(struct DATA *d) \ { \ EXIT_BLOCK(d); \ d->next=PIKE_CONCAT3(free_,DATA,s); \ diff --git a/src/error.c b/src/error.c index 90e870b8712b8dc2cd5a7cd9b7193405756cf6b2..189d97da46c7e53e9b2451ab4d98a82b09825e53 100644 --- a/src/error.c +++ b/src/error.c @@ -18,7 +18,7 @@ #include "operators.h" #include "module_support.h" -RCSID("$Id: error.c,v 1.28 1999/03/23 02:51:07 marcus Exp $"); +RCSID("$Id: error.c,v 1.29 1999/03/23 16:22:06 hubbe Exp $"); #undef ATTRIBUTE #define ATTRIBUTE(X) @@ -441,9 +441,18 @@ void bad_arg_error( void math_error( char *func, struct svalue *base_sp, int args, + struct svalue *number, char *desc, ...) ATTRIBUTE((noreturn,format (printf, 4, 5))) { INIT_ERROR(math); + if(number) + { + ERROR_COPY_SVALUE(bad_arg, number); + }else{ + ERROR_STRUCT(bad_arg,o)->number.type=T_INT; + ERROR_STRUCT(bad_arg,o)->number.subtype=NUMBER_UNDEFINED; + ERROR_STRUCT(bad_arg,o)->number.u.integer=0; + } ERROR_DONE(generic); } diff --git a/src/errors.h b/src/errors.h index c4abce4453062856f4da11872be5066393dd88f6..daeb904cf07fa8977135954c330e1f40891957a8 100644 --- a/src/errors.h +++ b/src/errors.h @@ -83,6 +83,7 @@ DECLARE_ERROR(bad_arg, DECLARE_ERROR(math, ERR_INHERIT(generic), + ERR_VAR(struct svalue, mixed, T_MIXED, number) ) DECLARE_ERROR(resource,