[vector] Implement move assignment using swap
diff --git a/src/hb-vector.hh b/src/hb-vector.hh
index d3a5dff..af07c28 100644
--- a/src/hb-vector.hh
+++ b/src/hb-vector.hh
@@ -110,11 +110,7 @@
   }
   hb_vector_t& operator = (hb_vector_t &&o)
   {
-    fini ();
-    allocated = o.allocated;
-    length = o.length;
-    arrayZ = o.arrayZ;
-    o.init ();
+    hb_swap (*this, o);
     return *this;
   }