diff --git a/src/array.c b/src/array.c index 8a19921c9d3248a03a82554ced997739e156aeb6..cb6d69c6cd62523442df23388d93a2e18f05c823 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.81 2000/08/15 11:09:06 grubba Exp $"); +RCSID("$Id: array.c,v 1.82 2000/08/15 11:17:07 grubba Exp $"); PMOD_EXPORT struct array empty_array= { @@ -487,7 +487,8 @@ PMOD_EXPORT ptrdiff_t array_search(struct array *v, struct svalue *s, * Slice a pice of an array (nondestructively) * return an array consisting of v[start..end-1] */ -PMOD_EXPORT struct array *slice_array(struct array *v,INT32 start,INT32 end) +PMOD_EXPORT struct array *slice_array(struct array *v, ptrdiff_t start, + ptrdiff_t end) { struct array *a; @@ -516,7 +517,9 @@ PMOD_EXPORT struct array *slice_array(struct array *v,INT32 start,INT32 end) * Slice a pice of an array (nondestructively) * return an array consisting of v[start..end-1] */ -PMOD_EXPORT struct array *friendly_slice_array(struct array *v,INT32 start,INT32 end) +PMOD_EXPORT struct array *friendly_slice_array(struct array *v, + ptrdiff_t start, + ptrdiff_t end) { struct array *a; diff --git a/src/array.h b/src/array.h index a8e6f463a29ffbdea5c3a13de21ddfaf9abdf700..8705db17692662189b212ba1a692b4ebb00b7886 100644 --- a/src/array.h +++ b/src/array.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: array.h,v 1.26 2000/08/15 11:09:37 grubba Exp $ + * $Id: array.h,v 1.27 2000/08/15 11:17:20 grubba Exp $ */ #ifndef ARRAY_H #define ARRAY_H @@ -105,8 +105,11 @@ PMOD_EXPORT struct array *array_shrink(struct array *v,INT32 size); PMOD_EXPORT struct array *array_remove(struct array *v,INT32 index); PMOD_EXPORT ptrdiff_t array_search(struct array *v, struct svalue *s, ptrdiff_t start); -PMOD_EXPORT struct array *slice_array(struct array *v,INT32 start,INT32 end); -PMOD_EXPORT struct array *friendly_slice_array(struct array *v,INT32 start,INT32 end); +PMOD_EXPORT struct array *slice_array(struct array *v, ptrdiff_t start, + ptrdiff_t end); +PMOD_EXPORT struct array *friendly_slice_array(struct array *v, + ptrdiff_t start, + ptrdiff_t end); PMOD_EXPORT struct array *copy_array(struct array *v); PMOD_EXPORT void check_array_for_destruct(struct array *v); PMOD_EXPORT INT32 array_find_destructed_object(struct array *v); diff --git a/src/operators.c b/src/operators.c index 1b4ac26526c9223b1a8a5154ff648d2e9b3015b2..19884bc352dfe870493ce00cb1699cb382202937 100644 --- a/src/operators.c +++ b/src/operators.c @@ -6,7 +6,7 @@ /**/ #include "global.h" #include <math.h> -RCSID("$Id: operators.c,v 1.98 2000/08/10 17:44:56 grubba Exp $"); +RCSID("$Id: operators.c,v 1.99 2000/08/15 11:18:46 grubba Exp $"); #include "interpret.h" #include "svalue.h" #include "multiset.h" @@ -1797,7 +1797,7 @@ PMOD_EXPORT void o_divide(void) for(last=0,e=0;e<size-1;e++) { - pos=(INT32)((e+1)*len); + pos = DO_NOT_WARN((ptrdiff_t)((e+1)*len)); a->item[e].u.string=string_slice(sp[-2].u.string, last, pos-last);