From 7587683cdce8ee9b7f07bae82aa1bb163e79ab92 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 7 Mar 2018 09:55:22 +0100 Subject: [PATCH] [set] Minor In preparation to fix https://github.com/harfbuzz/harfbuzz/issues/863 Binary operations are sets are completely broken. Ouch. --- src/hb-set-private.hh | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/hb-set-private.hh b/src/hb-set-private.hh index 49cd7912..09ca010d 100644 --- a/src/hb-set-private.hh +++ b/src/hb-set-private.hh @@ -430,19 +430,26 @@ struct hb_set_t { a--; b--; - Op::process (page_at (--count).v, page_at (a).v, other->page_at (b).v); + count--; + Op::process (page_at (count).v, page_at (a).v, other->page_at (b).v); } else if (page_map[a - 1].major > other->page_map[b - 1].major) { - a--; - if (Op::passthru_left) - page_at (--count).v = page_at (a).v; + a--; + if (Op::passthru_left) + { + count--; + page_at (count).v = page_at (a).v; + } } else { - b--; - if (Op::passthru_right) - page_at (--count).v = other->page_at (b).v; + b--; + if (Op::passthru_right) + { + count--; + page_at (count).v = other->page_at (b).v; + } } } if (Op::passthru_left) -- GitLab