From fd56ae49637b978ea3b36fab5b48f1a3cc99e90e Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 8 Jul 2010 00:53:40 -0400 Subject: [PATCH] Don't bother sorting, it's a safe font error if the array is not sorted --- src/hb-open-type-private.hh | 29 ----------------------------- src/hb-ot-layout-common-private.hh | 7 ------- 2 files changed, 36 deletions(-) diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 9cc05180..99255776 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -724,35 +724,6 @@ struct SortedArrayOf : ArrayOf { const Type *p = (const Type *) bsearch (&x, this->array, this->len, sizeof (this->array[0]), Cmp::cmp); return p ? p - this->array : -1; } - - inline bool sanitize_order (hb_sanitize_context_t *c) { - /* Make sure the list is sorted, since we bsearch in it. */ - unsigned int count = this->len; - for (unsigned int i = 1; i < count; i++) - if (unlikely (this->array[i].cmp (this->array[i-1]) > 0)) { - /* We need to sort the entries. */ - if (!c->can_edit (this, this->get_size ())) return false; - class Cmp { - public: static int cmp (const void *p1, const void *p2) { - const Type *a = (const Type *) p1; - const Type *b = (const Type *) p2; - return b->cmp (*a); - } - }; - qsort (this->array, this->len, sizeof (this->array[0]), Cmp::cmp); - } - return true; - } - - inline bool sanitize (hb_sanitize_context_t *c) { - TRACE_SANITIZE (); - return ArrayOf::sanitize (c) && sanitize_order (c); - } - - inline bool sanitize (hb_sanitize_context_t *c, void *base) { - TRACE_SANITIZE (); - return ArrayOf::sanitize (c, base) && sanitize_order (c); - } }; diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index 59544992..5c90c27a 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -51,9 +51,6 @@ template struct Record { - inline int cmp (const Record &other) const { - return cmp (other.tag); - } inline int cmp (hb_tag_t b) const { hb_tag_t a = tag; return b < a ? -1 : b == a ? 0 : -1; @@ -120,10 +117,6 @@ struct RecordListOf : RecordArrayOf struct RangeRecord { - inline int cmp (const RangeRecord &other) const { - hb_codepoint_t a = start, b = other.start; - return b < a ? -1 : b == a ? 0 : +1; - } inline int cmp (hb_codepoint_t g) const { hb_codepoint_t a = start, b = end; return g < a ? -1 : g <= b ? 0 : +1 ; -- GitLab