[subset] De-templatize hb_subset_context_t

We're going to (finally) use virtual methods for hb_serialize_context_t
customization, so don't need to carry a Serializer template variable
around...  Simplifies code.
This commit is contained in:
Behdad Esfahbod 2018-08-31 16:46:35 -07:00
parent 22acd424ca
commit e58b190292
3 changed files with 6 additions and 8 deletions

View File

@ -473,7 +473,7 @@ struct hb_serialize_context_t
}
template <typename Type>
inline Type *start_embed (void)
inline Type *start_embed (void) const
{
Type *ret = reinterpret_cast<Type *> (this->head);
return ret;

View File

@ -1308,11 +1308,10 @@ struct GSUB : GSUBGPOS
inline const SubstLookup& get_lookup (unsigned int i) const
{ return CastR<SubstLookup> (GSUBGPOS::get_lookup (i)); }
template <typename Serializer>
inline bool subset (hb_subset_context_t<Serializer> *c)
inline bool subset (hb_subset_context_t *c)
{
TRACE_SUBSET (this);
//struct GSUB *out = c->serializer->start_embed<GSUB> ();
struct GSUB *out = c->serializer->start_embed<GSUB> ();
//XXX if (unlikely (!GSUBGPOS::subset (c))) return_trace (false);
return_trace (true);
}

View File

@ -36,9 +36,8 @@
#include "hb-subset-input.hh"
#include "hb-subset-plan.hh"
template <typename Serializer>
struct hb_subset_context_t :
hb_dispatch_context_t<hb_subset_context_t<Serializer>, bool, HB_DEBUG_SUBSET>
hb_dispatch_context_t<hb_subset_context_t, bool, HB_DEBUG_SUBSET>
{
inline const char *get_name (void) { return "SUBSET"; }
template <typename T>
@ -47,11 +46,11 @@ struct hb_subset_context_t :
bool stop_sublookup_iteration (bool r) const { return false; }
hb_subset_plan_t *plan;
Serializer *serializer;
hb_serialize_context_t *serializer;
unsigned int debug_depth;
hb_subset_context_t (hb_subset_plan_t *plan_,
Serializer *serializer_) :
hb_serialize_context_t *serializer_) :
plan (plan_),
serializer (serializer_),
debug_depth (0) {}