diff --git a/src/svalue.c b/src/svalue.c index c7d386586fdfb6abb9c12147c5a021dd6cb7ca90..660806f8a94a5f35308957f6f7c10ee7c8217723 100644 --- a/src/svalue.c +++ b/src/svalue.c @@ -23,7 +23,7 @@ #include "queue.h" #include "bignum.h" -RCSID("$Id: svalue.c,v 1.78 2000/06/29 16:44:24 grubba Exp $"); +RCSID("$Id: svalue.c,v 1.79 2000/07/02 14:54:07 grubba Exp $"); struct svalue dest_ob_zero = { T_INT, 0 }; @@ -1110,24 +1110,26 @@ void print_svalue (FILE *out, struct svalue *s) free (str.str); } -void clear_svalues(struct svalue *s, size_t num) +/* NOTE: Must handle num being negative. */ +void clear_svalues(struct svalue *s, ptrdiff_t num) { struct svalue dum; dum.type=T_INT; dum.subtype=NUMBER_NUMBER; dum.u.refs=0; dum.u.integer=0; - while(num--) *(s++)=dum; + while(num-- > 0) *(s++)=dum; } -void clear_svalues_undefined(struct svalue *s, size_t num) +/* NOTE: Must handle num being negative. */ +void clear_svalues_undefined(struct svalue *s, ptrdiff_t num) { struct svalue dum; dum.type=T_INT; dum.subtype=NUMBER_UNDEFINED; dum.u.refs=0; dum.u.integer=0; - while(num--) *(s++)=dum; + while(num-- > 0) *(s++)=dum; } void copy_svalues_recursively_no_free(struct svalue *to, diff --git a/src/svalue.h b/src/svalue.h index 2afcdceaf6edaeea3b6e4e38f5cc6501fb43d2c1..e1034e3d92a7cdbdc94e3fc87e2805738cf78ba4 100644 --- a/src/svalue.h +++ b/src/svalue.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: svalue.h,v 1.57 2000/06/29 16:44:24 grubba Exp $ + * $Id: svalue.h,v 1.58 2000/07/02 14:54:08 grubba Exp $ */ #ifndef SVALUE_H #define SVALUE_H @@ -366,8 +366,8 @@ int is_equal(struct svalue *a,struct svalue *b); int is_lt(struct svalue *a,struct svalue *b); void describe_svalue(struct svalue *s,int indent,struct processing *p); void print_svalue (FILE *out, struct svalue *s); -void clear_svalues(struct svalue *s, size_t num); -void clear_svalues_undefined(struct svalue *s, size_t num); +void clear_svalues(struct svalue *s, ptrdiff_t num); +void clear_svalues_undefined(struct svalue *s, ptrdiff_t num); void copy_svalues_recursively_no_free(struct svalue *to, struct svalue *from, size_t num,