[name] Start implementing hb_ot_name_get_utf16()
diff --git a/src/hb-ot-name-table.hh b/src/hb-ot-name-table.hh
index 37a2d42..3d7b731 100644
--- a/src/hb-ot-name-table.hh
+++ b/src/hb-ot-name-table.hh
@@ -165,8 +165,9 @@
     inline void init (hb_face_t *face)
     {
       this->blob = hb_sanitize_context_t().reference_table<name> (face);
-      const name *table = this->blob->as<name> ();
-      const hb_array_t<NameRecord> &all_names = hb_array_t<NameRecord> (table->nameRecordZ.arrayZ, table->count);
+      this->table = this->blob->as<name> ();
+      const hb_array_t<NameRecord> &all_names = hb_array_t<NameRecord> (this->table->nameRecordZ.arrayZ,
+									this->table->count);
 
       this->names.init ();
 
@@ -204,6 +205,7 @@
     private:
     hb_blob_t *blob;
     public:
+    const name *table;
     hb_vector_t<hb_ot_name_entry_t> names;
   };
 
diff --git a/src/hb-ot-name.cc b/src/hb-ot-name.cc
index 85995f8..b5143d3 100644
--- a/src/hb-ot-name.cc
+++ b/src/hb-ot-name.cc
@@ -48,3 +48,25 @@
     *entries = name.names.arrayZ();
   return name.names.len;
 }
+
+
+hb_bool_t
+hb_ot_name_get_utf16 (hb_face_t     *face,
+		      hb_name_id_t   name_id,
+		      hb_language_t  language,
+		      unsigned int  *text_size /* IN/OUT */,
+		      uint16_t      *text      /* OUT */)
+{
+  const OT::name_accelerator_t &name = _get_name (face);
+  unsigned int idx = 0; //XXX
+  hb_bytes_t bytes = name.table->get_name (idx);
+  if (*text_size)
+  {
+    /* TODO Switch to walking string and validating. */
+    memcpy (text, bytes.arrayZ, MIN (*text_size * 2, bytes.len));
+  }
+  /* XXX Null-terminate. */
+  *text_size = bytes.len / 2; //TODO
+  /* TODO Fallback? */
+  return true; //XXX
+}
diff --git a/src/hb-ot-name.h b/src/hb-ot-name.h
index ddd2c25..0bf72c6 100644
--- a/src/hb-ot-name.h
+++ b/src/hb-ot-name.h
@@ -49,12 +49,14 @@
 #define HB_NAME_ID_INVALID 0xFFFF
 
 
+#if 0
 HB_EXTERN hb_bool_t
-hb_ot_name_get_utf8 (hb_face_t     *face,
+Xhb_ot_name_get_utf8 (hb_face_t     *face,
 		     hb_name_id_t   name_id,
 		     hb_language_t  language,
 		     unsigned int  *text_size /* IN/OUT */,
 		     char          *text      /* OUT */);
+#endif
 
 HB_EXTERN hb_bool_t
 hb_ot_name_get_utf16 (hb_face_t     *face,
@@ -63,12 +65,14 @@
 		      unsigned int  *text_size /* IN/OUT */,
 		      uint16_t      *text      /* OUT */);
 
+#if 0
 HB_EXTERN hb_bool_t
-hb_ot_name_get_utf32 (hb_face_t     *face,
+Xhb_ot_name_get_utf32 (hb_face_t     *face,
 		      hb_name_id_t   name_id,
 		      hb_language_t  language,
 		      unsigned int  *text_size /* IN/OUT */,
 		      uint32_t      *text      /* OUT */);
+#endif
 
 
 typedef struct hb_ot_name_entry_t