diff --git a/src/hb-array.hh b/src/hb-array.hh
index 4705318..09d10b4 100644
--- a/src/hb-array.hh
+++ b/src/hb-array.hh
@@ -99,7 +99,14 @@
   template <typename T> operator T * () const { return arrayZ; }
 
   HB_INTERNAL bool operator == (const hb_array_t &o) const;
-  HB_INTERNAL uint32_t hash () const;
+
+  uint32_t hash () const {
+    uint32_t current = 0;
+    for (unsigned int i = 0; i < this->length; i++) {
+      current = current * 31 + hb_hash (this->arrayZ[i]);
+    }
+    return current;
+  }
 
   /*
    * Compare, Sort, and Search.
@@ -339,21 +346,28 @@
   return true;
 }
 
-template <typename T>
-uint32_t hb_array_t<T>::hash () const
-{
+/* TODO Specialize opeator== for hb_bytes_t and hb_ubytes_t. */
+
+template <>
+inline uint32_t hb_array_t<const char>::hash () const {
   uint32_t current = 0;
-  for (unsigned int i = 0; i < this->length; i++) {
-    current = current * 31 + hb_hash (this->arrayZ[i]);
-  }
+  for (unsigned int i = 0; i < this->length; i++)
+    current = current * 31 + (uint32_t) (this->arrayZ[i] * 2654435761u);
   return current;
 }
 
+template <>
+inline uint32_t hb_array_t<const unsigned char>::hash () const {
+  uint32_t current = 0;
+  for (unsigned int i = 0; i < this->length; i++)
+    current = current * 31 + (uint32_t) (this->arrayZ[i] * 2654435761u);
+  return current;
+}
+
+
 typedef hb_array_t<const char> hb_bytes_t;
 typedef hb_array_t<const unsigned char> hb_ubytes_t;
 
-/* TODO Specialize opeator==/hash() for hb_bytes_t and hb_ubytes_t. */
-//template <>
-//uint32_t hb_array_t<const char>::hash () const { return 0; }
+
 
 #endif /* HB_ARRAY_HH */
diff --git a/src/hb-ot-layout-gsubgpos.hh b/src/hb-ot-layout-gsubgpos.hh
index 4f0e17b..11b5b5f 100644
--- a/src/hb-ot-layout-gsubgpos.hh
+++ b/src/hb-ot-layout-gsubgpos.hh
@@ -713,9 +713,7 @@
 				     const void *intersects_data)
 {
   for (const HBUINT16 &_ : + hb_iter (values, count))
-  {
     if (intersects_func (glyphs, _, intersects_data)) return true;
-  }
   return false;
 }
 
