tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

MarkMarkPos.hh (1011B)


      1 #ifndef OT_LAYOUT_GPOS_MARKMARKPOS_HH
      2 #define OT_LAYOUT_GPOS_MARKMARKPOS_HH
      3 
      4 #include "MarkMarkPosFormat1.hh"
      5 
      6 namespace OT {
      7 namespace Layout {
      8 namespace GPOS_impl {
      9 
     10 struct MarkMarkPos
     11 {
     12  protected:
     13  union {
     14  struct { HBUINT16 v; }		format;         /* Format identifier */
     15  MarkMarkPosFormat1_2<SmallTypes>	format1;
     16 #ifndef HB_NO_BEYOND_64K
     17  MarkMarkPosFormat1_2<MediumTypes>	format2;
     18 #endif
     19  } u;
     20 
     21  public:
     22  template <typename context_t, typename ...Ts>
     23  typename context_t::return_t dispatch (context_t *c, Ts&&... ds) const
     24  {
     25    if (unlikely (!c->may_dispatch (this, &u.format.v))) return c->no_dispatch_return_value ();
     26    TRACE_DISPATCH (this, u.format.v);
     27    switch (u.format.v) {
     28    case 1: return_trace (c->dispatch (u.format1, std::forward<Ts> (ds)...));
     29 #ifndef HB_NO_BEYOND_64K
     30    case 2: return_trace (c->dispatch (u.format2, std::forward<Ts> (ds)...));
     31 #endif
     32    default:return_trace (c->default_return_value ());
     33    }
     34  }
     35 };
     36 
     37 
     38 }
     39 }
     40 }
     41 
     42 #endif /* OT_LAYOUT_GPOS_MARKMARKPOS_HH */