]> git.sur5r.net Git - cc65/commitdiff
Added CollPop
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 5 May 2001 12:34:22 +0000 (12:34 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 5 May 2001 12:34:22 +0000 (12:34 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@714 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/common/coll.c
src/common/coll.h

index f2cd52f7e28c78ae9e340d4e66e387cce1d0b851..c552cbf0df3f40a0ab317151f775be23d4a02fa0 100644 (file)
@@ -195,10 +195,24 @@ const void* CollConstLast (const Collection* C)
 
 
 
+void* CollPop (Collection* C)
+/* Remove the last segment from the stack and return it. Calls FAIL if the
+ * collection is empty.
+ */
+{
+    /* We must have at least one entry */
+    PRECONDITION (C->Count > 0);
+
+    /* Return the element */
+    return C->Items[--C->Count];
+}
+
+
+
 int CollIndex (Collection* C, const void* Item)
 /* Return the index of the given item in the collection. Return -1 if the
  * item was not found in the collection.
- */                                           
+ */
 {
     /* Linear search */
     unsigned I;
index bab2ffc48c4293cef7e28ec61c20921a553990ba..83d3e9d22c866506b61227a1603e59fda81006ab 100644 (file)
@@ -102,6 +102,11 @@ void* CollLast (Collection* C);
 const void* CollConstLast (const Collection* C);
 /* Return the last item in a collection */
 
+void* CollPop (Collection* C);
+/* Remove the last segment from the stack and return it. Calls FAIL if the
+ * collection is empty.
+ */
+
 int CollIndex (Collection* C, const void* Item);
 /* Return the index of the given item in the collection. Return -1 if the
  * item was not found in the collection.