diff --git a/src/svalue.h b/src/svalue.h index 6deefbea27ceda6dde64a854f21cffa10494fca8..b3de5fdf7484701a3641bbd5702ef3ff435df815 100644 --- a/src/svalue.h +++ b/src/svalue.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: svalue.h,v 1.67 2000/08/29 00:20:51 mast Exp $ + * $Id: svalue.h,v 1.68 2000/09/03 22:02:31 mast Exp $ */ #ifndef SVALUE_H #define SVALUE_H @@ -95,6 +95,7 @@ struct svalue #define T_VOID 16 /* Can't return any value */ #define T_MANY 17 +#define T_MAPPING_DATA 242 #define PIKE_T_SCOPE 243 /* Not supported yet */ #define PIKE_T_TUPLE 244 /* Not supported yet */ #define T_ASSIGN 245 @@ -229,10 +230,13 @@ struct svalue #define IS_UNDEFINED(X) ((X)->type==PIKE_T_INT&&!(X)->u.integer&&(X)->subtype==1) +#define IS_DESTRUCTED(X) \ + (((X)->type == PIKE_T_OBJECT || (X)->type==PIKE_T_FUNCTION) && !(X)->u.object->prog) + #define check_destructed(S) \ do{ \ struct svalue *_s=(S); \ - if((_s->type == PIKE_T_OBJECT || _s->type==PIKE_T_FUNCTION) && !_s->u.object->prog) { \ + if(IS_DESTRUCTED(_s)) { \ free_object(_s->u.object); \ _s->type = PIKE_T_INT; \ _s->subtype = NUMBER_DESTRUCTED ; \