use size_t instead of unsigned int.
This commit is contained in:
parent
db992975eb
commit
b7033e1478
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue