< prev index next >

src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-var-mvar-table.hh

Print this page

        

@@ -25,19 +25,19 @@
  */
 
 #ifndef HB_OT_VAR_MVAR_TABLE_HH
 #define HB_OT_VAR_MVAR_TABLE_HH
 
-#include "hb-ot-layout-common-private.hh"
+#include "hb-ot-layout-common.hh"
 
 
 namespace OT {
 
 
 struct VariationValueRecord
 {
-  inline bool sanitize (hb_sanitize_context_t *c) const
+  bool sanitize (hb_sanitize_context_t *c) const
   {
     TRACE_SANITIZE (this);
     return_trace (c->check_struct (this));
   }
 

@@ -56,38 +56,40 @@
  */
 #define HB_OT_TAG_MVAR HB_TAG('M','V','A','R')
 
 struct MVAR
 {
-  static const hb_tag_t tableTag        = HB_OT_TAG_MVAR;
+  static constexpr hb_tag_t tableTag = HB_OT_TAG_MVAR;
 
-  inline bool sanitize (hb_sanitize_context_t *c) const
+  bool sanitize (hb_sanitize_context_t *c) const
   {
     TRACE_SANITIZE (this);
     return_trace (version.sanitize (c) &&
                   likely (version.major == 1) &&
                   c->check_struct (this) &&
                   valueRecordSize >= VariationValueRecord::static_size &&
                   varStore.sanitize (c, this) &&
-                  c->check_array (values, valueRecordSize, valueRecordCount));
+                  c->check_range (valuesZ.arrayZ,
+                                  valueRecordCount,
+                                  valueRecordSize));
   }
 
-  inline float get_var (hb_tag_t tag,
-                        int *coords, unsigned int coord_count) const
+  float get_var (hb_tag_t tag,
+                 const int *coords, unsigned int coord_count) const
   {
     const VariationValueRecord *record;
-    record = (VariationValueRecord *) bsearch (&tag, values,
+    record = (VariationValueRecord *) bsearch (&tag, valuesZ.arrayZ,
                                                valueRecordCount, valueRecordSize,
                                                tag_compare);
     if (!record)
       return 0.;
 
     return (this+varStore).get_delta (record->varIdx, coords, coord_count);
   }
 
 protected:
-  static inline int tag_compare (const void *pa, const void *pb)
+  static int tag_compare (const void *pa, const void *pb)
   {
     const hb_tag_t *a = (const hb_tag_t *) pa;
     const Tag *b = (const Tag *) pb;
     return b->cmp (*a);
   }

@@ -99,15 +101,16 @@
   HBUINT16      valueRecordSize;/* The size in bytes of each value record —
                                  * must be greater than zero. */
   HBUINT16      valueRecordCount;/* The number of value records — may be zero. */
   OffsetTo<VariationStore>
                 varStore;       /* Offset to item variation store table. */
-  HBUINT8               values[VAR];    /* Array of value records. The records must be
+  UnsizedArrayOf<HBUINT8>
+                valuesZ;        /* Array of value records. The records must be
                                  * in binary order of their valueTag field. */
 
   public:
-  DEFINE_SIZE_ARRAY (12, values);
+  DEFINE_SIZE_ARRAY (12, valuesZ);
 };
 
 } /* namespace OT */
 
 
< prev index next >