Fix compile
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 9 May 2019 22:19:42 +0000 (15:19 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 9 May 2019 22:24:25 +0000 (15:24 -0700)
NameRecord is not copy-constructible, so should be iterator of
const-reference.

src/hb-meta.hh
src/hb-ot-name-table.hh
src/test-meta.cc

index bcd541e..b906c55 100644 (file)
@@ -157,8 +157,6 @@ struct hb_is_convertible
                       (!either_void &&
                        decltype (impl<hb_conditional<from_void, int, From>> (hb_prioritize))::value);
 };
-
-
 #define hb_is_convertible(From,To) hb_is_convertible<From, To>::value
 
 
index 1c8f544..04995c4 100644 (file)
@@ -170,7 +170,7 @@ struct name
   { return min_size + count * nameRecordZ.item_size; }
 
   template <typename Iterator,
-           hb_requires (hb_is_iterator_of (Iterator, const NameRecord))>
+           hb_requires (hb_is_iterator_of (Iterator, const NameRecord &))>
   bool serialize (hb_serialize_context_t *c,
                  Iterator it,
                  const void *src_string_pool)
index a7cfef5..d2976b6 100644 (file)
@@ -55,6 +55,18 @@ main (int argc, char **argv)
   static_assert (hb_is_convertible (int&, const int));
   static_assert (hb_is_convertible (const int&, int));
   static_assert (hb_is_convertible (const int&, const int));
+  static_assert (hb_is_convertible (const int&, const int));
+
+  struct X {};
+
+  static_assert (hb_is_convertible (const X &, const X));
+  static_assert (hb_is_convertible (X &, const X));
+  static_assert (hb_is_convertible (X &, const X &));
+  static_assert (hb_is_convertible (X, const X &));
+  static_assert (hb_is_convertible (const X, const X &));
+  static_assert (!hb_is_convertible (const X, X &));
+  static_assert (!hb_is_convertible (X, X &));
+  static_assert (hb_is_convertible (X &, X &));
 
   static_assert (hb_is_convertible (int&, long));
   static_assert (!hb_is_convertible (int&, long&));