ソースを参照

misc/grow_array.h: allow passing zero capacity to GrowArray_Init().

ambrop7 13 年 前
コミット
52b529b761
1 ファイル変更6 行追加4 行削除
  1. 6 4
      misc/grow_array.h

+ 6 - 4
misc/grow_array.h

@@ -57,14 +57,16 @@ static int GrowArray_DoubleUpLimit (GrowArrayObject *o, size_t limit) WARN_UNUSE
 
 static int GrowArray_Init (GrowArrayObject *o, size_t capacity)
 {
-    ASSERT(capacity > 0)
-    
     if (capacity > GROWARRAY_MAX_CAPACITY) {
         return 0;
     }
     
-    if (!(o->GROWARRAY_ARRAY_MEMBER = BAllocArray(capacity, sizeof(o->GROWARRAY_ARRAY_MEMBER[0])))) {
-        return 0;
+    if (capacity == 0) {
+        o->GROWARRAY_ARRAY_MEMBER = NULL;
+    } else {
+        if (!(o->GROWARRAY_ARRAY_MEMBER = BAllocArray(capacity, sizeof(o->GROWARRAY_ARRAY_MEMBER[0])))) {
+            return 0;
+        }
     }
     
     o->GROWARRAY_CAPACITY_MEMBER = capacity;