use size_t instead of unsigned int.

This commit is contained in:
Florian Westphal 2005-08-30 13:36:32 +00:00
parent db992975eb
commit b7033e1478
2 changed files with 36 additions and 45 deletions

View File

@ -12,7 +12,7 @@
#include "array.h"
static char UNUSED id[] = "$Id: array.c,v 1.7 2005/08/28 12:18:50 fw Exp $";
static char UNUSED id[] = "$Id: array.c,v 1.8 2005/08/30 13:36:32 fw Exp $";
#include <assert.h>
@ -29,9 +29,9 @@ static char UNUSED id[] = "$Id: array.c,v 1.7 2005/08/28 12:18:50 fw Exp $";
static bool
safemult_uint(unsigned int a, unsigned int b, unsigned int *res)
safemult_sizet(size_t a, size_t b, size_t *res)
{
unsigned int tmp;
size_t tmp;
if (!a || !b) {
*res = 0;
@ -60,10 +60,10 @@ array_init(array *a)
/* if realloc() fails, array_alloc return NULL. otherwise return pointer to elem pos in array */
void *
array_alloc(array * a, unsigned int size, unsigned int pos)
array_alloc(array * a, size_t size, size_t pos)
{
unsigned int alloc, pos_plus1 = pos + 1;
unsigned int aligned = 0;
size_t alloc, pos_plus1 = pos + 1;
size_t aligned = 0;
char *tmp;
assert(size > 0);
@ -71,7 +71,7 @@ array_alloc(array * a, unsigned int size, unsigned int pos)
if (pos_plus1 < pos)
return NULL;
if (!safemult_uint(size, pos_plus1, &alloc))
if (!safemult_sizet(size, pos_plus1, &alloc))
return NULL;
if (a->allocated < alloc) {
@ -117,8 +117,8 @@ array_alloc(array * a, unsigned int size, unsigned int pos)
/*return number of initialized ELEMS in a. */
unsigned int
array_length(const array * const a, unsigned int membersize)
size_t
array_length(const array * const a, size_t membersize)
{
assert(a != NULL);
assert(membersize > 0);
@ -141,27 +141,18 @@ array_copy(array * dest, const array * const src)
}
/* return false if we could not append src (realloc failure, invalid src/dest array) */
/* return false on failure (realloc failure, invalid src/dest array) */
bool
array_copyb(array * dest, const char *src, unsigned int len)
array_copyb(array * dest, const char *src, size_t len)
{
assert(dest != NULL);
assert(src != NULL );
if (!len || !src)
return true;
if (!array_alloc(dest, 1, len))
if (!src || !dest)
return false;
dest->used = len;
memcpy(dest->mem, src, len);
#ifdef DEBUG
Log(LOG_DEBUG,
"array_copyb(): copied %u bytes to array (%u bytes allocated).",
len, dest->allocated);
#endif
return true;
array_trunc(dest);
return array_catb(dest, src, len);
}
@ -176,10 +167,10 @@ array_copys(array * dest, const char *src)
/* append len bytes from src to the array dest.
return false if we could not append all bytes (realloc failure, invalid src/dest array) */
bool
array_catb(array * dest, const char *src, unsigned int len)
array_catb(array * dest, const char *src, size_t len)
{
unsigned int tmp;
unsigned int used;
size_t tmp;
size_t used;
char *ptr;
assert(dest != NULL);
@ -258,9 +249,9 @@ array_cat(array * dest, const array * const src)
return NULL if the array is unallocated, or if pos is larger than
the number of elements stored int the array. */
void *
array_get(array * a, unsigned int membersize, unsigned int pos)
array_get(array * a, size_t membersize, size_t pos)
{
unsigned int totalsize;
size_t totalsize;
assert(membersize > 0);
assert(a != NULL);
@ -268,7 +259,7 @@ array_get(array * a, unsigned int membersize, unsigned int pos)
if (array_UNUSABLE(a))
return NULL;
if (!safemult_uint(pos, membersize, &totalsize))
if (!safemult_sizet(pos, membersize, &totalsize))
return NULL;
if (a->allocated < totalsize)
@ -321,11 +312,11 @@ array_trunc(array * a)
void
array_truncate(array * a, unsigned int membersize, unsigned int len)
array_truncate(array * a, size_t membersize, size_t len)
{
unsigned int newlen;
size_t newlen;
assert(a != NULL);
if (!safemult_uint(membersize, len, &newlen))
if (!safemult_sizet(membersize, len, &newlen))
return;
if (newlen <= a->allocated)
@ -335,9 +326,9 @@ array_truncate(array * a, unsigned int membersize, unsigned int len)
/* move elements starting at pos to beginning of array */
void
array_moveleft(array * a, unsigned int membersize, unsigned int pos)
array_moveleft(array * a, size_t membersize, size_t pos)
{
unsigned int bytepos;
size_t bytepos;
assert(a != NULL);
assert(membersize > 0);
@ -345,7 +336,7 @@ array_moveleft(array * a, unsigned int membersize, unsigned int pos)
if (!pos)
return;
if (!safemult_uint(membersize, pos, &bytepos)) {
if (!safemult_sizet(membersize, pos, &bytepos)) {
a->used = 0;
return;
}

View File

@ -8,7 +8,7 @@
* libarray - dynamically allocate arrays.
* Copyright (c) 2005 Florian Westphal (westphal@foo.fh-furtwangen.de)
*
* $Id: array.h,v 1.3 2005/07/28 16:12:50 fw Exp $
* $Id: array.h,v 1.4 2005/08/30 13:36:32 fw Exp $
*/
#ifndef array_h_included
@ -18,8 +18,8 @@
typedef struct {
char * mem;
unsigned int allocated;
unsigned int used;
size_t allocated;
size_t used;
} array;
/* allocated: mem != NULL, used >= 0 && used <= allocated, allocated > 0
@ -33,13 +33,13 @@ extern void array_init PARAMS((array *a));
/* allocates space for at least nmemb+1 elements of size bytes each.
return pointer to elem at pos, or NULL if realloc() fails */
extern void * array_alloc PARAMS((array *a, unsigned int size, unsigned int pos));
extern void * array_alloc PARAMS((array *a, size_t size, size_t pos));
/* returns the number of initialized BYTES in a. */
#define array_bytes(array) ( (array)->used )
/* returns the number of initialized ELEMS in a. */
extern unsigned int array_length PARAMS((const array* const a, unsigned int elemsize));
extern size_t array_length PARAMS((const array* const a, size_t elemsize));
/* _copy functions: copy src to dest.
return true if OK, else false (e. g. realloc failure, invalid src/dest
@ -49,7 +49,7 @@ extern unsigned int array_length PARAMS((const array* const a, unsigned int elem
extern bool array_copy PARAMS((array* dest, const array* const src));
/* copy len bytes from src to array dest. */
extern bool array_copyb PARAMS((array* dest, const char* src, unsigned int len));
extern bool array_copyb PARAMS((array* dest, const char* src, size_t len));
/* copy string to dest */
extern bool array_copys PARAMS((array* dest, const char* src));
@ -59,7 +59,7 @@ extern bool array_copys PARAMS((array* dest, const char* src));
array, ...). In that case dest is left unchanged. */
/* append len bytes from src to array dest. */
extern bool array_catb PARAMS((array* dest, const char* src, unsigned int len));
extern bool array_catb PARAMS((array* dest, const char* src, size_t len));
/* append string to dest */
extern bool array_cats PARAMS((array* dest, const char* src));
@ -76,7 +76,7 @@ extern bool array_cat PARAMS((array* dest, const array* const src));
/* return pointer to element at pos.
return NULL if the array is unallocated or if pos is larger than the number
of elements stored int the array. */
extern void* array_get PARAMS((array* a, unsigned int membersize, unsigned int pos));
extern void* array_get PARAMS((array* a, size_t membersize, size_t pos));
/* free the contents of this array. */
extern void array_free PARAMS((array* a));
@ -91,10 +91,10 @@ extern void* array_start PARAMS((const array* const a));
extern void array_trunc PARAMS((array* a));
/* set number of used elements in this array to len */
extern void array_truncate PARAMS((array* a, unsigned int membersize, unsigned int len));
extern void array_truncate PARAMS((array* a, size_t membersize, size_t len));
/* move elements starting at pos to beginning of array */
extern void array_moveleft PARAMS((array* a, unsigned int membersize, unsigned int pos));
extern void array_moveleft PARAMS((array* a, size_t membersize, size_t pos));
#endif