diff --git a/src/hb-ot-post-table.hh b/src/hb-ot-post-table.hh
index 090d3cc..7e164cb 100644
--- a/src/hb-ot-post-table.hh
+++ b/src/hb-ot-post-table.hh
@@ -117,7 +117,7 @@
 	if (glyph >= NUM_FORMAT1_NAMES)
 	  return hb_string_t ();
 
-	return hb_string_t (format1_names (glyph), strlen (format1_names (glyph)));
+	return format1_names (glyph);
       }
 
       if (version != 0x00020000 || glyph >= glyphNameIndex->len)
@@ -125,7 +125,7 @@
 
       unsigned int index = glyphNameIndex->array[glyph];
       if (index < NUM_FORMAT1_NAMES)
-	return hb_string_t (format1_names (index), strlen (format1_names (index)));
+	return format1_names (index);
       index -= NUM_FORMAT1_NAMES;
 
       if (index >= index_to_offset.len)
@@ -163,19 +163,6 @@
       if (unlikely (!len))
         return false;
 
-      if (version == 0x00010000)
-      {
-	for (int i = 0; i < NUM_FORMAT1_NAMES; i++)
-	{
-	  if (strncmp (name, format1_names (i), len) == 0 && format1_names (i)[len] == '\0')
-	  {
-	    *glyph = i;
-	    return true;
-	  }
-	}
-	return false;
-      }
-
       /* TODO format2 */
       return false;
     }
diff --git a/src/hb-string-array.hh b/src/hb-string-array.hh
index afad5d7..285b4b5 100644
--- a/src/hb-string-array.hh
+++ b/src/hb-string-array.hh
@@ -40,6 +40,10 @@
 
 static const union HB_STRING_ARRAY_TYPE_NAME {
   struct {
+/* I like to avoid storing the nul-termination byte since we don't need it,
+ * but C++ does not allow that.
+ * https://stackoverflow.com/questions/28433862/why-initializer-string-for-array-of-chars-is-too-long-compiles-fine-in-c-not
+ */
 #define _S(s) char HB_PASTE (str, __LINE__)[sizeof (s)];
 #include HB_STRING_ARRAY_LIST
 #undef _S
@@ -59,12 +63,15 @@
 #define _S(s) offsetof (union HB_STRING_ARRAY_TYPE_NAME, st.HB_PASTE(str, __LINE__)),
 #include HB_STRING_ARRAY_LIST
 #undef _S
+  sizeof (HB_STRING_ARRAY_TYPE_NAME)
 };
 
-static inline const char *
+static inline hb_string_t
 HB_STRING_ARRAY_NAME (unsigned int i)
 {
-  return HB_STRING_ARRAY_POOL_NAME.str + HB_STRING_ARRAY_OFFS_NAME[i];
+  assert (i < ARRAY_LENGTH (HB_STRING_ARRAY_OFFS_NAME) - 1);
+  return hb_string_t (HB_STRING_ARRAY_POOL_NAME.str + HB_STRING_ARRAY_OFFS_NAME[i],
+		      HB_STRING_ARRAY_OFFS_NAME[i + 1] - HB_STRING_ARRAY_OFFS_NAME[i] - 1);
 }
 
 #undef HB_STRING_ARRAY_TYPE_NAME
