From faef11dac358c489b08bf5a906303e0406d0decc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Thu, 17 Feb 2000 10:57:36 -0800 Subject: [PATCH] bugfix for seach after destructed objects Rev: src/array.c:1.61 --- src/array.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/array.c b/src/array.c index 24386c6904..bee20d05f7 100644 --- a/src/array.c +++ b/src/array.c @@ -23,7 +23,7 @@ #include "stuff.h" #include "bignum.h" -RCSID("$Id: array.c,v 1.60 2000/02/02 00:37:21 hubbe Exp $"); +RCSID("$Id: array.c,v 1.61 2000/02/17 18:57:36 hubbe Exp $"); struct array empty_array= { @@ -455,11 +455,15 @@ INT32 array_search(struct array *v, struct svalue *s,INT32 start) check_destructed(s); - /* Why search for something that is not there? */ #ifdef PIKE_DEBUG if(d_flag > 1) array_check_type_field(v); #endif - if(v->type_field & (1 << s->type)) + /* Why search for something that is not there? + * however, we must explicitly check for searches + * for destructed objects/functions + */ + if((v->type_field & (1 << s->type)) || + (IS_ZERO(s) && (v->type_field & (BIT_FUNCTION|BIT_OBJECT)))) { if(start) { -- GitLab