[pango/harfbuzz-ng: 54/57] [HB] Tag sanitize()



commit c436b687c4d9ba59d0badbd8edb37c936cc3bcc9
Author: Behdad Esfahbod <behdad behdad org>
Date:   Tue Aug 4 14:42:46 2009 -0400

    [HB] Tag sanitize()

 pango/opentype/hb-open-types-private.hh       |    8 ++++++++
 pango/opentype/hb-ot-layout-common-private.hh |    6 +-----
 2 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/pango/opentype/hb-open-types-private.hh b/pango/opentype/hb-open-types-private.hh
index 8e325d7..d923b88 100644
--- a/pango/opentype/hb-open-types-private.hh
+++ b/pango/opentype/hb-open-types-private.hh
@@ -282,6 +282,14 @@ struct Tag : ULONG
   /* What the char* converters return is NOT nul-terminated.  Print using "%.4s" */
   inline operator const char* (void) const { return CONST_CHARP(this); }
   inline operator char* (void) { return CHARP(this); }
+
+  inline bool sanitize (SANITIZE_ARG_DEF) {
+    /* Note: Only accept ASCII-visible tags (mind DEL)
+     * This is one of the few times (only time?) we check
+     * for data integrity, as opposed o just boundary checks
+     */
+    return SANITIZE_SELF () && (((uint32_t) *this) & 0x80808080) == 0;
+  }
 };
 ASSERT_SIZE (Tag, 4);
 #define _NULL_TAG_INIT  {' ', ' ', ' ', ' '}
diff --git a/pango/opentype/hb-ot-layout-common-private.hh b/pango/opentype/hb-ot-layout-common-private.hh
index 8e3c4f8..5f7d439 100644
--- a/pango/opentype/hb-ot-layout-common-private.hh
+++ b/pango/opentype/hb-ot-layout-common-private.hh
@@ -47,11 +47,7 @@ template <typename Type>
 struct Record
 {
   inline bool sanitize (SANITIZE_ARG_DEF, const void *base) {
-    /* Note: Only accept ASCII-visible tags (mind DEL)
-     * This is one of the few times (only time?) we check
-     * for data integrity, as opposed o just boundary checks
-     */
-    return (tag & 0x80808080) == 0 && offset.sanitize (SANITIZE_ARG, base);
+    return SANITIZE (tag) == 0 && SANITIZE_BASE (offset, base);
   }
 
   Tag		tag;		/* 4-byte Tag identifier */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]