98 lines
3.3 KiB
Diff
98 lines
3.3 KiB
Diff
|
From 3238cb744bb570a75326ab4438968c59069e9af2 Mon Sep 17 00:00:00 2001
|
||
|
From: Kleis Auke Wolthuizen <github@kleisauke.nl>
|
||
|
Date: Wed, 6 Jul 2022 13:18:14 +0200
|
||
|
Subject: [PATCH] [GPOS] Fix build on GCC < 7
|
||
|
|
||
|
[Retrieved (and backported) from:
|
||
|
https://github.com/harfbuzz/harfbuzz/commit/3238cb744bb570a75326ab4438968c59069e9af2]
|
||
|
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||
|
---
|
||
|
src/OT/Layout/GPOS/GPOS.hh | 17 ++++++++++-------
|
||
|
src/hb-ot-layout-gpos-table.hh | 6 ++++--
|
||
|
2 files changed, 14 insertions(+), 9 deletions(-)
|
||
|
|
||
|
diff --git a/src/OT/Layout/GPOS/GPOS.hh b/src/OT/Layout/GPOS/GPOS.hh
|
||
|
index 7fb97d7568..23b0b090a2 100644
|
||
|
--- a/src/OT/Layout/GPOS.hh
|
||
|
+++ b/src/OT/Layout/GPOS.hh
|
||
|
@@ -7,6 +7,9 @@
|
||
|
#include "GPOS/PosLookup.hh"
|
||
|
|
||
|
namespace OT {
|
||
|
+
|
||
|
+using Layout::GPOS_impl::PosLookup;
|
||
|
+
|
||
|
namespace Layout {
|
||
|
|
||
|
static void
|
||
|
@@ -25,10 +28,10 @@ struct GPOS : GSUBGPOS
|
||
|
{
|
||
|
static constexpr hb_tag_t tableTag = HB_OT_TAG_GPOS;
|
||
|
|
||
|
- using Lookup = GPOS_impl::PosLookup;
|
||
|
+ using Lookup = PosLookup;
|
||
|
|
||
|
- const GPOS_impl::PosLookup& get_lookup (unsigned int i) const
|
||
|
- { return static_cast<const GPOS_impl::PosLookup &> (GSUBGPOS::get_lookup (i)); }
|
||
|
+ const PosLookup& get_lookup (unsigned int i) const
|
||
|
+ { return static_cast<const PosLookup &> (GSUBGPOS::get_lookup (i)); }
|
||
|
|
||
|
static inline void position_start (hb_font_t *font, hb_buffer_t *buffer);
|
||
|
static inline void position_finish_advances (hb_font_t *font, hb_buffer_t *buffer);
|
||
|
@@ -37,11 +40,11 @@ struct GPOS : GSUBGPOS
|
||
|
bool subset (hb_subset_context_t *c) const
|
||
|
{
|
||
|
hb_subset_layout_context_t l (c, tableTag, c->plan->gpos_lookups, c->plan->gpos_langsys, c->plan->gpos_features);
|
||
|
- return GSUBGPOS::subset<GPOS_impl::PosLookup> (&l);
|
||
|
+ return GSUBGPOS::subset<PosLookup> (&l);
|
||
|
}
|
||
|
|
||
|
bool sanitize (hb_sanitize_context_t *c) const
|
||
|
- { return GSUBGPOS::sanitize<GPOS_impl::PosLookup> (c); }
|
||
|
+ { return GSUBGPOS::sanitize<PosLookup> (c); }
|
||
|
|
||
|
HB_INTERNAL bool is_blocklisted (hb_blob_t *blob,
|
||
|
hb_face_t *face) const;
|
||
|
@@ -51,7 +54,7 @@ struct GPOS : GSUBGPOS
|
||
|
for (unsigned i = 0; i < GSUBGPOS::get_lookup_count (); i++)
|
||
|
{
|
||
|
if (!c->gpos_lookups->has (i)) continue;
|
||
|
- const GPOS_impl::PosLookup &l = get_lookup (i);
|
||
|
+ const PosLookup &l = get_lookup (i);
|
||
|
l.dispatch (c);
|
||
|
}
|
||
|
}
|
||
|
@@ -59,7 +62,7 @@ struct GPOS : GSUBGPOS
|
||
|
void closure_lookups (hb_face_t *face,
|
||
|
const hb_set_t *glyphs,
|
||
|
hb_set_t *lookup_indexes /* IN/OUT */) const
|
||
|
- { GSUBGPOS::closure_lookups<GPOS_impl::PosLookup> (face, glyphs, lookup_indexes); }
|
||
|
+ { GSUBGPOS::closure_lookups<PosLookup> (face, glyphs, lookup_indexes); }
|
||
|
|
||
|
typedef GSUBGPOS::accelerator_t<GPOS> accelerator_t;
|
||
|
};
|
||
|
diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh
|
||
|
index f5059cfa83..8fe987fc50 100644
|
||
|
--- a/src/hb-ot-layout-gpos-table.hh
|
||
|
+++ b/src/hb-ot-layout-gpos-table.hh
|
||
|
@@ -32,8 +32,8 @@
|
||
|
#include "OT/Layout/GPOS.hh"
|
||
|
|
||
|
namespace OT {
|
||
|
-
|
||
|
-using Layout::GPOS_impl::PosLookup;
|
||
|
+namespace Layout {
|
||
|
+namespace GPOS_impl {
|
||
|
|
||
|
// TODO(garretrieger): Move into new layout directory.
|
||
|
/* Out-of-class implementation for methods recursing */
|
||
|
@@ -68,6 +68,8 @@ inline bool PosLookup::dispatch_recurse_func<hb_ot_apply_context_t> (hb_ot_apply
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
+} /* namespace GPOS_impl */
|
||
|
+} /* namespace Layout */
|
||
|
} /* namespace OT */
|
||
|
|
||
|
|