diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2018-09-07 10:46:13 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2018-09-07 10:46:13 -0400 |
commit | ebe67137ab3559c2c6aaf53442ca223cb34df5af (patch) | |
tree | 800d775f2522ecb0be2d3c7283049ddcba2c041a /src/hb-ot-layout-common.hh | |
parent | 5f17dbc3025093308d2191a4abd2eec24db35c0e (diff) |
Try fixing bots
Diffstat (limited to 'src/hb-ot-layout-common.hh')
-rw-r--r-- | src/hb-ot-layout-common.hh | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/src/hb-ot-layout-common.hh b/src/hb-ot-layout-common.hh index 656d31dc..ca3d7d5d 100644 --- a/src/hb-ot-layout-common.hh +++ b/src/hb-ot-layout-common.hh @@ -702,6 +702,23 @@ struct Lookup return_trace (true); } + /* Older compileres need this to NOT be locally defined in a function. */ + template <typename TSubTable> + struct SubTableSubsetWrapper + { + inline SubTableSubsetWrapper (const TSubTable &subtable_, + unsigned int lookup_type_) : + subtable (subtable_), + lookup_type (lookup_type_) {} + + inline bool subset (hb_subset_context_t *c) const + { return subtable.dispatch (c, lookup_type); } + + private: + const TSubTable &subtable; + unsigned int lookup_type; + }; + template <typename TSubTable> inline bool subset (hb_subset_context_t *c) const { @@ -717,20 +734,7 @@ struct Lookup unsigned int count = subTable.len; for (unsigned int i = 0; i < count; i++) { - struct Wrapper - { - inline Wrapper (const TSubTable &subtable_, - unsigned int lookup_type_) : - subtable (subtable_), - lookup_type (lookup_type_) {} - - inline bool subset (hb_subset_context_t *c) const - { return subtable.dispatch (c, lookup_type); } - - private: - const TSubTable &subtable; - unsigned int lookup_type; - } wrapper (this+subtables[i], get_type ()); + SubTableSubsetWrapper<TSubTable> wrapper (this+subtables[i], get_type ()); out_subtables[i].serialize_subset (c, wrapper, out); } |