Simplify hb_prealloced_array_t initialization
authorBehdad Esfahbod <behdad@behdad.org>
Sun, 15 Oct 2017 20:38:29 +0000 (16:38 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Sun, 15 Oct 2017 20:38:29 +0000 (16:38 -0400)
src/hb-private.hh

index 3cf8b8d..5deaa9d 100644 (file)
@@ -404,7 +404,12 @@ struct hb_prealloced_array_t
   Type *array;
   Type static_array[StaticSize];
 
-  void init (void) { memset (this, 0, sizeof (*this)); }
+  void init (void)
+  {
+    len = 0;
+    allocated = ARRAY_LENGTH (static_array);
+    array = static_array;
+  }
 
   inline Type& operator [] (unsigned int i) { return array[i]; }
   inline const Type& operator [] (unsigned int i) const { return array[i]; }
@@ -419,11 +424,7 @@ struct hb_prealloced_array_t
 
   inline bool resize (unsigned int size)
   {
-    if (!array) {
-      array = static_array;
-      allocated = ARRAY_LENGTH (static_array);
-    }
-    if (size > allocated)
+    if (unlikely (size > allocated))
     {
       /* Need to reallocate */