mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +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
134d7cac2e
commit
4d85cbdec2
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>
|
||||
|
||||
* Source/NSThread.m: Various changes to tidy up notification handling
|
||||
|
|
|
@ -313,6 +313,16 @@ GSIArrayRemoveItemAtIndex(GSIArray array, unsigned index)
|
|||
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
|
||||
GSIArrayRemoveItemAtIndexNoRelease(GSIArray array, unsigned index)
|
||||
{
|
||||
|
@ -348,6 +358,15 @@ GSIArrayItemAtIndex(GSIArray array, unsigned 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
|
||||
GSIArrayClear(GSIArray array)
|
||||
{
|
||||
|
@ -423,3 +442,18 @@ GSIArrayInitWithZoneAndCapacity(GSIArray array, NSZone *zone, size_t capacity)
|
|||
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)
|
||||
{
|
||||
o->retained++;
|
||||
return o;
|
||||
}
|
||||
|
||||
static unsigned oHash(void* t, Observation *o)
|
||||
|
|
Loading…
Reference in a new issue