From: Behdad Esfahbod Date: Wed, 6 Jul 2011 20:05:45 +0000 (-0400) Subject: Fix reverse_range() position loop X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2e18c6dbdfbbfdec0490260bb7cb5213551b2188;p=platform%2Fupstream%2FlibHarfBuzzSharp.git Fix reverse_range() position loop Mozilla Bug 669175 - Slow rendering of text sometimes in this case, using direction: rtl --- diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc index 7e79eef..0c16303 100644 --- a/src/hb-buffer.cc +++ b/src/hb-buffer.cc @@ -535,13 +535,16 @@ hb_buffer_get_glyph_positions (hb_buffer_t *buffer, } -static void +static inline void reverse_range (hb_buffer_t *buffer, unsigned int start, unsigned int end) { unsigned int i, j; + if (start == end - 1) + return; + for (i = start, j = end - 1; i < j; i++, j--) { hb_glyph_info_t t; @@ -551,7 +554,7 @@ reverse_range (hb_buffer_t *buffer, } if (buffer->pos) { - for (i = 0, j = end - 1; i < j; i++, j--) { + for (i = start, j = end - 1; i < j; i++, j--) { hb_glyph_position_t t; t = buffer->pos[i];