mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-11 00:30:49 +00:00
New functions for stacks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@4464 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
91a0be74b6
commit
19496ceb7b
3 changed files with 41 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
1999-06-24 Adam Fedor <fedor@gnu.org>
|
||||||
|
|
||||||
|
* Source/include/GSIArray.h (GSIArrayRemoveLastItem): New function.
|
||||||
|
(GSIArrayLastItem): Likewise.
|
||||||
|
(GSIArrayCopyWithZone): Likewise.
|
||||||
|
|
||||||
Tue Jun 22 16:15:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
Tue Jun 22 16:15:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||||
|
|
||||||
* Source/NSThread.m: Various changes to tidy up notification handling
|
* Source/NSThread.m: Various changes to tidy up notification handling
|
||||||
|
|
|
@ -313,6 +313,16 @@ GSIArrayRemoveItemAtIndex(GSIArray array, unsigned index)
|
||||||
GSI_ARRAY_RELEASE(tmp);
|
GSI_ARRAY_RELEASE(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static INLINE void
|
||||||
|
GSIArrayRemoveLastItem(GSIArray array)
|
||||||
|
{
|
||||||
|
#ifdef GSI_ARRAY_CHECKS
|
||||||
|
NSCAssert(array->count, NSInvalidArgumentException);
|
||||||
|
#endif
|
||||||
|
GSI_ARRAY_RELEASE(array->ptr[array->count-1]);
|
||||||
|
array->count--;
|
||||||
|
}
|
||||||
|
|
||||||
static INLINE void
|
static INLINE void
|
||||||
GSIArrayRemoveItemAtIndexNoRelease(GSIArray array, unsigned index)
|
GSIArrayRemoveItemAtIndexNoRelease(GSIArray array, unsigned index)
|
||||||
{
|
{
|
||||||
|
@ -348,6 +358,15 @@ GSIArrayItemAtIndex(GSIArray array, unsigned index)
|
||||||
return array->ptr[index];
|
return array->ptr[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static INLINE GSIArrayItem
|
||||||
|
GSIArrayLastItem(GSIArray array)
|
||||||
|
{
|
||||||
|
#ifdef GSI_ARRAY_CHECKS
|
||||||
|
NSCAssert(array->count, NSInvalidArgumentException);
|
||||||
|
#endif
|
||||||
|
return array->ptr[array->count-1];
|
||||||
|
}
|
||||||
|
|
||||||
static INLINE void
|
static INLINE void
|
||||||
GSIArrayClear(GSIArray array)
|
GSIArrayClear(GSIArray array)
|
||||||
{
|
{
|
||||||
|
@ -423,3 +442,18 @@ GSIArrayInitWithZoneAndCapacity(GSIArray array, NSZone *zone, size_t capacity)
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static INLINE GSIArray
|
||||||
|
GSIArrayCopyWithZone(GSIArray array, NSZone *zone)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
GSIArray new;
|
||||||
|
new = NSZoneMalloc(zone, sizeof(GSIArray_t));
|
||||||
|
GSIArrayInitWithZoneAndCapacity(new, zone, array->count);
|
||||||
|
|
||||||
|
for (i = 0; i < array->count; i++)
|
||||||
|
{
|
||||||
|
GSI_ARRAY_RETAIN(array->ptr[i]);
|
||||||
|
new->ptr[new->count++] = array->ptr[i];
|
||||||
|
}
|
||||||
|
return new;
|
||||||
|
}
|
||||||
|
|
|
@ -87,6 +87,7 @@ static void FreeList(Observation *list)
|
||||||
static void *RetainObs(Observation *o)
|
static void *RetainObs(Observation *o)
|
||||||
{
|
{
|
||||||
o->retained++;
|
o->retained++;
|
||||||
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned oHash(void* t, Observation *o)
|
static unsigned oHash(void* t, Observation *o)
|
||||||
|
|
Loading…
Reference in a new issue