[HarfBuzz] harfbuzz: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Fri Nov 15 10:08:23 PST 2013


 src/hb-buffer-private.hh |    2 +-
 src/hb-buffer.cc         |    3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 02c6c8cd6e8c93b63c75b25de6bf76bb45755bb4
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Nov 15 13:05:38 2013 -0500

    Set buffer content type to INVALID in hb_buffer_set_length(0)
    
    Previously we were only setting this in hb_buffer_clear_contents(),
    but set_length(0) is a valid way to reinitialize buffer to use with
    new text.

diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh
index d3ed449..49773f1 100644
--- a/src/hb-buffer-private.hh
+++ b/src/hb-buffer-private.hh
@@ -181,7 +181,7 @@ struct hb_buffer_t {
   HB_INTERNAL bool enlarge (unsigned int size);
 
   inline bool ensure (unsigned int size)
-  { return likely (size < allocated) ? true : enlarge (size); }
+  { return likely (!size || size < allocated) ? true : enlarge (size); }
 
   HB_INTERNAL bool make_room_for (unsigned int num_in, unsigned int num_out);
   HB_INTERNAL bool shift_forward (unsigned int count);
diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc
index bbf8ea0..d6c6fcb 100644
--- a/src/hb-buffer.cc
+++ b/src/hb-buffer.cc
@@ -1150,7 +1150,10 @@ hb_buffer_set_length (hb_buffer_t  *buffer,
   buffer->len = length;
 
   if (!length)
+  {
+    buffer->content_type = HB_BUFFER_CONTENT_TYPE_INVALID;
     buffer->clear_context (0);
+  }
   buffer->clear_context (1);
 
   return true;



More information about the HarfBuzz mailing list