diff --git a/src/hb-aat-layout-feat-table.hh b/src/hb-aat-layout-feat-table.hh
index 899a9b9..ab7483f 100644
--- a/src/hb-aat-layout-feat-table.hh
+++ b/src/hb-aat-layout-feat-table.hh
@@ -69,12 +69,10 @@
 
 struct FeatureName
 {
-  static int cmp (const void *key_, const void *entry_)
+  int cmp (hb_aat_layout_feature_type_t key) const
   {
-    hb_aat_layout_feature_selector_t key = * (hb_aat_layout_feature_selector_t *) key_;
-    const FeatureName * entry = (const FeatureName *) entry_;
-    return key < entry->feature ? -1 :
-	   key > entry->feature ? +1 :
+    return key < feature ? -1 :
+	   key > feature ? +1 :
 	   0;
   }
 
@@ -155,6 +153,8 @@
 {
   static const hb_tag_t tableTag = HB_AAT_TAG_feat;
 
+  inline bool has_data (void) const { return version.to_int (); }
+
   inline unsigned int get_feature_types (unsigned int                  start_offset,
 					 unsigned int                 *count,
 					 hb_aat_layout_feature_type_t *features) const
@@ -172,12 +172,7 @@
 
   inline const FeatureName& get_feature (hb_aat_layout_feature_type_t key) const
   {
-    const FeatureName* feature = (FeatureName*) hb_bsearch (&key, &namesZ,
-							    featureNameCount,
-							    FeatureName::static_size,
-							    FeatureName::cmp);
-
-    return feature ? *feature : Null (FeatureName);
+    return namesZ.bsearch (featureNameCount, key);
   }
 
   inline hb_ot_name_id_t get_feature_name_id (hb_aat_layout_feature_type_t feature) const
@@ -211,7 +206,7 @@
 				/* The number of entries in the feature name array. */
   HBUINT16	reserved1;	/* Reserved (set to zero). */
   HBUINT32	reserved2;	/* Reserved (set to zero). */
-  UnsizedArrayOf<FeatureName>
+  SortedUnsizedArrayOf<FeatureName>
 		namesZ;		/* The feature name array. */
   public:
   DEFINE_SIZE_STATIC (24);
