diff --git a/src/hb-dsalgs.hh b/src/hb-dsalgs.hh index 1d2f753c6..42fd7040f 100644 --- a/src/hb-dsalgs.hh +++ b/src/hb-dsalgs.hh @@ -42,8 +42,12 @@ struct hb_void_t { typedef void value; }; template struct hb_pair_t { + typedef hb_pair_t pair_t; + hb_pair_t (const T1& a, const T2& b) : first (a), second (b) {} - hb_pair_t (const hb_pair_t& o) : hb_pair_t (o.first, o.second) {} + hb_pair_t (const pair_t& o) : hb_pair_t (o.first, o.second) {} + + bool operator == (const pair_t& o) const { return first == o.first && second == o.second; } T1 first; T2 second; diff --git a/src/hb-ot-layout-common.hh b/src/hb-ot-layout-common.hh index b8ac7381c..0e626a447 100644 --- a/src/hb-ot-layout-common.hh +++ b/src/hb-ot-layout-common.hh @@ -1108,7 +1108,7 @@ struct Coverage hb_sorted_iter_t >, hb_iter_mixin_t > { - Iter (const Coverage &c_) + Iter (const Coverage &c_ = Null(Coverage)) { memset (this, 0, sizeof (*this)); format = c_.u.format; @@ -1137,7 +1137,7 @@ struct Coverage default: break; } } - typedef hb_pair_t __item_type__; + typedef const hb_pair_t __item_type__; __item_type__ __item__ () const { return hb_pair (get_coverage (), get_glyph ()); } hb_codepoint_t get_glyph () const @@ -1155,7 +1155,7 @@ struct Coverage { case 1: return u.format1.get_coverage (); case 2: return u.format2.get_coverage (); - default:return -1; + default:return NOT_COVERED; } } diff --git a/src/test-iter.cc b/src/test-iter.cc index 2e8c408dc..e0adb393f 100644 --- a/src/test-iter.cc +++ b/src/test-iter.cc @@ -29,6 +29,7 @@ #include "hb-array.hh" #include "hb-set.hh" +#include "hb-ot-layout-common.hh" template @@ -81,7 +82,7 @@ test_iterator (Iterator it) } template static void -test_iterable (Iterable &lst = Null(Iterable)) +test_iterable (const Iterable &lst = Null(Iterable)) { // Test that can take iterator from. test_iterator (lst.iter ()); @@ -112,5 +113,11 @@ main (int argc, char **argv) hb_sorted_array_t sa; test_iterable (sa); + test_iterable > (); + test_iterable > (); + test_iterable > (); + test_iterable (); + test_iterable (); + return 0; }