From d0261535dc907cf8be12cd80c2f223db59dd4e24 Mon Sep 17 00:00:00 2001 From: Martin Stjernholm <mast@lysator.liu.se> Date: Mon, 4 Sep 2000 00:02:31 +0200 Subject: [PATCH] Added T_MAPPING_DATA to be able to identify mapping_data blocks in debug dumps. Added IS_DESTRUCTED. Rev: src/svalue.h:1.68 --- src/svalue.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/svalue.h b/src/svalue.h index 6deefbea27..b3de5fdf74 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 ; \ -- GitLab