]> git.sur5r.net Git - cc65/commitdiff
Allow static initialization of collections
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 1 Sep 2000 14:48:04 +0000 (14:48 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 1 Sep 2000 14:48:04 +0000 (14:48 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@308 b7a2c559-68d2-44c3-8de9-860c34a00d81

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

index 36399d105bb8ff0747651716b90ba06b1cdc112a..b1e94691075f06cf29b2cd7ddb8a24c70a45f13c 100644 (file)
@@ -114,7 +114,11 @@ void CollInsert (Collection* C, void* Item, unsigned Index)
     if (C->Count >= C->Size) {
        /* Must grow */
                void** NewItems;
-       C->Size *= 2;
+       if (C->Size > 0) {
+           C->Size *= 2;
+       } else {
+           C->Size = 8;
+       }
        NewItems = xmalloc (C->Size * sizeof (void*));
        memcpy (NewItems, C->Items, C->Count * sizeof (void*));
        xfree (C->Items);
index 6b8f09c8a264a9d51ab4088d233a66cb283b4292..9c165799b1d049b26f4bd750f63bde1f207e7730 100644 (file)
@@ -56,6 +56,9 @@ struct Collection {
     void**             Items;          /* Array with dynamic size */
 };
 
+/* Initializer for static collections */
+#define STATIC_COLLECTION_INITIALIZER  { 0, 0, 0 }
+
 
 
 /*****************************************************************************/
@@ -73,7 +76,7 @@ void DoneCollection (Collection* C);
  */
 
 Collection* NewCollection (void);
-/* Create and return a new collection with the given initial size */
+/* Create and return a new collection */
 
 void FreeCollection (Collection* C);
 /* Free a collection */