From 8198af9844e1e7abf36ed0a0634d79e50fbdc4f2 Mon Sep 17 00:00:00 2001 From: cuz Date: Sat, 2 Sep 2000 11:47:08 +0000 Subject: [PATCH] Added CollLast git-svn-id: svn://svn.cc65.org/cc65/trunk@314 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/common/coll.c | 12 ++++++++++++ src/common/coll.h | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/common/coll.c b/src/common/coll.c index b1e946910..0b36ca463 100644 --- a/src/common/coll.c +++ b/src/common/coll.c @@ -158,6 +158,18 @@ void* CollAt (Collection* C, unsigned Index) +void* CollLast (Collection* C) +/* Return the last item in a collection */ +{ + /* We must have at least one entry */ + PRECONDITION (C->Count > 0); + + /* Return the element */ + return C->Items[C->Count-1]; +} + + + void CollDelete (Collection* C, unsigned Index) /* Remove the item with the given index from the collection. This will not * free the item itself, just the pointer. All items with higher indices diff --git a/src/common/coll.h b/src/common/coll.h index 9c165799b..c84e0bbff 100644 --- a/src/common/coll.h +++ b/src/common/coll.h @@ -81,7 +81,7 @@ Collection* NewCollection (void); void FreeCollection (Collection* C); /* Free a collection */ -unsigned CollCount (Collection* C) attribute ((const)); +unsigned CollCount (Collection* C); /* Return the number of items in the collection */ void CollInsert (Collection* C, void* Item, unsigned Index); @@ -93,6 +93,9 @@ void CollAppend (Collection* C, void* Item); void* CollAt (Collection* C, unsigned Index) attribute ((const)); /* Return the item at the given index */ +void* CollLast (Collection* C); +/* Return the last item in a collection */ + void CollDelete (Collection* C, unsigned Index); /* Remove the item with the given index from the collection. This will not * free the item itself, just the pointer. All items with higher indices -- 2.39.5