[HarfBuzz] harfbuzz: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Wed Jan 29 13:09:54 PST 2014


 src/hb-common.h |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit 7691a154e50f8c8c77bbd94787686262955bf5d4
Author: Jonathan Kew <jfkthame at gmail.com>
Date:   Wed Jan 29 14:07:58 2014 +0000

    Ensure hb_script_t can safely hold any hb_tag_t value it's given.
    
    Fixes https://github.com/behdad/harfbuzz/pull/21

diff --git a/src/hb-common.h b/src/hb-common.h
index e445504..c8bfd88 100644
--- a/src/hb-common.h
+++ b/src/hb-common.h
@@ -94,6 +94,7 @@ typedef uint32_t hb_tag_t;
 #define HB_UNTAG(tag)   ((uint8_t)((tag)>>24)), ((uint8_t)((tag)>>16)), ((uint8_t)((tag)>>8)), ((uint8_t)(tag))
 
 #define HB_TAG_NONE HB_TAG(0,0,0,0)
+#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)
 
 /* len=-1 means str is NUL-terminated. */
 hb_tag_t
@@ -270,7 +271,12 @@ typedef enum
   /*6.1*/ HB_SCRIPT_TAKRI			= HB_TAG ('T','a','k','r'),
 
   /* No script set. */
-  /*---*/ HB_SCRIPT_INVALID			= HB_TAG_NONE
+  /*---*/ HB_SCRIPT_INVALID			= HB_TAG_NONE,
+
+  /* Dummy value to ensure any hb_tag_t value can be passed/stored as hb_script_t
+   * without risking undefined behavior. */
+  /*---*/ _HB_SCRIPT_MAX_VALUE			= HB_TAG_MAX
+
 } hb_script_t;
 
 /* These are moved out of hb_script_t because glib-mkenums chokes otherwise. */


More information about the HarfBuzz mailing list