diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2009-08-04 10:23:01 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2009-08-04 10:23:01 -0400 |
commit | a501ac401398cc85d2c9695bb2fc41dc4f7efb39 (patch) | |
tree | 54de3191c6acbb5691f79e4a1069f2fc8afc6039 | |
parent | 477a991e5e89462fc186cc1d797af7d05ee9fd89 (diff) | |
download | pango-a501ac401398cc85d2c9695bb2fc41dc4f7efb39.tar.gz |
[HB] Simplify indirect sanitize()
-rw-r--r-- | pango/opentype/hb-open-types-private.hh | 52 | ||||
-rw-r--r-- | pango/opentype/hb-ot-layout-common-private.hh | 11 |
2 files changed, 26 insertions, 37 deletions
diff --git a/pango/opentype/hb-open-types-private.hh b/pango/opentype/hb-open-types-private.hh index b3d7541a..198c0ad2 100644 --- a/pango/opentype/hb-open-types-private.hh +++ b/pango/opentype/hb-open-types-private.hh @@ -383,6 +383,13 @@ struct ArrayOf return false; */ } + inline bool sanitize (SANITIZE_ARG_DEF, const char *base) { + if (!(SANITIZE (len) && SANITIZE_GET_SIZE())) return false; + unsigned int count = len; + for (unsigned int i = 0; i < count; i++) + if (!SANITIZE_THIS (array[i])) + return false; + } USHORT len; Type array[]; @@ -410,6 +417,13 @@ struct HeadlessArrayOf return false; */ } + inline bool sanitize (SANITIZE_ARG_DEF, const char *base) { + if (!(SANITIZE (len) && SANITIZE_GET_SIZE())) return false; + unsigned int count = len; + for (unsigned int i = 0; i < count; i++) + if (!SANITIZE_THIS (array[i])) + return false; + } USHORT len; Type array[]; @@ -436,6 +450,13 @@ struct LongArrayOf return false; */ } + inline bool sanitize (SANITIZE_ARG_DEF, const char *base) { + if (!(SANITIZE (len) && SANITIZE_GET_SIZE())) return false; + unsigned int count = len; + for (unsigned int i = 0; i < count; i++) + if (!SANITIZE_THIS (array[i])) + return false; + } ULONG len; Type array[]; @@ -443,39 +464,16 @@ struct LongArrayOf /* Array of Offset's */ template <typename Type> -struct OffsetArrayOf : ArrayOf<OffsetTo<Type> > { - inline bool sanitize (SANITIZE_ARG_DEF, const char *base) { - if (!(SANITIZE (this->len) && SANITIZE_GET_SIZE())) return false; - unsigned int count = this->len; - for (unsigned int i = 0; i < count; i++) - if (!this->array[i].sanitize (SANITIZE_ARG, base)) - return false; - } -}; +struct OffsetArrayOf : ArrayOf<OffsetTo<Type> > {}; /* Array of LongOffset's */ template <typename Type> -struct LongOffsetArrayOf : ArrayOf<LongOffsetTo<Type> > { - inline bool sanitize (SANITIZE_ARG_DEF, const char *base) { - if (!(SANITIZE (this->len) && SANITIZE_GET_SIZE())) return false; - unsigned int count = this->len; - for (unsigned int i = 0; i < count; i++) - if (!this->array[i].sanitize (SANITIZE_ARG, base)) - return false; - } -}; +struct LongOffsetArrayOf : ArrayOf<LongOffsetTo<Type> > {}; /* LongArray of LongOffset's */ template <typename Type> -struct LongOffsetLongArrayOf : LongArrayOf<LongOffsetTo<Type> > { - inline bool sanitize (SANITIZE_ARG_DEF, const char *base) { - if (!(SANITIZE (this->len) && SANITIZE_GET_SIZE())) return false; - unsigned int count = this->len; - for (unsigned int i = 0; i < count; i++) - if (!this->array[i].sanitize (SANITIZE_ARG, base)) - return false; - } -}; +struct LongOffsetLongArrayOf : LongArrayOf<LongOffsetTo<Type> > {}; + /* An array type is one that contains a variable number of objects * as its last item. An array object is extended with get_len() diff --git a/pango/opentype/hb-ot-layout-common-private.hh b/pango/opentype/hb-ot-layout-common-private.hh index a6fa2b45..72c2db03 100644 --- a/pango/opentype/hb-ot-layout-common-private.hh +++ b/pango/opentype/hb-ot-layout-common-private.hh @@ -61,16 +61,7 @@ struct Record }; template <typename Type> -struct RecordArrayOf : ArrayOf<Record<Type> > -{ - inline bool sanitize (SANITIZE_ARG_DEF, const char *base) { - if (!(SANITIZE (this->len) && SANITIZE_GET_SIZE())) return false; - unsigned int count = this->len; - for (unsigned int i = 0; i < count; i++) - if (!SANITIZE_THIS (this->array[i])) - return false; - } -}; +struct RecordArrayOf : ArrayOf<Record<Type> > {}; template <typename Type> struct RecordListOf : RecordArrayOf<Type> |