use size_t instead of unsigned int.
This commit is contained in:
parent
db992975eb
commit
b7033e1478
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
#include "array.h"
|
#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>
|
#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
|
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) {
|
if (!a || !b) {
|
||||||
*res = 0;
|
*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 */
|
/* if realloc() fails, array_alloc return NULL. otherwise return pointer to elem pos in array */
|
||||||
void *
|
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;
|
size_t alloc, pos_plus1 = pos + 1;
|
||||||
unsigned int aligned = 0;
|
size_t aligned = 0;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
|
|
||||||
assert(size > 0);
|
assert(size > 0);
|
||||||
|
@ -71,7 +71,7 @@ array_alloc(array * a, unsigned int size, unsigned int pos)
|
||||||
if (pos_plus1 < pos)
|
if (pos_plus1 < pos)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!safemult_uint(size, pos_plus1, &alloc))
|
if (!safemult_sizet(size, pos_plus1, &alloc))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (a->allocated < alloc) {
|
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. */
|
/*return number of initialized ELEMS in a. */
|
||||||
unsigned int
|
size_t
|
||||||
array_length(const array * const a, unsigned int membersize)
|
array_length(const array * const a, size_t membersize)
|
||||||
{
|
{
|
||||||
assert(a != NULL);
|
assert(a != NULL);
|
||||||
assert(membersize > 0);
|
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
|
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(dest != NULL);
|
||||||
assert(src != NULL );
|
assert(src != NULL );
|
||||||
|
|
||||||
if (!len || !src)
|
if (!src || !dest)
|
||||||
return true;
|
|
||||||
|
|
||||||
if (!array_alloc(dest, 1, len))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
dest->used = len;
|
array_trunc(dest);
|
||||||
memcpy(dest->mem, src, len);
|
return array_catb(dest, src, len);
|
||||||
#ifdef DEBUG
|
|
||||||
Log(LOG_DEBUG,
|
|
||||||
"array_copyb(): copied %u bytes to array (%u bytes allocated).",
|
|
||||||
len, dest->allocated);
|
|
||||||
#endif
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -176,10 +167,10 @@ array_copys(array * dest, const char *src)
|
||||||
/* append len bytes from src to the array dest.
|
/* append len bytes from src to the array dest.
|
||||||
return false if we could not append all bytes (realloc failure, invalid src/dest array) */
|
return false if we could not append all bytes (realloc failure, invalid src/dest array) */
|
||||||
bool
|
bool
|
||||||
array_catb(array * dest, const char *src, unsigned int len)
|
array_catb(array * dest, const char *src, size_t len)
|
||||||
{
|
{
|
||||||
unsigned int tmp;
|
size_t tmp;
|
||||||
unsigned int used;
|
size_t used;
|
||||||
char *ptr;
|
char *ptr;
|
||||||
|
|
||||||
assert(dest != NULL);
|
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
|
return NULL if the array is unallocated, or if pos is larger than
|
||||||
the number of elements stored int the array. */
|
the number of elements stored int the array. */
|
||||||
void *
|
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(membersize > 0);
|
||||||
assert(a != NULL);
|
assert(a != NULL);
|
||||||
|
@ -268,7 +259,7 @@ array_get(array * a, unsigned int membersize, unsigned int pos)
|
||||||
if (array_UNUSABLE(a))
|
if (array_UNUSABLE(a))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!safemult_uint(pos, membersize, &totalsize))
|
if (!safemult_sizet(pos, membersize, &totalsize))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (a->allocated < totalsize)
|
if (a->allocated < totalsize)
|
||||||
|
@ -321,11 +312,11 @@ array_trunc(array * a)
|
||||||
|
|
||||||
|
|
||||||
void
|
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);
|
assert(a != NULL);
|
||||||
if (!safemult_uint(membersize, len, &newlen))
|
if (!safemult_sizet(membersize, len, &newlen))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (newlen <= a->allocated)
|
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 */
|
/* move elements starting at pos to beginning of array */
|
||||||
void
|
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(a != NULL);
|
||||||
assert(membersize > 0);
|
assert(membersize > 0);
|
||||||
|
@ -345,7 +336,7 @@ array_moveleft(array * a, unsigned int membersize, unsigned int pos)
|
||||||
if (!pos)
|
if (!pos)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!safemult_uint(membersize, pos, &bytepos)) {
|
if (!safemult_sizet(membersize, pos, &bytepos)) {
|
||||||
a->used = 0;
|
a->used = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
* libarray - dynamically allocate arrays.
|
* libarray - dynamically allocate arrays.
|
||||||
* Copyright (c) 2005 Florian Westphal (westphal@foo.fh-furtwangen.de)
|
* 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
|
#ifndef array_h_included
|
||||||
|
@ -18,8 +18,8 @@
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char * mem;
|
char * mem;
|
||||||
unsigned int allocated;
|
size_t allocated;
|
||||||
unsigned int used;
|
size_t used;
|
||||||
} array;
|
} array;
|
||||||
|
|
||||||
/* allocated: mem != NULL, used >= 0 && used <= allocated, allocated > 0
|
/* 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.
|
/* allocates space for at least nmemb+1 elements of size bytes each.
|
||||||
return pointer to elem at pos, or NULL if realloc() fails */
|
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. */
|
/* returns the number of initialized BYTES in a. */
|
||||||
#define array_bytes(array) ( (array)->used )
|
#define array_bytes(array) ( (array)->used )
|
||||||
|
|
||||||
/* returns the number of initialized ELEMS in a. */
|
/* 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.
|
/* _copy functions: copy src to dest.
|
||||||
return true if OK, else false (e. g. realloc failure, invalid src/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));
|
extern bool array_copy PARAMS((array* dest, const array* const src));
|
||||||
|
|
||||||
/* copy len bytes from src to array dest. */
|
/* 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 */
|
/* copy string to dest */
|
||||||
extern bool array_copys PARAMS((array* dest, const char* src));
|
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. */
|
array, ...). In that case dest is left unchanged. */
|
||||||
|
|
||||||
/* append len bytes from src to array dest. */
|
/* 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 */
|
/* append string to dest */
|
||||||
extern bool array_cats PARAMS((array* dest, const char* src));
|
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 pointer to element at pos.
|
||||||
return NULL if the array is unallocated or if pos is larger than the number
|
return NULL if the array is unallocated or if pos is larger than the number
|
||||||
of elements stored int the array. */
|
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. */
|
/* free the contents of this array. */
|
||||||
extern void array_free PARAMS((array* a));
|
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));
|
extern void array_trunc PARAMS((array* a));
|
||||||
|
|
||||||
/* set number of used elements in this array to len */
|
/* 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 */
|
/* 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
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue