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