From 2e18c6dbdfbbfdec0490260bb7cb5213551b2188 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 6 Jul 2011 16:05:45 -0400 Subject: [PATCH] Fix reverse_range() position loop Mozilla Bug 669175 - Slow rendering of text sometimes in this case, using direction: rtl --- src/hb-buffer.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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]; -- 2.7.4