[subset] De-templatize hb_subset_context_t
authorBehdad Esfahbod <behdad@behdad.org>
Fri, 31 Aug 2018 23:46:35 +0000 (16:46 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Fri, 31 Aug 2018 23:46:35 +0000 (16:46 -0700)
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.

src/hb-machinery.hh
src/hb-ot-layout-gsub-table.hh
src/hb-subset.hh

index 0452693..26392b3 100644 (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;
index d7f8983..7f8489f 100644 (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);
   }
index 5202f73..9cdd388 100644 (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) {}