src/hb-private.hh | 2 +- src/hb-set-private.hh | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-)
New commits: commit 2ee710e02fad1a8a4b94589bb6f0b90e2aeb7121 Author: Behdad Esfahbod <beh...@behdad.org> Date: Mon Oct 23 08:37:48 2017 -0400 Minor diff --git a/src/hb-private.hh b/src/hb-private.hh index 3d617e2a..b139ed67 100644 --- a/src/hb-private.hh +++ b/src/hb-private.hh @@ -340,7 +340,7 @@ _hb_popcount64 (uint64_t mask) if (sizeof (long) >= sizeof (mask)) return __builtin_popcountl (mask); #endif - return _hb_popcount32 (mask) + _hb_popcount32 (mask >> 32); + return _hb_popcount32 (mask & 0xFFFFFFFF) + _hb_popcount32 (mask >> 32); } template <typename T> static inline unsigned int _hb_popcount (T mask); template <> inline unsigned int _hb_popcount<uint32_t> (uint32_t mask) { return _hb_popcount32 (mask); } commit dd33e4e96b9345a6b1a9051a6aa4b7d114c74f1e Author: Behdad Esfahbod <beh...@behdad.org> Date: Mon Oct 23 08:36:40 2017 -0400 [set] Don't use major() Fixes https://github.com/behdad/harfbuzz/issues/577 diff --git a/src/hb-set-private.hh b/src/hb-set-private.hh index cca4d3f9..de34d172 100644 --- a/src/hb-set-private.hh +++ b/src/hb-set-private.hh @@ -361,7 +361,7 @@ struct hb_set_t return *codepoint != INVALID; } - page_map_t map = {major (*codepoint), 0}; + page_map_t map = {get_major (*codepoint), 0}; unsigned int i; page_map.bfind (&map, &i); if (i < page_map.len) @@ -432,7 +432,7 @@ struct hb_set_t page_t *page_for_insert (hb_codepoint_t g) { - page_map_t map = {major (g), pages.len}; + page_map_t map = {get_major (g), pages.len}; unsigned int i; if (!page_map.bfind (&map, &i)) { @@ -447,7 +447,7 @@ struct hb_set_t } page_t *page_for (hb_codepoint_t g) { - page_map_t key = {major (g)}; + page_map_t key = {get_major (g)}; const page_map_t *found = page_map.bsearch (&key); if (found) return &pages[found->index]; @@ -455,7 +455,7 @@ struct hb_set_t } const page_t *page_for (hb_codepoint_t g) const { - page_map_t key = {major (g)}; + page_map_t key = {get_major (g)}; const page_map_t *found = page_map.bsearch (&key); if (found) return &pages[found->index]; @@ -463,7 +463,7 @@ struct hb_set_t } page_t &page_at (unsigned int i) { return pages[page_map[i].index]; } const page_t &page_at (unsigned int i) const { return pages[page_map[i].index]; } - unsigned int major (hb_codepoint_t g) const { return g / page_t::PAGE_BITS; } + unsigned int get_major (hb_codepoint_t g) const { return g / page_t::PAGE_BITS; } }; commit d0f0ff85b9fe959ef4b90f8daf58be73fca49dd0 Author: Behdad Esfahbod <beh...@behdad.org> Date: Mon Oct 23 08:34:30 2017 -0400 [set] Don't use PAGE_SIZE Fixes https://github.com/behdad/harfbuzz/issues/576 diff --git a/src/hb-set-private.hh b/src/hb-set-private.hh index 9e0c11e1..cca4d3f9 100644 --- a/src/hb-set-private.hh +++ b/src/hb-set-private.hh @@ -156,6 +156,7 @@ struct hb_set_t elt_t const &elt (hb_codepoint_t g) const { return v[(g & MASK) / ELT_BITS]; } elt_t mask (hb_codepoint_t g) const { return elt_t (1) << (g & ELT_MASK); } }; + static_assert (page_t::PAGE_BITS == sizeof (page_t) * 8, ""); hb_object_header_t header; ASSERT_POD (); @@ -367,7 +368,7 @@ struct hb_set_t { if (pages[page_map[i].index].next (codepoint)) { - *codepoint += page_map[i].major * PAGE_SIZE; + *codepoint += page_map[i].major * page_t::PAGE_BITS; return true; } i++; @@ -377,7 +378,7 @@ struct hb_set_t hb_codepoint_t m = pages[page_map[i].index].get_min (); if (m != INVALID) { - *codepoint = page_map[i].major * PAGE_SIZE + m; + *codepoint = page_map[i].major * page_t::PAGE_BITS + m; return true; } } @@ -415,7 +416,7 @@ struct hb_set_t unsigned int count = pages.len; for (unsigned int i = 0; i < count; i++) if (!page_at (i).is_empty ()) - return page_map[i].major * PAGE_SIZE + page_at (i).get_min (); + return page_map[i].major * page_t::PAGE_BITS + page_at (i).get_min (); return INVALID; } inline hb_codepoint_t get_max (void) const @@ -423,11 +424,10 @@ struct hb_set_t unsigned int count = pages.len; for (int i = count - 1; i >= 0; i++) if (!page_at (i).is_empty ()) - return page_map[i].major * PAGE_SIZE + page_at (i).get_max (); + return page_map[i].major * page_t::PAGE_BITS + page_at (i).get_max (); return INVALID; } - static const unsigned int PAGE_SIZE = sizeof (page_t) * 8; static const hb_codepoint_t INVALID = HB_SET_VALUE_INVALID; page_t *page_for_insert (hb_codepoint_t g) @@ -463,7 +463,7 @@ struct hb_set_t } page_t &page_at (unsigned int i) { return pages[page_map[i].index]; } const page_t &page_at (unsigned int i) const { return pages[page_map[i].index]; } - unsigned int major (hb_codepoint_t g) const { return g / PAGE_SIZE; } + unsigned int major (hb_codepoint_t g) const { return g / page_t::PAGE_BITS; } }; _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/harfbuzz