]> git.llucax.com Git - software/dgc/cdgc.git/blobdiff - rt/gc/cdgc/dynarray.d
Make heap precise scanning optional
[software/dgc/cdgc.git] / rt / gc / cdgc / dynarray.d
index 2a36d9342123fb80569754b6ed7f19138f7d20f1..feddd985411c8842742b498d2da286a48c87635b 100644 (file)
@@ -79,6 +79,14 @@ public:
         return this._capacity;
     }
 
+    /**
+     * Get the total ammount of bytes the array consumes.
+     */
+    size_t size_of()
+    {
+        return this.sizeof + this._capacity * (T.sizeof + (T*).sizeof);
+    }
+
     /**
      * Get the pointer to the array's data.
      *
@@ -190,7 +198,7 @@ public:
         if (new_capacity == 0)
             new_capacity = this._size * 2;
             if (new_capacity == 0)
-                new_capacity = 4;
+                new_capacity = 16;
         // reallocate the memory with the new_capacity
         T* new_data = cast(T*) realloc(this._data, new_capacity * T.sizeof);
         if (new_data is null)