From b6e66ee102eb5b64d945e5a73ab63fe8cac5edcb Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 12 Aug 2009 16:50:28 -0400 Subject: [PATCH] [HB] Always clear positions if dirty, before returning to user --- src/hb-buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hb-buffer.c b/src/hb-buffer.c index 94b8a5b79..93b51e5c5 100644 --- a/src/hb-buffer.c +++ b/src/hb-buffer.c @@ -374,7 +374,7 @@ hb_buffer_get_glyph_infos (hb_buffer_t *buffer) hb_glyph_position_t * hb_buffer_get_glyph_positions (hb_buffer_t *buffer) { - if (buffer->in_length && !buffer->positions) + if (buffer->have_output || (buffer->in_length && !buffer->positions)) hb_buffer_clear_positions (buffer); return (hb_glyph_position_t *) buffer->positions; @@ -435,7 +435,7 @@ hb_utf8_next (const uint8_t *text, unsigned int mask, len; UTF8_COMPUTE (c, mask, len); - if (HB_UNLIKELY (!len || end - text < len)) { + if (HB_UNLIKELY (!len || (unsigned int) (end - text) < len)) { *unicode = -1; return text + 1; } else {