Coverage Report

Created: 2026-09-28 10:59

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/workdir/UnpackedTarball/harfbuzz/src/hb-cff-interp-cs-common.hh
Line
Count
Source
1
/*
2
 * Copyright © 2018 Adobe Inc.
3
 *
4
 *  This is part of HarfBuzz, a text shaping library.
5
 *
6
 * Permission is hereby granted, without written agreement and without
7
 * license or royalty fees, to use, copy, modify, and distribute this
8
 * software and its documentation for any purpose, provided that the
9
 * above copyright notice and the following two paragraphs appear in
10
 * all copies of this software.
11
 *
12
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14
 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15
 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16
 * DAMAGE.
17
 *
18
 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19
 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20
 * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
21
 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23
 *
24
 * Adobe Author(s): Michiharu Ariza
25
 */
26
#ifndef HB_CFF_INTERP_CS_COMMON_HH
27
#define HB_CFF_INTERP_CS_COMMON_HH
28
29
#include "hb.hh"
30
#include "hb-cff-interp-common.hh"
31
32
namespace CFF {
33
34
using namespace OT;
35
36
enum cs_type_t {
37
  CSType_CharString,
38
  CSType_GlobalSubr,
39
  CSType_LocalSubr
40
};
41
42
struct call_context_t
43
{
44
  void init (const byte_str_ref_t substr_=byte_str_ref_t (), cs_type_t type_=CSType_CharString, unsigned int subr_num_=0)
45
0
  {
46
0
    str_ref = substr_;
47
0
    type = type_;
48
0
    subr_num = subr_num_;
49
0
  }
50
51
0
  void fini () {}
52
53
  byte_str_ref_t  str_ref;
54
  cs_type_t   type;
55
  unsigned int    subr_num;
56
};
57
58
/* call stack */
59
const unsigned int kMaxCallLimit = 10;
60
struct call_stack_t : cff_stack_t<call_context_t, kMaxCallLimit> {};
61
62
template <typename SUBRS>
63
struct biased_subrs_t
64
{
65
  void init (const SUBRS *subrs_)
66
0
  {
67
0
    subrs = subrs_;
68
0
    unsigned int  nSubrs = get_count ();
69
0
    if (nSubrs < 1240)
70
0
      bias = 107;
71
0
    else if (nSubrs < 33900)
72
0
      bias = 1131;
73
0
    else
74
0
      bias = 32768;
75
0
  }
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::init(CFF::Subrs<OT::NumType<true, unsigned short, 2u> > const*)
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::init(CFF::Subrs<OT::NumType<true, unsigned int, 4u> > const*)
76
77
0
  void fini () {}
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::fini()
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::fini()
78
79
0
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::get_count() const
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::get_count() const
80
0
  unsigned int get_bias () const  { return bias; }
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::get_bias() const
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::get_bias() const
81
82
  hb_ubytes_t operator [] (unsigned int index) const
83
0
  {
84
0
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
0
    else
87
0
      return (*subrs)[index];
88
0
  }
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::operator[](unsigned int) const
Unexecuted instantiation: CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::operator[](unsigned int) const
89
90
  protected:
91
  unsigned int  bias;
92
  const SUBRS   *subrs;
93
};
94
95
struct point_t
96
{
97
  void set_int (int _x, int _y)
98
0
  {
99
0
    x.set_int (_x);
100
0
    y.set_int (_y);
101
0
  }
102
103
0
  void move_x (const number_t &dx) { x += dx; }
104
0
  void move_y (const number_t &dy) { y += dy; }
105
0
  void move (const number_t &dx, const number_t &dy) { move_x (dx); move_y (dy); }
106
0
  void move (const point_t &d) { move_x (d.x); move_y (d.y); }
107
108
  number_t  x;
109
  number_t  y;
110
};
111
112
template <typename ARG, typename SUBRS>
113
struct cs_interp_env_t : interp_env_t<ARG>
114
{
115
  cs_interp_env_t (const hb_ubytes_t &str, const SUBRS *globalSubrs_, const SUBRS *localSubrs_) :
116
0
    interp_env_t<ARG> (str)
117
0
  {
118
0
    context.init (str, CSType_CharString);
119
0
    seen_moveto = true;
120
0
    seen_hintmask = false;
121
0
    hstem_count = 0;
122
0
    vstem_count = 0;
123
0
    hintmask_size = 0;
124
0
    budget = nullptr;
125
0
    pt.set_int (0, 0);
126
0
    globalSubrs.init (globalSubrs_);
127
0
    localSubrs.init (localSubrs_);
128
0
  }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > const*, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > const*)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > const*, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > const*)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > const*, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > const*)
129
  ~cs_interp_env_t ()
130
0
  {
131
0
    globalSubrs.fini ();
132
0
    localSubrs.fini ();
133
0
  }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::~cs_interp_env_t()
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::~cs_interp_env_t()
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::~cs_interp_env_t()
134
135
  bool in_error () const
136
0
  {
137
0
    return callStack.in_error () || SUPER::in_error ();
138
0
  }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::in_error() const
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::in_error() const
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::in_error() const
139
140
  bool pop_subr_num (const biased_subrs_t<SUBRS>& biasedSubrs, unsigned int &subr_num)
141
0
  {
142
0
    subr_num = 0;
143
0
    int n = SUPER::argStack.pop_int ();
144
0
    n += biasedSubrs.get_bias ();
145
0
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
146
0
      return false;
147
148
0
    subr_num = (unsigned int)n;
149
0
    return true;
150
0
  }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > > const&, unsigned int&)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > > const&, unsigned int&)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > > const&, unsigned int&)
151
152
  void call_subr (const biased_subrs_t<SUBRS>& biasedSubrs, cs_type_t type)
153
0
  {
154
0
    unsigned int subr_num = 0;
155
156
0
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
157
0
     || callStack.get_count () >= kMaxCallLimit))
158
0
    {
159
0
      SUPER::set_error ();
160
0
      return;
161
0
    }
162
0
    context.str_ref = SUPER::str_ref;
163
0
    callStack.push (context);
164
165
0
    context.init ( biasedSubrs[subr_num], type, subr_num);
166
0
    SUPER::str_ref = context.str_ref;
167
0
  }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > > const&, CFF::cs_type_t)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > > const&, CFF::cs_type_t)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > > const&, CFF::cs_type_t)
168
169
  void return_from_subr ()
170
0
  {
171
0
    if (unlikely (SUPER::str_ref.in_error ()))
172
0
      SUPER::set_error ();
173
0
    context = callStack.pop ();
174
0
    SUPER::str_ref = context.str_ref;
175
0
  }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::return_from_subr()
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::return_from_subr()
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::return_from_subr()
176
177
  void determine_hintmask_size ()
178
0
  {
179
0
    if (!seen_hintmask)
180
0
    {
181
0
      vstem_count += SUPER::argStack.get_count() / 2;
182
0
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
183
0
      seen_hintmask = true;
184
0
    }
185
0
  }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::determine_hintmask_size()
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::determine_hintmask_size()
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::determine_hintmask_size()
186
187
0
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::set_endchar(bool)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::set_endchar(bool)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::set_endchar(bool)
188
0
  bool is_endchar () const { return endchar_flag; }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::is_endchar() const
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::is_endchar() const
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::is_endchar() const
189
190
0
  void set_budget (int64_t *budget_) { budget = budget_; }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::set_budget(long*)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::set_budget(long*)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::set_budget(long*)
191
0
  int64_t *get_budget () const { return budget; }
192
  bool spend_budget (unsigned int cost, unsigned int mult = 1)
193
0
  { return !budget || hb_budget_spend (*budget, cost, mult); }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::spend_budget(unsigned int, unsigned int)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::blend_arg_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::spend_budget(unsigned int, unsigned int)
194
195
  const number_t &get_x () const { return pt.x; }
196
  const number_t &get_y () const { return pt.y; }
197
0
  const point_t &get_pt () const { return pt; }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::get_pt() const
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::get_pt() const
198
199
0
  void moveto (const point_t &pt_ ) { pt = pt_; }
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::moveto(CFF::point_t const&)
Unexecuted instantiation: CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::moveto(CFF::point_t const&)
200
201
  public:
202
  call_context_t   context;
203
  bool    endchar_flag;
204
  bool    seen_moveto;
205
  bool    seen_hintmask;
206
207
  unsigned int  hstem_count;
208
  unsigned int  vstem_count;
209
  unsigned int  hintmask_size;
210
  int64_t *budget;
211
  call_stack_t  callStack;
212
  biased_subrs_t<SUBRS>   globalSubrs;
213
  biased_subrs_t<SUBRS>   localSubrs;
214
215
  private:
216
  point_t  pt;
217
218
  typedef interp_env_t<ARG> SUPER;
219
};
220
221
template <typename ENV, typename PARAM>
222
struct path_procs_null_t
223
{
224
0
  static void rmoveto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::rmoveto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::rmoveto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::rmoveto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::rmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::rmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::rmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
225
0
  static void hmoveto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::hmoveto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::hmoveto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::hmoveto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::hmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::hmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::hmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
226
0
  static void vmoveto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::vmoveto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::vmoveto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::vmoveto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::vmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::vmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::vmoveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
227
0
  static void rlineto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::rlineto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::rlineto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::rlineto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::rlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::rlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::rlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
228
0
  static void hlineto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::hlineto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::hlineto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::hlineto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::hlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::hlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::hlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
229
0
  static void vlineto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::vlineto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::vlineto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::vlineto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::vlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::vlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::vlineto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
230
0
  static void rrcurveto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::rrcurveto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::rrcurveto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::rrcurveto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::rrcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::rrcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::rrcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
231
0
  static void rcurveline (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::rcurveline(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::rcurveline(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::rcurveline(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::rcurveline(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::rcurveline(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::rcurveline(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
232
0
  static void rlinecurve (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::rlinecurve(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::rlinecurve(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::rlinecurve(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::rlinecurve(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::rlinecurve(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::rlinecurve(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
233
0
  static void vvcurveto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::vvcurveto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::vvcurveto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::vvcurveto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::vvcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::vvcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::vvcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
234
0
  static void hhcurveto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::hhcurveto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::hhcurveto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::hhcurveto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::hhcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::hhcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::hhcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
235
0
  static void vhcurveto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::vhcurveto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::vhcurveto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::vhcurveto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::vhcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::vhcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::vhcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
236
0
  static void hvcurveto (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::hvcurveto(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::hvcurveto(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::hvcurveto(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::hvcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::hvcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::hvcurveto(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
237
  static void moveto (ENV &env, PARAM& param, const point_t &pt) {}
238
  static void line (ENV &env, PARAM& param, const point_t &pt1) {}
239
  static void curve (ENV &env, PARAM& param, const point_t &pt1, const point_t &pt2, const point_t &pt3) {}
240
0
  static void hflex (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::hflex(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::hflex(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::hflex(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::hflex(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::hflex(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::hflex(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
241
0
  static void flex (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::flex(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::flex(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::flex(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::flex(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::flex(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::flex(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
242
0
  static void hflex1 (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::hflex1(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::hflex1(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::hflex1(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::hflex1(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::hflex1(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::hflex1(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
243
0
  static void flex1 (ENV &env, PARAM& param) {}
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t>::flex1(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t>::flex1(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t>::flex1(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t>::flex1(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t>::flex1(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t>::flex1(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
244
};
245
246
template <typename ARG, typename OPSET, typename ENV, typename PARAM, typename PATH=path_procs_null_t<ENV, PARAM>>
247
struct cs_opset_t : opset_t<ARG>
248
{
249
  static void process_op (op_code_t op, ENV &env, PARAM& param)
250
0
  {
251
0
    switch (op) {
252
253
0
      case OpCode_return:
254
0
  env.return_from_subr ();
255
0
  break;
256
0
      case OpCode_endchar:
257
0
  OPSET::check_width (op, env, param);
258
0
  env.set_endchar (true);
259
0
  OPSET::flush_args_and_op (op, env, param);
260
0
  break;
261
262
0
      case OpCode_fixedcs:
263
0
  env.argStack.push_fixed_from_substr (env.str_ref);
264
0
  break;
265
266
0
      case OpCode_callsubr:
267
0
  env.call_subr (env.localSubrs, CSType_LocalSubr);
268
0
  break;
269
270
0
      case OpCode_callgsubr:
271
0
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
272
0
  break;
273
274
0
      case OpCode_hstem:
275
0
      case OpCode_hstemhm:
276
0
  OPSET::check_width (op, env, param);
277
0
  OPSET::process_hstem (op, env, param);
278
0
  break;
279
0
      case OpCode_vstem:
280
0
      case OpCode_vstemhm:
281
0
  OPSET::check_width (op, env, param);
282
0
  OPSET::process_vstem (op, env, param);
283
0
  break;
284
0
      case OpCode_hintmask:
285
0
      case OpCode_cntrmask:
286
0
  OPSET::check_width (op, env, param);
287
0
  OPSET::process_hintmask (op, env, param);
288
0
  break;
289
0
      case OpCode_rmoveto:
290
0
  OPSET::check_width (op, env, param);
291
0
  PATH::rmoveto (env, param);
292
0
  OPSET::process_post_move (op, env, param);
293
0
  break;
294
0
      case OpCode_hmoveto:
295
0
  OPSET::check_width (op, env, param);
296
0
  PATH::hmoveto (env, param);
297
0
  OPSET::process_post_move (op, env, param);
298
0
  break;
299
0
      case OpCode_vmoveto:
300
0
  OPSET::check_width (op, env, param);
301
0
  PATH::vmoveto (env, param);
302
0
  OPSET::process_post_move (op, env, param);
303
0
  break;
304
0
      case OpCode_rlineto:
305
0
  PATH::rlineto (env, param);
306
0
  process_post_path (op, env, param);
307
0
  break;
308
0
      case OpCode_hlineto:
309
0
  PATH::hlineto (env, param);
310
0
  process_post_path (op, env, param);
311
0
  break;
312
0
      case OpCode_vlineto:
313
0
  PATH::vlineto (env, param);
314
0
  process_post_path (op, env, param);
315
0
  break;
316
0
      case OpCode_rrcurveto:
317
0
  PATH::rrcurveto (env, param);
318
0
  process_post_path (op, env, param);
319
0
  break;
320
0
      case OpCode_rcurveline:
321
0
  PATH::rcurveline (env, param);
322
0
  process_post_path (op, env, param);
323
0
  break;
324
0
      case OpCode_rlinecurve:
325
0
  PATH::rlinecurve (env, param);
326
0
  process_post_path (op, env, param);
327
0
  break;
328
0
      case OpCode_vvcurveto:
329
0
  PATH::vvcurveto (env, param);
330
0
  process_post_path (op, env, param);
331
0
  break;
332
0
      case OpCode_hhcurveto:
333
0
  PATH::hhcurveto (env, param);
334
0
  process_post_path (op, env, param);
335
0
  break;
336
0
      case OpCode_vhcurveto:
337
0
  PATH::vhcurveto (env, param);
338
0
  process_post_path (op, env, param);
339
0
  break;
340
0
      case OpCode_hvcurveto:
341
0
  PATH::hvcurveto (env, param);
342
0
  process_post_path (op, env, param);
343
0
  break;
344
345
0
      case OpCode_hflex:
346
0
  PATH::hflex (env, param);
347
0
  OPSET::process_post_flex (op, env, param);
348
0
  break;
349
350
0
      case OpCode_flex:
351
0
  PATH::flex (env, param);
352
0
  OPSET::process_post_flex (op, env, param);
353
0
  break;
354
355
0
      case OpCode_hflex1:
356
0
  PATH::hflex1 (env, param);
357
0
  OPSET::process_post_flex (op, env, param);
358
0
  break;
359
360
0
      case OpCode_flex1:
361
0
  PATH::flex1 (env, param);
362
0
  OPSET::process_post_flex (op, env, param);
363
0
  break;
364
365
0
      default:
366
0
  SUPER::process_op (op, env);
367
0
  break;
368
0
    }
369
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::process_op(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::process_op(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::process_op(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::process_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::process_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::process_op(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::process_op(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::process_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::process_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::process_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
370
371
  static void process_hstem (op_code_t op, ENV &env, PARAM& param)
372
0
  {
373
0
    env.hstem_count += env.argStack.get_count () / 2;
374
0
    OPSET::flush_args_and_op (op, env, param);
375
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::process_hstem(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::process_hstem(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::process_hstem(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::process_hstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::process_hstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::process_hstem(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::process_hstem(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::process_hstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::process_hstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::process_hstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
376
377
  static void process_vstem (op_code_t op, ENV &env, PARAM& param)
378
0
  {
379
0
    env.vstem_count += env.argStack.get_count () / 2;
380
0
    OPSET::flush_args_and_op (op, env, param);
381
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::process_vstem(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::process_vstem(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::process_vstem(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::process_vstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::process_vstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::process_vstem(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::process_vstem(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::process_vstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::process_vstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::process_vstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
382
383
  static void process_hintmask (op_code_t op, ENV &env, PARAM& param)
384
0
  {
385
0
    env.determine_hintmask_size ();
386
0
    if (likely (env.str_ref.avail (env.hintmask_size)))
387
0
    {
388
0
      OPSET::flush_hintmask (op, env, param);
389
0
      env.str_ref.inc (env.hintmask_size);
390
0
    }
391
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::process_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::process_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::process_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::process_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::process_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::process_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::process_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::process_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::process_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::process_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
392
393
  static void process_post_flex (op_code_t op, ENV &env, PARAM& param)
394
0
  {
395
0
    OPSET::flush_args_and_op (op, env, param);
396
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::process_post_flex(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::process_post_flex(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::process_post_flex(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::process_post_flex(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::process_post_flex(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::process_post_flex(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::process_post_flex(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::process_post_flex(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::process_post_flex(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::process_post_flex(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
397
398
  static void check_width (op_code_t op, ENV &env, PARAM& param)
399
0
  {}
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::check_width(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::check_width(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::check_width(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::check_width(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::check_width(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
400
401
  static void process_post_move (op_code_t op, ENV &env, PARAM& param)
402
0
  {
403
0
    if (!env.seen_moveto)
404
0
    {
405
0
      env.determine_hintmask_size ();
406
0
      env.seen_moveto = true;
407
0
    }
408
0
    OPSET::flush_args_and_op (op, env, param);
409
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::process_post_move(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::process_post_move(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::process_post_move(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::process_post_move(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::process_post_move(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::process_post_move(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::process_post_move(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::process_post_move(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::process_post_move(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::process_post_move(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
410
411
  static void process_post_path (op_code_t op, ENV &env, PARAM& param)
412
0
  {
413
0
    OPSET::flush_args_and_op (op, env, param);
414
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::process_post_path(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::process_post_path(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::process_post_path(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::process_post_path(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::process_post_path(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::process_post_path(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::process_post_path(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::process_post_path(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::process_post_path(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::process_post_path(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
415
416
  static void flush_args_and_op (op_code_t op, ENV &env, PARAM& param)
417
0
  {
418
0
    OPSET::flush_args (env, param);
419
0
    OPSET::flush_op (op, env, param);
420
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::flush_args_and_op(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::flush_args_and_op(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::flush_args_and_op(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::flush_args_and_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::flush_args_and_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::flush_args_and_op(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::flush_args_and_op(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::flush_args_and_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::flush_args_and_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
421
422
  static void flush_args (ENV &env, PARAM& param)
423
0
  {
424
0
    env.pop_n_args (env.argStack.get_count ());
425
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::flush_args(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::flush_args(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::flush_args(CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::flush_args(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::flush_args(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::flush_args(CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::flush_args(CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::flush_args(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::flush_args(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
426
427
  static void flush_op (op_code_t op, ENV &env, PARAM& param)
428
0
  {
429
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::flush_op(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::flush_op(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::flush_op(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::flush_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::flush_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::flush_op(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::flush_op(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
430
431
  static void flush_hintmask (op_code_t op, ENV &env, PARAM& param)
432
0
  {
433
0
    OPSET::flush_args_and_op (op, env, param);
434
0
  }
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t, cff1_path_procs_extents_t>::flush_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t, cff1_path_procs_path_t>::flush_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_seac_t, CFF::cff1_cs_interp_env_t, get_seac_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, get_seac_param_t> >::flush_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, get_seac_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t, cff2_path_procs_extents_t>::flush_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff2_cs_opset_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t, cff2_path_procs_path_t>::flush_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_flatten_t, CFF::cff1_cs_interp_env_t, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::flatten_param_t> >::flush_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::number_t, cff1_cs_opset_subr_subset_t, CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff1_cs_interp_env_t, CFF::subr_subset_param_t> >::flush_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, CFF::subr_subset_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, CFF::cff2_cs_opset_usage_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_usage_param_t> >::flush_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::cff2_usage_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_flatten_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::flatten_param_t> >::flush_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::flatten_param_t&)
Unexecuted instantiation: CFF::cs_opset_t<CFF::blend_arg_t, cff2_cs_opset_subr_subset_t, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t, CFF::path_procs_null_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::subr_subset_param_t> >::flush_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&, CFF::subr_subset_param_t&)
435
436
  static bool is_number_op (op_code_t op)
437
  {
438
    switch (op)
439
    {
440
      case OpCode_shortint:
441
      case OpCode_fixedcs:
442
      case OpCode_TwoBytePosInt0: case OpCode_TwoBytePosInt1:
443
      case OpCode_TwoBytePosInt2: case OpCode_TwoBytePosInt3:
444
      case OpCode_TwoByteNegInt0: case OpCode_TwoByteNegInt1:
445
      case OpCode_TwoByteNegInt2: case OpCode_TwoByteNegInt3:
446
  return true;
447
448
      default:
449
  /* 1-byte integer */
450
  return (OpCode_OneByteIntFirst <= op) && (op <= OpCode_OneByteIntLast);
451
    }
452
  }
453
454
  protected:
455
  typedef opset_t<ARG>  SUPER;
456
};
457
458
template <typename PATH, typename ENV, typename PARAM>
459
struct path_procs_t
460
{
461
  static void rmoveto (ENV &env, PARAM& param)
462
0
  {
463
0
    point_t pt1 = env.get_pt ();
464
0
    const number_t &dy = env.pop_arg ();
465
0
    const number_t &dx = env.pop_arg ();
466
0
    pt1.move (dx, dy);
467
0
    PATH::moveto (env, param, pt1);
468
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::rmoveto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::rmoveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::rmoveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::rmoveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
469
470
  static void hmoveto (ENV &env, PARAM& param)
471
0
  {
472
0
    point_t pt1 = env.get_pt ();
473
0
    pt1.move_x (env.pop_arg ());
474
0
    PATH::moveto (env, param, pt1);
475
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::hmoveto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::hmoveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::hmoveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::hmoveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
476
477
  static void vmoveto (ENV &env, PARAM& param)
478
0
  {
479
0
    point_t pt1 = env.get_pt ();
480
0
    pt1.move_y (env.pop_arg ());
481
0
    PATH::moveto (env, param, pt1);
482
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::vmoveto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::vmoveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::vmoveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::vmoveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
483
484
  static void rlineto (ENV &env, PARAM& param)
485
0
  {
486
0
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
487
0
    {
488
0
      point_t pt1 = env.get_pt ();
489
0
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
490
0
      PATH::line (env, param, pt1);
491
0
    }
492
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::rlineto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::rlineto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::rlineto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::rlineto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
493
494
  static void hlineto (ENV &env, PARAM& param)
495
0
  {
496
0
    point_t pt1;
497
0
    unsigned int i = 0;
498
0
    for (; i + 2 <= env.argStack.get_count (); i += 2)
499
0
    {
500
0
      pt1 = env.get_pt ();
501
0
      pt1.move_x (env.eval_arg (i));
502
0
      PATH::line (env, param, pt1);
503
0
      pt1.move_y (env.eval_arg (i+1));
504
0
      PATH::line (env, param, pt1);
505
0
    }
506
0
    if (i < env.argStack.get_count ())
507
0
    {
508
0
      pt1 = env.get_pt ();
509
0
      pt1.move_x (env.eval_arg (i));
510
0
      PATH::line (env, param, pt1);
511
0
    }
512
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::hlineto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::hlineto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::hlineto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::hlineto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
513
514
  static void vlineto (ENV &env, PARAM& param)
515
0
  {
516
0
    point_t pt1;
517
0
    unsigned int i = 0;
518
0
    for (; i + 2 <= env.argStack.get_count (); i += 2)
519
0
    {
520
0
      pt1 = env.get_pt ();
521
0
      pt1.move_y (env.eval_arg (i));
522
0
      PATH::line (env, param, pt1);
523
0
      pt1.move_x (env.eval_arg (i+1));
524
0
      PATH::line (env, param, pt1);
525
0
    }
526
0
    if (i < env.argStack.get_count ())
527
0
    {
528
0
      pt1 = env.get_pt ();
529
0
      pt1.move_y (env.eval_arg (i));
530
0
      PATH::line (env, param, pt1);
531
0
    }
532
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::vlineto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::vlineto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::vlineto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::vlineto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
533
534
  static void rrcurveto (ENV &env, PARAM& param)
535
0
  {
536
0
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
537
0
    {
538
0
      point_t pt1 = env.get_pt ();
539
0
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
540
0
      point_t pt2 = pt1;
541
0
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
542
0
      point_t pt3 = pt2;
543
0
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
544
0
      PATH::curve (env, param, pt1, pt2, pt3);
545
0
    }
546
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::rrcurveto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::rrcurveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::rrcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::rrcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
547
548
  static void rcurveline (ENV &env, PARAM& param)
549
0
  {
550
0
    unsigned int arg_count = env.argStack.get_count ();
551
0
    if (unlikely (arg_count < 8))
552
0
      return;
553
554
0
    unsigned int i = 0;
555
0
    unsigned int curve_limit = arg_count - 2;
556
0
    for (; i + 6 <= curve_limit; i += 6)
557
0
    {
558
0
      point_t pt1 = env.get_pt ();
559
0
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
560
0
      point_t pt2 = pt1;
561
0
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
562
0
      point_t pt3 = pt2;
563
0
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
564
0
      PATH::curve (env, param, pt1, pt2, pt3);
565
0
    }
566
567
0
    point_t pt1 = env.get_pt ();
568
0
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
569
0
    PATH::line (env, param, pt1);
570
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::rcurveline(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::rcurveline(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::rcurveline(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::rcurveline(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
571
572
  static void rlinecurve (ENV &env, PARAM& param)
573
0
  {
574
0
    unsigned int arg_count = env.argStack.get_count ();
575
0
    if (unlikely (arg_count < 8))
576
0
      return;
577
578
0
    unsigned int i = 0;
579
0
    unsigned int line_limit = arg_count - 6;
580
0
    for (; i + 2 <= line_limit; i += 2)
581
0
    {
582
0
      point_t pt1 = env.get_pt ();
583
0
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
584
0
      PATH::line (env, param, pt1);
585
0
    }
586
587
0
    point_t pt1 = env.get_pt ();
588
0
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
589
0
    point_t pt2 = pt1;
590
0
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
591
0
    point_t pt3 = pt2;
592
0
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
593
0
    PATH::curve (env, param, pt1, pt2, pt3);
594
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::rlinecurve(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::rlinecurve(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::rlinecurve(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::rlinecurve(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
595
596
  static void vvcurveto (ENV &env, PARAM& param)
597
0
  {
598
0
    unsigned int i = 0;
599
0
    point_t pt1 = env.get_pt ();
600
0
    if ((env.argStack.get_count () & 1) != 0)
601
0
      pt1.move_x (env.eval_arg (i++));
602
0
    for (; i + 4 <= env.argStack.get_count (); i += 4)
603
0
    {
604
0
      pt1.move_y (env.eval_arg (i));
605
0
      point_t pt2 = pt1;
606
0
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
607
0
      point_t pt3 = pt2;
608
0
      pt3.move_y (env.eval_arg (i+3));
609
0
      PATH::curve (env, param, pt1, pt2, pt3);
610
0
      pt1 = env.get_pt ();
611
0
    }
612
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::vvcurveto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::vvcurveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::vvcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::vvcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
613
614
  static void hhcurveto (ENV &env, PARAM& param)
615
0
  {
616
0
    unsigned int i = 0;
617
0
    point_t pt1 = env.get_pt ();
618
0
    if ((env.argStack.get_count () & 1) != 0)
619
0
      pt1.move_y (env.eval_arg (i++));
620
0
    for (; i + 4 <= env.argStack.get_count (); i += 4)
621
0
    {
622
0
      pt1.move_x (env.eval_arg (i));
623
0
      point_t pt2 = pt1;
624
0
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
625
0
      point_t pt3 = pt2;
626
0
      pt3.move_x (env.eval_arg (i+3));
627
0
      PATH::curve (env, param, pt1, pt2, pt3);
628
0
      pt1 = env.get_pt ();
629
0
    }
630
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::hhcurveto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::hhcurveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::hhcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::hhcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
631
632
  static void vhcurveto (ENV &env, PARAM& param)
633
0
  {
634
0
    point_t pt1, pt2, pt3;
635
0
    unsigned int i = 0;
636
0
    if ((env.argStack.get_count () % 8) >= 4)
637
0
    {
638
0
      point_t pt1 = env.get_pt ();
639
0
      pt1.move_y (env.eval_arg (i));
640
0
      point_t pt2 = pt1;
641
0
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
642
0
      point_t pt3 = pt2;
643
0
      pt3.move_x (env.eval_arg (i+3));
644
0
      i += 4;
645
646
0
      for (; i + 8 <= env.argStack.get_count (); i += 8)
647
0
      {
648
0
  PATH::curve (env, param, pt1, pt2, pt3);
649
0
  pt1 = env.get_pt ();
650
0
  pt1.move_x (env.eval_arg (i));
651
0
  pt2 = pt1;
652
0
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
653
0
  pt3 = pt2;
654
0
  pt3.move_y (env.eval_arg (i+3));
655
0
  PATH::curve (env, param, pt1, pt2, pt3);
656
657
0
  pt1 = pt3;
658
0
  pt1.move_y (env.eval_arg (i+4));
659
0
  pt2 = pt1;
660
0
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
661
0
  pt3 = pt2;
662
0
  pt3.move_x (env.eval_arg (i+7));
663
0
      }
664
0
      if (i < env.argStack.get_count ())
665
0
  pt3.move_y (env.eval_arg (i));
666
0
      PATH::curve (env, param, pt1, pt2, pt3);
667
0
    }
668
0
    else
669
0
    {
670
0
      for (; i + 8 <= env.argStack.get_count (); i += 8)
671
0
      {
672
0
  pt1 = env.get_pt ();
673
0
  pt1.move_y (env.eval_arg (i));
674
0
  pt2 = pt1;
675
0
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
676
0
  pt3 = pt2;
677
0
  pt3.move_x (env.eval_arg (i+3));
678
0
  PATH::curve (env, param, pt1, pt2, pt3);
679
680
0
  pt1 = pt3;
681
0
  pt1.move_x (env.eval_arg (i+4));
682
0
  pt2 = pt1;
683
0
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
684
0
  pt3 = pt2;
685
0
  pt3.move_y (env.eval_arg (i+7));
686
0
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
687
0
    pt3.move_x (env.eval_arg (i+8));
688
0
  PATH::curve (env, param, pt1, pt2, pt3);
689
0
      }
690
0
    }
691
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::vhcurveto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::vhcurveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::vhcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::vhcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
692
693
  static void hvcurveto (ENV &env, PARAM& param)
694
0
  {
695
0
    point_t pt1, pt2, pt3;
696
0
    unsigned int i = 0;
697
0
    if ((env.argStack.get_count () % 8) >= 4)
698
0
    {
699
0
      point_t pt1 = env.get_pt ();
700
0
      pt1.move_x (env.eval_arg (i));
701
0
      point_t pt2 = pt1;
702
0
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
703
0
      point_t pt3 = pt2;
704
0
      pt3.move_y (env.eval_arg (i+3));
705
0
      i += 4;
706
707
0
      for (; i + 8 <= env.argStack.get_count (); i += 8)
708
0
      {
709
0
  PATH::curve (env, param, pt1, pt2, pt3);
710
0
  pt1 = env.get_pt ();
711
0
  pt1.move_y (env.eval_arg (i));
712
0
  pt2 = pt1;
713
0
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
714
0
  pt3 = pt2;
715
0
  pt3.move_x (env.eval_arg (i+3));
716
0
  PATH::curve (env, param, pt1, pt2, pt3);
717
718
0
  pt1 = pt3;
719
0
  pt1.move_x (env.eval_arg (i+4));
720
0
  pt2 = pt1;
721
0
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
722
0
  pt3 = pt2;
723
0
  pt3.move_y (env.eval_arg (i+7));
724
0
      }
725
0
      if (i < env.argStack.get_count ())
726
0
  pt3.move_x (env.eval_arg (i));
727
0
      PATH::curve (env, param, pt1, pt2, pt3);
728
0
    }
729
0
    else
730
0
    {
731
0
      for (; i + 8 <= env.argStack.get_count (); i += 8)
732
0
      {
733
0
  pt1 = env.get_pt ();
734
0
  pt1.move_x (env.eval_arg (i));
735
0
  pt2 = pt1;
736
0
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
737
0
  pt3 = pt2;
738
0
  pt3.move_y (env.eval_arg (i+3));
739
0
  PATH::curve (env, param, pt1, pt2, pt3);
740
741
0
  pt1 = pt3;
742
0
  pt1.move_y (env.eval_arg (i+4));
743
0
  pt2 = pt1;
744
0
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
745
0
  pt3 = pt2;
746
0
  pt3.move_x (env.eval_arg (i+7));
747
0
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
748
0
    pt3.move_y (env.eval_arg (i+8));
749
0
  PATH::curve (env, param, pt1, pt2, pt3);
750
0
      }
751
0
    }
752
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::hvcurveto(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::hvcurveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::hvcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::hvcurveto(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
753
754
  /* default actions to be overridden */
755
  static void moveto (ENV &env, PARAM& param, const point_t &pt)
756
  { env.moveto (pt); }
757
758
  static void line (ENV &env, PARAM& param, const point_t &pt1)
759
  { PATH::moveto (env, param, pt1); }
760
761
  static void curve (ENV &env, PARAM& param, const point_t &pt1, const point_t &pt2, const point_t &pt3)
762
  { PATH::moveto (env, param, pt3); }
763
764
  static void hflex (ENV &env, PARAM& param)
765
0
  {
766
0
    if (likely (env.argStack.get_count () == 7))
767
0
    {
768
0
      point_t pt1 = env.get_pt ();
769
0
      pt1.move_x (env.eval_arg (0));
770
0
      point_t pt2 = pt1;
771
0
      pt2.move (env.eval_arg (1), env.eval_arg (2));
772
0
      point_t pt3 = pt2;
773
0
      pt3.move_x (env.eval_arg (3));
774
0
      point_t pt4 = pt3;
775
0
      pt4.move_x (env.eval_arg (4));
776
0
      point_t pt5 = pt4;
777
0
      pt5.move_x (env.eval_arg (5));
778
0
      pt5.y = pt1.y;
779
0
      point_t pt6 = pt5;
780
0
      pt6.move_x (env.eval_arg (6));
781
782
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
783
0
    }
784
0
    else
785
0
      env.set_error ();
786
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::hflex(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::hflex(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::hflex(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::hflex(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
787
788
  static void flex (ENV &env, PARAM& param)
789
0
  {
790
0
    if (likely (env.argStack.get_count () == 13))
791
0
    {
792
0
      point_t pt1 = env.get_pt ();
793
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
794
0
      point_t pt2 = pt1;
795
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
796
0
      point_t pt3 = pt2;
797
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
798
0
      point_t pt4 = pt3;
799
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
800
0
      point_t pt5 = pt4;
801
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
802
0
      point_t pt6 = pt5;
803
0
      pt6.move (env.eval_arg (10), env.eval_arg (11));
804
805
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
806
0
    }
807
0
    else
808
0
      env.set_error ();
809
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::flex(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::flex(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::flex(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::flex(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
810
811
  static void hflex1 (ENV &env, PARAM& param)
812
0
  {
813
0
    if (likely (env.argStack.get_count () == 9))
814
0
    {
815
0
      point_t pt1 = env.get_pt ();
816
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
817
0
      point_t pt2 = pt1;
818
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
819
0
      point_t pt3 = pt2;
820
0
      pt3.move_x (env.eval_arg (4));
821
0
      point_t pt4 = pt3;
822
0
      pt4.move_x (env.eval_arg (5));
823
0
      point_t pt5 = pt4;
824
0
      pt5.move (env.eval_arg (6), env.eval_arg (7));
825
0
      point_t pt6 = pt5;
826
0
      pt6.move_x (env.eval_arg (8));
827
0
      pt6.y = env.get_pt ().y;
828
829
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
830
0
    }
831
0
    else
832
0
      env.set_error ();
833
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::hflex1(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::hflex1(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::hflex1(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::hflex1(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
834
835
  static void flex1 (ENV &env, PARAM& param)
836
0
  {
837
0
    if (likely (env.argStack.get_count () == 11))
838
0
    {
839
0
      point_t d;
840
0
      for (unsigned int i = 0; i < 10; i += 2)
841
0
  d.move (env.eval_arg (i), env.eval_arg (i+1));
842
843
0
      point_t pt1 = env.get_pt ();
844
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
845
0
      point_t pt2 = pt1;
846
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
847
0
      point_t pt3 = pt2;
848
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
849
0
      point_t pt4 = pt3;
850
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
851
0
      point_t pt5 = pt4;
852
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
853
0
      point_t pt6 = pt5;
854
855
0
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
856
0
      {
857
0
  pt6.move_x (env.eval_arg (10));
858
0
  pt6.y = env.get_pt ().y;
859
0
      }
860
0
      else
861
0
      {
862
0
  pt6.x = env.get_pt ().x;
863
0
  pt6.move_y (env.eval_arg (10));
864
0
      }
865
866
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
867
0
    }
868
0
    else
869
0
      env.set_error ();
870
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::flex1(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::flex1(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::flex1(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::flex1(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
871
872
  protected:
873
  static void curve2 (ENV &env, PARAM& param,
874
          const point_t &pt1, const point_t &pt2, const point_t &pt3,
875
          const point_t &pt4, const point_t &pt5, const point_t &pt6)
876
0
  {
877
0
    PATH::curve (env, param, pt1, pt2, pt3);
878
0
    PATH::curve (env, param, pt4, pt5, pt6);
879
0
  }
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_extents_t, CFF::cff1_cs_interp_env_t, cff1_extents_param_t>::curve2(CFF::cff1_cs_interp_env_t&, cff1_extents_param_t&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&)
Unexecuted instantiation: CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::curve2(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_extents_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_extents_param_t>::curve2(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_extents_param_t&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&)
Unexecuted instantiation: CFF::path_procs_t<cff2_path_procs_path_t, CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_path_param_t>::curve2(CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&, CFF::point_t const&)
880
};
881
882
template <typename ENV, typename OPSET, typename PARAM>
883
struct cs_interpreter_t : interpreter_t<ENV>
884
{
885
0
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_extents_t, cff1_extents_param_t>::cs_interpreter_t(CFF::cff1_cs_interp_env_t&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_path_t, cff1_path_param_t>::cs_interpreter_t(CFF::cff1_cs_interp_env_t&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_seac_t, get_seac_param_t>::cs_interpreter_t(CFF::cff1_cs_interp_env_t&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_cs_opset_extents_t, cff2_extents_param_t>::cs_interpreter_t(CFF::cff2_cs_interp_env_t<CFF::number_t>&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_cs_opset_path_t, cff2_path_param_t>::cs_interpreter_t(CFF::cff2_cs_interp_env_t<CFF::number_t>&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_flatten_t, CFF::flatten_param_t>::cs_interpreter_t(CFF::cff1_cs_interp_env_t&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_subr_subset_t, CFF::subr_subset_param_t>::cs_interpreter_t(CFF::cff1_cs_interp_env_t&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_cs_opset_usage_t, CFF::cff2_usage_param_t>::cs_interpreter_t(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, cff2_cs_opset_flatten_t, CFF::flatten_param_t>::cs_interpreter_t(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, cff2_cs_opset_subr_subset_t, CFF::subr_subset_param_t>::cs_interpreter_t(CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>&)
886
887
  bool interpret (PARAM& param, int64_t *budget = nullptr)
888
0
  {
889
0
    SUPER::env.set_endchar (false);
890
0
    SUPER::env.set_budget (budget);
891
892
    /* Cap the operator count by the caller's remaining budget so the single
893
     * max_ops counter enforces both the structural limit and the live work
894
     * budget, with no budget check in the hot loop.  The consumed operators
895
     * are charged back after the loop, and since the cap never exceeds the
896
     * remaining budget the charstring cannot overshoot it.  CFF2 blend
897
     * charges its proportional work separately, in place. */
898
0
    int64_t remaining = budget ? *budget : (int64_t) HB_CFF_MAX_OPS;
899
0
    unsigned max_ops = (unsigned) hb_clamp (remaining, (int64_t) 0, (int64_t) HB_CFF_MAX_OPS);
900
0
    unsigned start_ops = max_ops;
901
902
0
    bool ret = true;
903
0
    if (likely (max_ops))
904
0
      for (;;) {
905
0
  OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
906
0
  if (unlikely (SUPER::env.in_error () || !--max_ops))
907
0
  {
908
0
    SUPER::env.set_error ();
909
0
    ret = false;
910
0
    break;
911
0
  }
912
0
  if (SUPER::env.is_endchar ())
913
0
    break;
914
0
      }
915
0
    else
916
0
    {
917
0
      SUPER::env.set_error ();
918
0
      ret = false;
919
0
    }
920
921
0
    if (budget) *budget -= (int64_t) (start_ops - max_ops);
922
923
0
    return ret;
924
0
  }
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_extents_t, cff1_extents_param_t>::interpret(cff1_extents_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_path_t, cff1_path_param_t>::interpret(cff1_path_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_seac_t, get_seac_param_t>::interpret(get_seac_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_cs_opset_extents_t, cff2_extents_param_t>::interpret(cff2_extents_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_cs_opset_path_t, cff2_path_param_t>::interpret(cff2_path_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_flatten_t, CFF::flatten_param_t>::interpret(CFF::flatten_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_subr_subset_t, CFF::subr_subset_param_t>::interpret(CFF::subr_subset_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, CFF::cff2_cs_opset_usage_t, CFF::cff2_usage_param_t>::interpret(CFF::cff2_usage_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, cff2_cs_opset_flatten_t, CFF::flatten_param_t>::interpret(CFF::flatten_param_t&, long*)
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::blend_arg_t>, cff2_cs_opset_subr_subset_t, CFF::subr_subset_param_t>::interpret(CFF::subr_subset_param_t&, long*)
925
926
  private:
927
  typedef interpreter_t<ENV> SUPER;
928
};
929
930
} /* namespace CFF */
931
932
#endif /* HB_CFF_INTERP_CS_COMMON_HH */