Add capacity test.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@8565 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2001-01-12 11:40:20 +00:00
parent 7ded3662a6
commit 47218c499c

View file

@ -111,6 +111,12 @@ struct _GSIArray {
typedef struct _GSIArray GSIArray_t;
typedef struct _GSIArray *GSIArray;
static INLINE unsigned
GSIArrayCapacity(GSIArray array)
{
return array->cap;
}
static INLINE unsigned
GSIArrayCount(GSIArray array)
{
@ -138,6 +144,30 @@ GSIArrayGrow(GSIArray array)
array->cap = next;
}
static INLINE void
GSIArrayGrowTo(GSIArray array, unsigned next)
{
unsigned size;
GSIArrayItem *tmp;
if (next < array->count)
{
[NSException raise: NSInvalidArgumentException
format: @"attempt to shrink below count"];
}
size = next*sizeof(GSIArrayItem);
tmp = NSZoneRealloc(array->zone, array->ptr, size);
if (tmp == 0)
{
[NSException raise: NSMallocException
format: @"failed to grow GSIArray"];
}
array->ptr = tmp;
array->old = array->cap;
array->cap = next;
}
static INLINE void
GSIArrayInsertItem(GSIArray array, GSIArrayItem item, unsigned index)
{