diff --git a/src/array.c b/src/array.c index ac32e04bb318ac5511423e7be5c50243598528d0..043e0354570afa44b218adee2f22baaa487aa2fe 100644 --- a/src/array.c +++ b/src/array.c @@ -680,7 +680,8 @@ PMOD_EXPORT struct array *array_remove(struct array *v,INT32 index) } } -static ptrdiff_t fast_array_search( struct array *v, struct svalue *s, ptrdiff_t start ) +static ptrdiff_t fast_array_search( struct array *v, const struct svalue *s, + ptrdiff_t start ) { ptrdiff_t e; struct svalue *ip = ITEM(v); @@ -697,7 +698,7 @@ static ptrdiff_t fast_array_search( struct array *v, struct svalue *s, ptrdiff_t * @param start the index to start search at * @return the index if found, -1 otherwise */ -PMOD_EXPORT ptrdiff_t array_search(struct array *v, struct svalue *s, +PMOD_EXPORT ptrdiff_t array_search(struct array *v, const struct svalue *s, ptrdiff_t start) { #ifdef PIKE_DEBUG @@ -707,7 +708,7 @@ PMOD_EXPORT ptrdiff_t array_search(struct array *v, struct svalue *s, #ifdef PIKE_DEBUG if(d_flag > 1) array_check_type_field(v); #endif - check_destructed(s); + safe_check_destructed(s); /* Why search for something that is not there? * however, we must explicitly check for searches diff --git a/src/array.h b/src/array.h index b2f4215ca1d28642bfde87cabeb4a9a94d867959..21bac51fdd73ed21c49a1b0b961cac8e539f832a 100644 --- a/src/array.h +++ b/src/array.h @@ -126,7 +126,7 @@ void o_append_array(INT32 args); PMOD_EXPORT struct array *resize_array(struct array *a, INT32 size); PMOD_EXPORT struct array *array_shrink(struct array *v, ptrdiff_t size); PMOD_EXPORT struct array *array_remove(struct array *v,INT32 ind); -PMOD_EXPORT ptrdiff_t array_search(struct array *v, struct svalue *s, +PMOD_EXPORT ptrdiff_t array_search(struct array *v, const struct svalue *s, ptrdiff_t start); PMOD_EXPORT struct array *slice_array(struct array *v, ptrdiff_t start, ptrdiff_t end);