Don't bother sorting, it's a safe font error if the array is not sorted
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 8 Jul 2010 04:53:40 +0000 (00:53 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 8 Jul 2010 04:53:40 +0000 (00:53 -0400)
src/hb-open-type-private.hh
src/hb-ot-layout-common-private.hh

index 9cc0518..9925577 100644 (file)
@@ -724,35 +724,6 @@ struct SortedArrayOf : ArrayOf<Type> {
     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<Type>::sanitize (c) && sanitize_order (c);
-  }
-
-  inline bool sanitize (hb_sanitize_context_t *c, void *base) {
-    TRACE_SANITIZE ();
-    return ArrayOf<Type>::sanitize (c, base) && sanitize_order (c);
-  }
 };
 
 
index 5954499..5c90c27 100644 (file)
@@ -51,9 +51,6 @@
 template <typename Type>
 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<Type>
 
 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 ;