summaryrefslogtreecommitdiff
path: root/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh')
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh32
1 files changed, 24 insertions, 8 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
index 4bc3d7e157e..9a82a4d6773 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
@@ -2661,11 +2661,17 @@ struct GSUBGPOS
bool find_variations_index (const int *coords, unsigned int num_coords,
unsigned int *index) const
- { return (version.to_int () >= 0x00010001u ? this+featureVars : Null(FeatureVariations))
- .find_index (coords, num_coords, index); }
+ {
+#ifdef HB_NOVAR
+ return false;
+#endif
+ return (version.to_int () >= 0x00010001u ? this+featureVars : Null(FeatureVariations))
+ .find_index (coords, num_coords, index);
+ }
const Feature& get_feature_variation (unsigned int feature_index,
unsigned int variations_index) const
{
+#ifndef HB_NO_VAR
if (FeatureVariations::NOT_FOUND_INDEX != variations_index &&
version.to_int () >= 0x00010001u)
{
@@ -2674,6 +2680,7 @@ struct GSUBGPOS
if (feature)
return *feature;
}
+#endif
return get_feature (feature_index);
}
@@ -2695,8 +2702,10 @@ struct GSUBGPOS
this,
out);
+#ifndef HB_NO_VAR
if (version.to_int () >= 0x00010001u)
out->featureVars.serialize_copy (c->serializer, featureVars, this, out);
+#endif
return_trace (true);
}
@@ -2712,12 +2721,19 @@ struct GSUBGPOS
{
TRACE_SANITIZE (this);
typedef OffsetListOf<TLookup> TLookupList;
- return_trace (version.sanitize (c) &&
- likely (version.major == 1) &&
- scriptList.sanitize (c, this) &&
- featureList.sanitize (c, this) &&
- CastR<OffsetTo<TLookupList>> (lookupList).sanitize (c, this) &&
- (version.to_int () < 0x00010001u || featureVars.sanitize (c, this)));
+ if (unlikely (!(version.sanitize (c) &&
+ likely (version.major == 1) &&
+ scriptList.sanitize (c, this) &&
+ featureList.sanitize (c, this) &&
+ CastR<OffsetTo<TLookupList>> (lookupList).sanitize (c, this))))
+ return_trace (false);
+
+#ifndef HB_NO_VAR
+ if (unlikely (!(version.to_int () < 0x00010001u || featureVars.sanitize (c, this))))
+ return_trace (false);
+#endif
+
+ return_trace (true);
}
template <typename T>