Coverage Report

Created: 2024-08-27 12:17

/src/harfbuzz/src/hb-cff-interp-cs-common.hh
Line
Count
Source (jump to first uncovered line)
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
308k
  {
46
308k
    str_ref = substr_;
47
308k
    type = type_;
48
308k
    subr_num = subr_num_;
49
308k
  }
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
145k
  {
67
145k
    subrs = subrs_;
68
145k
    unsigned int  nSubrs = get_count ();
69
145k
    if (nSubrs < 1240)
70
145k
      bias = 107;
71
88
    else if (nSubrs < 33900)
72
86
      bias = 1131;
73
2
    else
74
2
      bias = 32768;
75
145k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::init(CFF::Subrs<OT::IntType<unsigned short, 2u> > const*)
Line
Count
Source
66
67.8k
  {
67
67.8k
    subrs = subrs_;
68
67.8k
    unsigned int  nSubrs = get_count ();
69
67.8k
    if (nSubrs < 1240)
70
67.7k
      bias = 107;
71
84
    else if (nSubrs < 33900)
72
82
      bias = 1131;
73
2
    else
74
2
      bias = 32768;
75
67.8k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::init(CFF::Subrs<OT::IntType<unsigned int, 4u> > const*)
Line
Count
Source
66
77.8k
  {
67
77.8k
    subrs = subrs_;
68
77.8k
    unsigned int  nSubrs = get_count ();
69
77.8k
    if (nSubrs < 1240)
70
77.8k
      bias = 107;
71
4
    else if (nSubrs < 33900)
72
4
      bias = 1131;
73
0
    else
74
0
      bias = 32768;
75
77.8k
  }
76
77
145k
  void fini () {}
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::fini()
Line
Count
Source
77
67.8k
  void fini () {}
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::fini()
Line
Count
Source
77
77.8k
  void fini () {}
78
79
385k
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::get_count() const
Line
Count
Source
79
116k
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::get_count() const
Line
Count
Source
79
268k
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
80
240k
  unsigned int get_bias () const  { return bias; }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::get_bias() const
Line
Count
Source
80
48.9k
  unsigned int get_bias () const  { return bias; }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::get_bias() const
Line
Count
Source
80
191k
  unsigned int get_bias () const  { return bias; }
81
82
  hb_ubytes_t operator [] (unsigned int index) const
83
235k
  {
84
235k
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
235k
    else
87
235k
      return (*subrs)[index];
88
235k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::operator[](unsigned int) const
Line
Count
Source
83
46.9k
  {
84
46.9k
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
46.9k
    else
87
46.9k
      return (*subrs)[index];
88
46.9k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::operator[](unsigned int) const
Line
Count
Source
83
188k
  {
84
188k
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
188k
    else
87
188k
      return (*subrs)[index];
88
188k
  }
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
702k
  {
99
702k
    x.set_int (_x);
100
702k
    y.set_int (_y);
101
702k
  }
102
103
2.22M
  void move_x (const number_t &dx) { x += dx; }
104
2.11M
  void move_y (const number_t &dy) { y += dy; }
105
1.52M
  void move (const number_t &dx, const number_t &dy) { move_x (dx); move_y (dy); }
106
97
  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
    interp_env_t<ARG> (str)
117
72.8k
  {
118
72.8k
    context.init (str, CSType_CharString);
119
72.8k
    seen_moveto = true;
120
72.8k
    seen_hintmask = false;
121
72.8k
    hstem_count = 0;
122
72.8k
    vstem_count = 0;
123
72.8k
    hintmask_size = 0;
124
72.8k
    pt.set_int (0, 0);
125
72.8k
    globalSubrs.init (globalSubrs_);
126
72.8k
    localSubrs.init (localSubrs_);
127
72.8k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::IntType<unsigned short, 2u> > const*, CFF::Subrs<OT::IntType<unsigned short, 2u> > const*)
Line
Count
Source
117
33.9k
  {
118
33.9k
    context.init (str, CSType_CharString);
119
33.9k
    seen_moveto = true;
120
33.9k
    seen_hintmask = false;
121
33.9k
    hstem_count = 0;
122
33.9k
    vstem_count = 0;
123
33.9k
    hintmask_size = 0;
124
33.9k
    pt.set_int (0, 0);
125
33.9k
    globalSubrs.init (globalSubrs_);
126
33.9k
    localSubrs.init (localSubrs_);
127
33.9k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::IntType<unsigned int, 4u> > const*, CFF::Subrs<OT::IntType<unsigned int, 4u> > const*)
Line
Count
Source
117
38.9k
  {
118
38.9k
    context.init (str, CSType_CharString);
119
38.9k
    seen_moveto = true;
120
38.9k
    seen_hintmask = false;
121
38.9k
    hstem_count = 0;
122
38.9k
    vstem_count = 0;
123
38.9k
    hintmask_size = 0;
124
38.9k
    pt.set_int (0, 0);
125
38.9k
    globalSubrs.init (globalSubrs_);
126
38.9k
    localSubrs.init (localSubrs_);
127
38.9k
  }
128
  ~cs_interp_env_t ()
129
72.8k
  {
130
72.8k
    globalSubrs.fini ();
131
72.8k
    localSubrs.fini ();
132
72.8k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::~cs_interp_env_t()
Line
Count
Source
129
33.9k
  {
130
33.9k
    globalSubrs.fini ();
131
33.9k
    localSubrs.fini ();
132
33.9k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::~cs_interp_env_t()
Line
Count
Source
129
38.9k
  {
130
38.9k
    globalSubrs.fini ();
131
38.9k
    localSubrs.fini ();
132
38.9k
  }
133
134
  bool in_error () const
135
7.06M
  {
136
7.06M
    return callStack.in_error () || SUPER::in_error ();
137
7.06M
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::in_error() const
Line
Count
Source
135
2.37M
  {
136
2.37M
    return callStack.in_error () || SUPER::in_error ();
137
2.37M
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::in_error() const
Line
Count
Source
135
4.68M
  {
136
4.68M
    return callStack.in_error () || SUPER::in_error ();
137
4.68M
  }
138
139
  bool pop_subr_num (const biased_subrs_t<SUBRS>& biasedSubrs, unsigned int &subr_num)
140
240k
  {
141
240k
    subr_num = 0;
142
240k
    int n = SUPER::argStack.pop_int ();
143
240k
    n += biasedSubrs.get_bias ();
144
240k
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
3.61k
      return false;
146
147
236k
    subr_num = (unsigned int)n;
148
236k
    return true;
149
240k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > > const&, unsigned int&)
Line
Count
Source
140
48.9k
  {
141
48.9k
    subr_num = 0;
142
48.9k
    int n = SUPER::argStack.pop_int ();
143
48.9k
    n += biasedSubrs.get_bias ();
144
48.9k
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
1.50k
      return false;
146
147
47.4k
    subr_num = (unsigned int)n;
148
47.4k
    return true;
149
48.9k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > > const&, unsigned int&)
Line
Count
Source
140
191k
  {
141
191k
    subr_num = 0;
142
191k
    int n = SUPER::argStack.pop_int ();
143
191k
    n += biasedSubrs.get_bias ();
144
191k
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
2.11k
      return false;
146
147
189k
    subr_num = (unsigned int)n;
148
189k
    return true;
149
191k
  }
150
151
  void call_subr (const biased_subrs_t<SUBRS>& biasedSubrs, cs_type_t type)
152
240k
  {
153
240k
    unsigned int subr_num = 0;
154
155
240k
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
240k
     || callStack.get_count () >= kMaxCallLimit))
157
4.47k
    {
158
4.47k
      SUPER::set_error ();
159
4.47k
      return;
160
4.47k
    }
161
235k
    context.str_ref = SUPER::str_ref;
162
235k
    callStack.push (context);
163
164
235k
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
235k
    SUPER::str_ref = context.str_ref;
166
235k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > > const&, CFF::cs_type_t)
Line
Count
Source
152
48.9k
  {
153
48.9k
    unsigned int subr_num = 0;
154
155
48.9k
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
48.9k
     || callStack.get_count () >= kMaxCallLimit))
157
1.97k
    {
158
1.97k
      SUPER::set_error ();
159
1.97k
      return;
160
1.97k
    }
161
46.9k
    context.str_ref = SUPER::str_ref;
162
46.9k
    callStack.push (context);
163
164
46.9k
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
46.9k
    SUPER::str_ref = context.str_ref;
166
46.9k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > > const&, CFF::cs_type_t)
Line
Count
Source
152
191k
  {
153
191k
    unsigned int subr_num = 0;
154
155
191k
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
191k
     || callStack.get_count () >= kMaxCallLimit))
157
2.50k
    {
158
2.50k
      SUPER::set_error ();
159
2.50k
      return;
160
2.50k
    }
161
188k
    context.str_ref = SUPER::str_ref;
162
188k
    callStack.push (context);
163
164
188k
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
188k
    SUPER::str_ref = context.str_ref;
166
188k
  }
167
168
  void return_from_subr ()
169
214k
  {
170
214k
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
214k
    context = callStack.pop ();
173
214k
    SUPER::str_ref = context.str_ref;
174
214k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::return_from_subr()
Line
Count
Source
169
34.4k
  {
170
34.4k
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
34.4k
    context = callStack.pop ();
173
34.4k
    SUPER::str_ref = context.str_ref;
174
34.4k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::return_from_subr()
Line
Count
Source
169
180k
  {
170
180k
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
180k
    context = callStack.pop ();
173
180k
    SUPER::str_ref = context.str_ref;
174
180k
  }
175
176
  void determine_hintmask_size ()
177
8.28k
  {
178
8.28k
    if (!seen_hintmask)
179
2.12k
    {
180
2.12k
      vstem_count += SUPER::argStack.get_count() / 2;
181
2.12k
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
2.12k
      seen_hintmask = true;
183
2.12k
    }
184
8.28k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::determine_hintmask_size()
Line
Count
Source
177
6.49k
  {
178
6.49k
    if (!seen_hintmask)
179
1.29k
    {
180
1.29k
      vstem_count += SUPER::argStack.get_count() / 2;
181
1.29k
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
1.29k
      seen_hintmask = true;
183
1.29k
    }
184
6.49k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::determine_hintmask_size()
Line
Count
Source
177
1.79k
  {
178
1.79k
    if (!seen_hintmask)
179
827
    {
180
827
      vstem_count += SUPER::argStack.get_count() / 2;
181
827
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
827
      seen_hintmask = true;
183
827
    }
184
1.79k
  }
185
186
119k
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::set_endchar(bool)
Line
Count
Source
186
55.4k
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::set_endchar(bool)
Line
Count
Source
186
64.5k
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
187
7.03M
  bool is_endchar () const { return endchar_flag; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::is_endchar() const
Line
Count
Source
187
2.36M
  bool is_endchar () const { return endchar_flag; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::is_endchar() const
Line
Count
Source
187
4.66M
  bool is_endchar () const { return endchar_flag; }
188
189
  const number_t &get_x () const { return pt.x; }
190
  const number_t &get_y () const { return pt.y; }
191
1.78M
  const point_t &get_pt () const { return pt; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::get_pt() const
Line
Count
Source
191
747k
  const point_t &get_pt () const { return pt; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::get_pt() const
Line
Count
Source
191
1.03M
  const point_t &get_pt () const { return pt; }
192
193
1.31M
  void moveto (const point_t &pt_ ) { pt = pt_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::moveto(CFF::point_t const&)
Line
Count
Source
193
501k
  void moveto (const point_t &pt_ ) { pt = pt_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::moveto(CFF::point_t const&)
Line
Count
Source
193
813k
  void moveto (const point_t &pt_ ) { pt = pt_; }
194
195
  public:
196
  call_context_t   context;
197
  bool    endchar_flag;
198
  bool    seen_moveto;
199
  bool    seen_hintmask;
200
201
  unsigned int  hstem_count;
202
  unsigned int  vstem_count;
203
  unsigned int  hintmask_size;
204
  call_stack_t  callStack;
205
  biased_subrs_t<SUBRS>   globalSubrs;
206
  biased_subrs_t<SUBRS>   localSubrs;
207
208
  private:
209
  point_t  pt;
210
211
  typedef interp_env_t<ARG> SUPER;
212
};
213
214
template <typename ENV, typename PARAM>
215
struct path_procs_null_t
216
{
217
0
  static void rmoveto (ENV &env, PARAM& param) {}
218
0
  static void hmoveto (ENV &env, PARAM& param) {}
219
0
  static void vmoveto (ENV &env, PARAM& param) {}
220
0
  static void rlineto (ENV &env, PARAM& param) {}
221
0
  static void hlineto (ENV &env, PARAM& param) {}
222
0
  static void vlineto (ENV &env, PARAM& param) {}
223
0
  static void rrcurveto (ENV &env, PARAM& param) {}
224
0
  static void rcurveline (ENV &env, PARAM& param) {}
225
0
  static void rlinecurve (ENV &env, PARAM& param) {}
226
0
  static void vvcurveto (ENV &env, PARAM& param) {}
227
0
  static void hhcurveto (ENV &env, PARAM& param) {}
228
0
  static void vhcurveto (ENV &env, PARAM& param) {}
229
0
  static void hvcurveto (ENV &env, PARAM& param) {}
230
  static void moveto (ENV &env, PARAM& param, const point_t &pt) {}
231
  static void line (ENV &env, PARAM& param, const point_t &pt1) {}
232
  static void curve (ENV &env, PARAM& param, const point_t &pt1, const point_t &pt2, const point_t &pt3) {}
233
0
  static void hflex (ENV &env, PARAM& param) {}
234
0
  static void flex (ENV &env, PARAM& param) {}
235
0
  static void hflex1 (ENV &env, PARAM& param) {}
236
0
  static void flex1 (ENV &env, PARAM& param) {}
237
};
238
239
template <typename ARG, typename OPSET, typename ENV, typename PARAM, typename PATH=path_procs_null_t<ENV, PARAM>>
240
struct cs_opset_t : opset_t<ARG>
241
{
242
  static void process_op (op_code_t op, ENV &env, PARAM& param)
243
6.95M
  {
244
6.95M
    switch (op) {
245
246
214k
      case OpCode_return:
247
214k
  env.return_from_subr ();
248
214k
  break;
249
25.6k
      case OpCode_endchar:
250
25.6k
  OPSET::check_width (op, env, param);
251
25.6k
  env.set_endchar (true);
252
25.6k
  OPSET::flush_args_and_op (op, env, param);
253
25.6k
  break;
254
255
31.2k
      case OpCode_fixedcs:
256
31.2k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
31.2k
  break;
258
259
234k
      case OpCode_callsubr:
260
234k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
234k
  break;
262
263
5.88k
      case OpCode_callgsubr:
264
5.88k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
5.88k
  break;
266
267
11.1k
      case OpCode_hstem:
268
17.7k
      case OpCode_hstemhm:
269
17.7k
  OPSET::check_width (op, env, param);
270
17.7k
  OPSET::process_hstem (op, env, param);
271
17.7k
  break;
272
8.34k
      case OpCode_vstem:
273
12.3k
      case OpCode_vstemhm:
274
12.3k
  OPSET::check_width (op, env, param);
275
12.3k
  OPSET::process_vstem (op, env, param);
276
12.3k
  break;
277
4.90k
      case OpCode_hintmask:
278
8.28k
      case OpCode_cntrmask:
279
8.28k
  OPSET::check_width (op, env, param);
280
8.28k
  OPSET::process_hintmask (op, env, param);
281
8.28k
  break;
282
99.1k
      case OpCode_rmoveto:
283
99.1k
  OPSET::check_width (op, env, param);
284
99.1k
  PATH::rmoveto (env, param);
285
99.1k
  OPSET::process_post_move (op, env, param);
286
99.1k
  break;
287
18.7k
      case OpCode_hmoveto:
288
18.7k
  OPSET::check_width (op, env, param);
289
18.7k
  PATH::hmoveto (env, param);
290
18.7k
  OPSET::process_post_move (op, env, param);
291
18.7k
  break;
292
11.1k
      case OpCode_vmoveto:
293
11.1k
  OPSET::check_width (op, env, param);
294
11.1k
  PATH::vmoveto (env, param);
295
11.1k
  OPSET::process_post_move (op, env, param);
296
11.1k
  break;
297
75.3k
      case OpCode_rlineto:
298
75.3k
  PATH::rlineto (env, param);
299
75.3k
  process_post_path (op, env, param);
300
75.3k
  break;
301
50.4k
      case OpCode_hlineto:
302
50.4k
  PATH::hlineto (env, param);
303
50.4k
  process_post_path (op, env, param);
304
50.4k
  break;
305
32.9k
      case OpCode_vlineto:
306
32.9k
  PATH::vlineto (env, param);
307
32.9k
  process_post_path (op, env, param);
308
32.9k
  break;
309
94.3k
      case OpCode_rrcurveto:
310
94.3k
  PATH::rrcurveto (env, param);
311
94.3k
  process_post_path (op, env, param);
312
94.3k
  break;
313
43.3k
      case OpCode_rcurveline:
314
43.3k
  PATH::rcurveline (env, param);
315
43.3k
  process_post_path (op, env, param);
316
43.3k
  break;
317
40.4k
      case OpCode_rlinecurve:
318
40.4k
  PATH::rlinecurve (env, param);
319
40.4k
  process_post_path (op, env, param);
320
40.4k
  break;
321
48.7k
      case OpCode_vvcurveto:
322
48.7k
  PATH::vvcurveto (env, param);
323
48.7k
  process_post_path (op, env, param);
324
48.7k
  break;
325
86.9k
      case OpCode_hhcurveto:
326
86.9k
  PATH::hhcurveto (env, param);
327
86.9k
  process_post_path (op, env, param);
328
86.9k
  break;
329
57.0k
      case OpCode_vhcurveto:
330
57.0k
  PATH::vhcurveto (env, param);
331
57.0k
  process_post_path (op, env, param);
332
57.0k
  break;
333
86.2k
      case OpCode_hvcurveto:
334
86.2k
  PATH::hvcurveto (env, param);
335
86.2k
  process_post_path (op, env, param);
336
86.2k
  break;
337
338
19
      case OpCode_hflex:
339
19
  PATH::hflex (env, param);
340
19
  OPSET::process_post_flex (op, env, param);
341
19
  break;
342
343
29
      case OpCode_flex:
344
29
  PATH::flex (env, param);
345
29
  OPSET::process_post_flex (op, env, param);
346
29
  break;
347
348
39
      case OpCode_hflex1:
349
39
  PATH::hflex1 (env, param);
350
39
  OPSET::process_post_flex (op, env, param);
351
39
  break;
352
353
16
      case OpCode_flex1:
354
16
  PATH::flex1 (env, param);
355
16
  OPSET::process_post_flex (op, env, param);
356
16
  break;
357
358
5.65M
      default:
359
5.65M
  SUPER::process_op (op, env);
360
5.65M
  break;
361
6.95M
    }
362
6.95M
  }
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&)
Line
Count
Source
243
1.31M
  {
244
1.31M
    switch (op) {
245
246
22.7k
      case OpCode_return:
247
22.7k
  env.return_from_subr ();
248
22.7k
  break;
249
0
      case OpCode_endchar:
250
0
  OPSET::check_width (op, env, param);
251
0
  env.set_endchar (true);
252
0
  OPSET::flush_args_and_op (op, env, param);
253
0
  break;
254
255
11.0k
      case OpCode_fixedcs:
256
11.0k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
11.0k
  break;
258
259
28.1k
      case OpCode_callsubr:
260
28.1k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
28.1k
  break;
262
263
3.17k
      case OpCode_callgsubr:
264
3.17k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
3.17k
  break;
266
267
4.16k
      case OpCode_hstem:
268
6.63k
      case OpCode_hstemhm:
269
6.63k
  OPSET::check_width (op, env, param);
270
6.63k
  OPSET::process_hstem (op, env, param);
271
6.63k
  break;
272
2.72k
      case OpCode_vstem:
273
4.09k
      case OpCode_vstemhm:
274
4.09k
  OPSET::check_width (op, env, param);
275
4.09k
  OPSET::process_vstem (op, env, param);
276
4.09k
  break;
277
2.15k
      case OpCode_hintmask:
278
3.46k
      case OpCode_cntrmask:
279
3.46k
  OPSET::check_width (op, env, param);
280
3.46k
  OPSET::process_hintmask (op, env, param);
281
3.46k
  break;
282
38.1k
      case OpCode_rmoveto:
283
38.1k
  OPSET::check_width (op, env, param);
284
38.1k
  PATH::rmoveto (env, param);
285
38.1k
  OPSET::process_post_move (op, env, param);
286
38.1k
  break;
287
3.19k
      case OpCode_hmoveto:
288
3.19k
  OPSET::check_width (op, env, param);
289
3.19k
  PATH::hmoveto (env, param);
290
3.19k
  OPSET::process_post_move (op, env, param);
291
3.19k
  break;
292
2.11k
      case OpCode_vmoveto:
293
2.11k
  OPSET::check_width (op, env, param);
294
2.11k
  PATH::vmoveto (env, param);
295
2.11k
  OPSET::process_post_move (op, env, param);
296
2.11k
  break;
297
11.9k
      case OpCode_rlineto:
298
11.9k
  PATH::rlineto (env, param);
299
11.9k
  process_post_path (op, env, param);
300
11.9k
  break;
301
9.31k
      case OpCode_hlineto:
302
9.31k
  PATH::hlineto (env, param);
303
9.31k
  process_post_path (op, env, param);
304
9.31k
  break;
305
8.30k
      case OpCode_vlineto:
306
8.30k
  PATH::vlineto (env, param);
307
8.30k
  process_post_path (op, env, param);
308
8.30k
  break;
309
22.9k
      case OpCode_rrcurveto:
310
22.9k
  PATH::rrcurveto (env, param);
311
22.9k
  process_post_path (op, env, param);
312
22.9k
  break;
313
5.05k
      case OpCode_rcurveline:
314
5.05k
  PATH::rcurveline (env, param);
315
5.05k
  process_post_path (op, env, param);
316
5.05k
  break;
317
5.57k
      case OpCode_rlinecurve:
318
5.57k
  PATH::rlinecurve (env, param);
319
5.57k
  process_post_path (op, env, param);
320
5.57k
  break;
321
13.1k
      case OpCode_vvcurveto:
322
13.1k
  PATH::vvcurveto (env, param);
323
13.1k
  process_post_path (op, env, param);
324
13.1k
  break;
325
14.5k
      case OpCode_hhcurveto:
326
14.5k
  PATH::hhcurveto (env, param);
327
14.5k
  process_post_path (op, env, param);
328
14.5k
  break;
329
13.4k
      case OpCode_vhcurveto:
330
13.4k
  PATH::vhcurveto (env, param);
331
13.4k
  process_post_path (op, env, param);
332
13.4k
  break;
333
17.4k
      case OpCode_hvcurveto:
334
17.4k
  PATH::hvcurveto (env, param);
335
17.4k
  process_post_path (op, env, param);
336
17.4k
  break;
337
338
6
      case OpCode_hflex:
339
6
  PATH::hflex (env, param);
340
6
  OPSET::process_post_flex (op, env, param);
341
6
  break;
342
343
11
      case OpCode_flex:
344
11
  PATH::flex (env, param);
345
11
  OPSET::process_post_flex (op, env, param);
346
11
  break;
347
348
12
      case OpCode_hflex1:
349
12
  PATH::hflex1 (env, param);
350
12
  OPSET::process_post_flex (op, env, param);
351
12
  break;
352
353
7
      case OpCode_flex1:
354
7
  PATH::flex1 (env, param);
355
7
  OPSET::process_post_flex (op, env, param);
356
7
  break;
357
358
1.07M
      default:
359
1.07M
  SUPER::process_op (op, env);
360
1.07M
  break;
361
1.31M
    }
362
1.31M
  }
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&)
Line
Count
Source
243
1.04M
  {
244
1.04M
    switch (op) {
245
246
11.7k
      case OpCode_return:
247
11.7k
  env.return_from_subr ();
248
11.7k
  break;
249
0
      case OpCode_endchar:
250
0
  OPSET::check_width (op, env, param);
251
0
  env.set_endchar (true);
252
0
  OPSET::flush_args_and_op (op, env, param);
253
0
  break;
254
255
10.4k
      case OpCode_fixedcs:
256
10.4k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
10.4k
  break;
258
259
15.1k
      case OpCode_callsubr:
260
15.1k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
15.1k
  break;
262
263
2.42k
      case OpCode_callgsubr:
264
2.42k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
2.42k
  break;
266
267
3.11k
      case OpCode_hstem:
268
5.39k
      case OpCode_hstemhm:
269
5.39k
  OPSET::check_width (op, env, param);
270
5.39k
  OPSET::process_hstem (op, env, param);
271
5.39k
  break;
272
2.11k
      case OpCode_vstem:
273
3.40k
      case OpCode_vstemhm:
274
3.40k
  OPSET::check_width (op, env, param);
275
3.40k
  OPSET::process_vstem (op, env, param);
276
3.40k
  break;
277
1.87k
      case OpCode_hintmask:
278
3.03k
      case OpCode_cntrmask:
279
3.03k
  OPSET::check_width (op, env, param);
280
3.03k
  OPSET::process_hintmask (op, env, param);
281
3.03k
  break;
282
22.0k
      case OpCode_rmoveto:
283
22.0k
  OPSET::check_width (op, env, param);
284
22.0k
  PATH::rmoveto (env, param);
285
22.0k
  OPSET::process_post_move (op, env, param);
286
22.0k
  break;
287
2.32k
      case OpCode_hmoveto:
288
2.32k
  OPSET::check_width (op, env, param);
289
2.32k
  PATH::hmoveto (env, param);
290
2.32k
  OPSET::process_post_move (op, env, param);
291
2.32k
  break;
292
1.81k
      case OpCode_vmoveto:
293
1.81k
  OPSET::check_width (op, env, param);
294
1.81k
  PATH::vmoveto (env, param);
295
1.81k
  OPSET::process_post_move (op, env, param);
296
1.81k
  break;
297
7.20k
      case OpCode_rlineto:
298
7.20k
  PATH::rlineto (env, param);
299
7.20k
  process_post_path (op, env, param);
300
7.20k
  break;
301
6.32k
      case OpCode_hlineto:
302
6.32k
  PATH::hlineto (env, param);
303
6.32k
  process_post_path (op, env, param);
304
6.32k
  break;
305
6.66k
      case OpCode_vlineto:
306
6.66k
  PATH::vlineto (env, param);
307
6.66k
  process_post_path (op, env, param);
308
6.66k
  break;
309
18.8k
      case OpCode_rrcurveto:
310
18.8k
  PATH::rrcurveto (env, param);
311
18.8k
  process_post_path (op, env, param);
312
18.8k
  break;
313
4.76k
      case OpCode_rcurveline:
314
4.76k
  PATH::rcurveline (env, param);
315
4.76k
  process_post_path (op, env, param);
316
4.76k
  break;
317
5.53k
      case OpCode_rlinecurve:
318
5.53k
  PATH::rlinecurve (env, param);
319
5.53k
  process_post_path (op, env, param);
320
5.53k
  break;
321
12.9k
      case OpCode_vvcurveto:
322
12.9k
  PATH::vvcurveto (env, param);
323
12.9k
  process_post_path (op, env, param);
324
12.9k
  break;
325
13.6k
      case OpCode_hhcurveto:
326
13.6k
  PATH::hhcurveto (env, param);
327
13.6k
  process_post_path (op, env, param);
328
13.6k
  break;
329
13.2k
      case OpCode_vhcurveto:
330
13.2k
  PATH::vhcurveto (env, param);
331
13.2k
  process_post_path (op, env, param);
332
13.2k
  break;
333
16.6k
      case OpCode_hvcurveto:
334
16.6k
  PATH::hvcurveto (env, param);
335
16.6k
  process_post_path (op, env, param);
336
16.6k
  break;
337
338
6
      case OpCode_hflex:
339
6
  PATH::hflex (env, param);
340
6
  OPSET::process_post_flex (op, env, param);
341
6
  break;
342
343
9
      case OpCode_flex:
344
9
  PATH::flex (env, param);
345
9
  OPSET::process_post_flex (op, env, param);
346
9
  break;
347
348
11
      case OpCode_hflex1:
349
11
  PATH::hflex1 (env, param);
350
11
  OPSET::process_post_flex (op, env, param);
351
11
  break;
352
353
7
      case OpCode_flex1:
354
7
  PATH::flex1 (env, param);
355
7
  OPSET::process_post_flex (op, env, param);
356
7
  break;
357
358
858k
      default:
359
858k
  SUPER::process_op (op, env);
360
858k
  break;
361
1.04M
    }
362
1.04M
  }
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&)
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&)
Line
Count
Source
243
1.48M
  {
244
1.48M
    switch (op) {
245
246
103k
      case OpCode_return:
247
103k
  env.return_from_subr ();
248
103k
  break;
249
4.16k
      case OpCode_endchar:
250
4.16k
  OPSET::check_width (op, env, param);
251
4.16k
  env.set_endchar (true);
252
4.16k
  OPSET::flush_args_and_op (op, env, param);
253
4.16k
  break;
254
255
5.47k
      case OpCode_fixedcs:
256
5.47k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
5.47k
  break;
258
259
108k
      case OpCode_callsubr:
260
108k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
108k
  break;
262
263
66
      case OpCode_callgsubr:
264
66
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
66
  break;
266
267
1.44k
      case OpCode_hstem:
268
1.99k
      case OpCode_hstemhm:
269
1.99k
  OPSET::check_width (op, env, param);
270
1.99k
  OPSET::process_hstem (op, env, param);
271
1.99k
  break;
272
779
      case OpCode_vstem:
273
1.23k
      case OpCode_vstemhm:
274
1.23k
  OPSET::check_width (op, env, param);
275
1.23k
  OPSET::process_vstem (op, env, param);
276
1.23k
  break;
277
520
      case OpCode_hintmask:
278
975
      case OpCode_cntrmask:
279
975
  OPSET::check_width (op, env, param);
280
975
  OPSET::process_hintmask (op, env, param);
281
975
  break;
282
10.3k
      case OpCode_rmoveto:
283
10.3k
  OPSET::check_width (op, env, param);
284
10.3k
  PATH::rmoveto (env, param);
285
10.3k
  OPSET::process_post_move (op, env, param);
286
10.3k
  break;
287
8.97k
      case OpCode_hmoveto:
288
8.97k
  OPSET::check_width (op, env, param);
289
8.97k
  PATH::hmoveto (env, param);
290
8.97k
  OPSET::process_post_move (op, env, param);
291
8.97k
  break;
292
759
      case OpCode_vmoveto:
293
759
  OPSET::check_width (op, env, param);
294
759
  PATH::vmoveto (env, param);
295
759
  OPSET::process_post_move (op, env, param);
296
759
  break;
297
20.8k
      case OpCode_rlineto:
298
20.8k
  PATH::rlineto (env, param);
299
20.8k
  process_post_path (op, env, param);
300
20.8k
  break;
301
17.7k
      case OpCode_hlineto:
302
17.7k
  PATH::hlineto (env, param);
303
17.7k
  process_post_path (op, env, param);
304
17.7k
  break;
305
6.29k
      case OpCode_vlineto:
306
6.29k
  PATH::vlineto (env, param);
307
6.29k
  process_post_path (op, env, param);
308
6.29k
  break;
309
4.84k
      case OpCode_rrcurveto:
310
4.84k
  PATH::rrcurveto (env, param);
311
4.84k
  process_post_path (op, env, param);
312
4.84k
  break;
313
3.62k
      case OpCode_rcurveline:
314
3.62k
  PATH::rcurveline (env, param);
315
3.62k
  process_post_path (op, env, param);
316
3.62k
  break;
317
3.52k
      case OpCode_rlinecurve:
318
3.52k
  PATH::rlinecurve (env, param);
319
3.52k
  process_post_path (op, env, param);
320
3.52k
  break;
321
2.40k
      case OpCode_vvcurveto:
322
2.40k
  PATH::vvcurveto (env, param);
323
2.40k
  process_post_path (op, env, param);
324
2.40k
  break;
325
4.82k
      case OpCode_hhcurveto:
326
4.82k
  PATH::hhcurveto (env, param);
327
4.82k
  process_post_path (op, env, param);
328
4.82k
  break;
329
3.16k
      case OpCode_vhcurveto:
330
3.16k
  PATH::vhcurveto (env, param);
331
3.16k
  process_post_path (op, env, param);
332
3.16k
  break;
333
4.94k
      case OpCode_hvcurveto:
334
4.94k
  PATH::hvcurveto (env, param);
335
4.94k
  process_post_path (op, env, param);
336
4.94k
  break;
337
338
4
      case OpCode_hflex:
339
4
  PATH::hflex (env, param);
340
4
  OPSET::process_post_flex (op, env, param);
341
4
  break;
342
343
6
      case OpCode_flex:
344
6
  PATH::flex (env, param);
345
6
  OPSET::process_post_flex (op, env, param);
346
6
  break;
347
348
8
      case OpCode_hflex1:
349
8
  PATH::hflex1 (env, param);
350
8
  OPSET::process_post_flex (op, env, param);
351
8
  break;
352
353
1
      case OpCode_flex1:
354
1
  PATH::flex1 (env, param);
355
1
  OPSET::process_post_flex (op, env, param);
356
1
  break;
357
358
1.16M
      default:
359
1.16M
  SUPER::process_op (op, env);
360
1.16M
  break;
361
1.48M
    }
362
1.48M
  }
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&)
Line
Count
Source
243
3.11M
  {
244
3.11M
    switch (op) {
245
246
76.6k
      case OpCode_return:
247
76.6k
  env.return_from_subr ();
248
76.6k
  break;
249
21.4k
      case OpCode_endchar:
250
21.4k
  OPSET::check_width (op, env, param);
251
21.4k
  env.set_endchar (true);
252
21.4k
  OPSET::flush_args_and_op (op, env, param);
253
21.4k
  break;
254
255
4.30k
      case OpCode_fixedcs:
256
4.30k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
4.30k
  break;
258
259
82.5k
      case OpCode_callsubr:
260
82.5k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
82.5k
  break;
262
263
214
      case OpCode_callgsubr:
264
214
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
214
  break;
266
267
2.38k
      case OpCode_hstem:
268
3.71k
      case OpCode_hstemhm:
269
3.71k
  OPSET::check_width (op, env, param);
270
3.71k
  OPSET::process_hstem (op, env, param);
271
3.71k
  break;
272
2.72k
      case OpCode_vstem:
273
3.60k
      case OpCode_vstemhm:
274
3.60k
  OPSET::check_width (op, env, param);
275
3.60k
  OPSET::process_vstem (op, env, param);
276
3.60k
  break;
277
359
      case OpCode_hintmask:
278
815
      case OpCode_cntrmask:
279
815
  OPSET::check_width (op, env, param);
280
815
  OPSET::process_hintmask (op, env, param);
281
815
  break;
282
28.4k
      case OpCode_rmoveto:
283
28.4k
  OPSET::check_width (op, env, param);
284
28.4k
  PATH::rmoveto (env, param);
285
28.4k
  OPSET::process_post_move (op, env, param);
286
28.4k
  break;
287
4.30k
      case OpCode_hmoveto:
288
4.30k
  OPSET::check_width (op, env, param);
289
4.30k
  PATH::hmoveto (env, param);
290
4.30k
  OPSET::process_post_move (op, env, param);
291
4.30k
  break;
292
6.42k
      case OpCode_vmoveto:
293
6.42k
  OPSET::check_width (op, env, param);
294
6.42k
  PATH::vmoveto (env, param);
295
6.42k
  OPSET::process_post_move (op, env, param);
296
6.42k
  break;
297
35.3k
      case OpCode_rlineto:
298
35.3k
  PATH::rlineto (env, param);
299
35.3k
  process_post_path (op, env, param);
300
35.3k
  break;
301
17.0k
      case OpCode_hlineto:
302
17.0k
  PATH::hlineto (env, param);
303
17.0k
  process_post_path (op, env, param);
304
17.0k
  break;
305
11.6k
      case OpCode_vlineto:
306
11.6k
  PATH::vlineto (env, param);
307
11.6k
  process_post_path (op, env, param);
308
11.6k
  break;
309
47.6k
      case OpCode_rrcurveto:
310
47.6k
  PATH::rrcurveto (env, param);
311
47.6k
  process_post_path (op, env, param);
312
47.6k
  break;
313
29.9k
      case OpCode_rcurveline:
314
29.9k
  PATH::rcurveline (env, param);
315
29.9k
  process_post_path (op, env, param);
316
29.9k
  break;
317
25.8k
      case OpCode_rlinecurve:
318
25.8k
  PATH::rlinecurve (env, param);
319
25.8k
  process_post_path (op, env, param);
320
25.8k
  break;
321
20.2k
      case OpCode_vvcurveto:
322
20.2k
  PATH::vvcurveto (env, param);
323
20.2k
  process_post_path (op, env, param);
324
20.2k
  break;
325
54.0k
      case OpCode_hhcurveto:
326
54.0k
  PATH::hhcurveto (env, param);
327
54.0k
  process_post_path (op, env, param);
328
54.0k
  break;
329
27.1k
      case OpCode_vhcurveto:
330
27.1k
  PATH::vhcurveto (env, param);
331
27.1k
  process_post_path (op, env, param);
332
27.1k
  break;
333
47.1k
      case OpCode_hvcurveto:
334
47.1k
  PATH::hvcurveto (env, param);
335
47.1k
  process_post_path (op, env, param);
336
47.1k
  break;
337
338
3
      case OpCode_hflex:
339
3
  PATH::hflex (env, param);
340
3
  OPSET::process_post_flex (op, env, param);
341
3
  break;
342
343
3
      case OpCode_flex:
344
3
  PATH::flex (env, param);
345
3
  OPSET::process_post_flex (op, env, param);
346
3
  break;
347
348
8
      case OpCode_hflex1:
349
8
  PATH::hflex1 (env, param);
350
8
  OPSET::process_post_flex (op, env, param);
351
8
  break;
352
353
1
      case OpCode_flex1:
354
1
  PATH::flex1 (env, param);
355
1
  OPSET::process_post_flex (op, env, param);
356
1
  break;
357
358
2.56M
      default:
359
2.56M
  SUPER::process_op (op, env);
360
2.56M
  break;
361
3.11M
    }
362
3.11M
  }
363
364
  static void process_hstem (op_code_t op, ENV &env, PARAM& param)
365
17.7k
  {
366
17.7k
    env.hstem_count += env.argStack.get_count () / 2;
367
17.7k
    OPSET::flush_args_and_op (op, env, param);
368
17.7k
  }
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&)
Line
Count
Source
365
6.63k
  {
366
6.63k
    env.hstem_count += env.argStack.get_count () / 2;
367
6.63k
    OPSET::flush_args_and_op (op, env, param);
368
6.63k
  }
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&)
Line
Count
Source
365
5.39k
  {
366
5.39k
    env.hstem_count += env.argStack.get_count () / 2;
367
5.39k
    OPSET::flush_args_and_op (op, env, param);
368
5.39k
  }
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&)
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&)
Line
Count
Source
365
1.99k
  {
366
1.99k
    env.hstem_count += env.argStack.get_count () / 2;
367
1.99k
    OPSET::flush_args_and_op (op, env, param);
368
1.99k
  }
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&)
Line
Count
Source
365
3.71k
  {
366
3.71k
    env.hstem_count += env.argStack.get_count () / 2;
367
3.71k
    OPSET::flush_args_and_op (op, env, param);
368
3.71k
  }
369
370
  static void process_vstem (op_code_t op, ENV &env, PARAM& param)
371
12.3k
  {
372
12.3k
    env.vstem_count += env.argStack.get_count () / 2;
373
12.3k
    OPSET::flush_args_and_op (op, env, param);
374
12.3k
  }
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&)
Line
Count
Source
371
4.09k
  {
372
4.09k
    env.vstem_count += env.argStack.get_count () / 2;
373
4.09k
    OPSET::flush_args_and_op (op, env, param);
374
4.09k
  }
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&)
Line
Count
Source
371
3.40k
  {
372
3.40k
    env.vstem_count += env.argStack.get_count () / 2;
373
3.40k
    OPSET::flush_args_and_op (op, env, param);
374
3.40k
  }
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&)
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&)
Line
Count
Source
371
1.23k
  {
372
1.23k
    env.vstem_count += env.argStack.get_count () / 2;
373
1.23k
    OPSET::flush_args_and_op (op, env, param);
374
1.23k
  }
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&)
Line
Count
Source
371
3.60k
  {
372
3.60k
    env.vstem_count += env.argStack.get_count () / 2;
373
3.60k
    OPSET::flush_args_and_op (op, env, param);
374
3.60k
  }
375
376
  static void process_hintmask (op_code_t op, ENV &env, PARAM& param)
377
8.28k
  {
378
8.28k
    env.determine_hintmask_size ();
379
8.28k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
7.96k
    {
381
7.96k
      OPSET::flush_hintmask (op, env, param);
382
7.96k
      env.str_ref.inc (env.hintmask_size);
383
7.96k
    }
384
8.28k
  }
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&)
Line
Count
Source
377
3.46k
  {
378
3.46k
    env.determine_hintmask_size ();
379
3.46k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
3.39k
    {
381
3.39k
      OPSET::flush_hintmask (op, env, param);
382
3.39k
      env.str_ref.inc (env.hintmask_size);
383
3.39k
    }
384
3.46k
  }
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&)
Line
Count
Source
377
3.03k
  {
378
3.03k
    env.determine_hintmask_size ();
379
3.03k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
2.97k
    {
381
2.97k
      OPSET::flush_hintmask (op, env, param);
382
2.97k
      env.str_ref.inc (env.hintmask_size);
383
2.97k
    }
384
3.03k
  }
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&)
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&)
Line
Count
Source
377
975
  {
378
975
    env.determine_hintmask_size ();
379
975
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
854
    {
381
854
      OPSET::flush_hintmask (op, env, param);
382
854
      env.str_ref.inc (env.hintmask_size);
383
854
    }
384
975
  }
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&)
Line
Count
Source
377
815
  {
378
815
    env.determine_hintmask_size ();
379
815
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
742
    {
381
742
      OPSET::flush_hintmask (op, env, param);
382
742
      env.str_ref.inc (env.hintmask_size);
383
742
    }
384
815
  }
385
386
  static void process_post_flex (op_code_t op, ENV &env, PARAM& param)
387
103
  {
388
103
    OPSET::flush_args_and_op (op, env, param);
389
103
  }
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&)
Line
Count
Source
387
36
  {
388
36
    OPSET::flush_args_and_op (op, env, param);
389
36
  }
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&)
Line
Count
Source
387
33
  {
388
33
    OPSET::flush_args_and_op (op, env, param);
389
33
  }
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&)
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&)
Line
Count
Source
387
19
  {
388
19
    OPSET::flush_args_and_op (op, env, param);
389
19
  }
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&)
Line
Count
Source
387
15
  {
388
15
    OPSET::flush_args_and_op (op, env, param);
389
15
  }
390
391
  static void check_width (op_code_t op, ENV &env, PARAM& param)
392
97.2k
  {}
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&)
Line
Count
Source
392
28.4k
  {}
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&)
Line
Count
Source
392
68.7k
  {}
393
394
  static void process_post_move (op_code_t op, ENV &env, PARAM& param)
395
129k
  {
396
129k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
129k
    OPSET::flush_args_and_op (op, env, param);
402
129k
  }
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&)
Line
Count
Source
395
43.5k
  {
396
43.5k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
43.5k
    OPSET::flush_args_and_op (op, env, param);
402
43.5k
  }
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&)
Line
Count
Source
395
26.2k
  {
396
26.2k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
26.2k
    OPSET::flush_args_and_op (op, env, param);
402
26.2k
  }
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&)
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&)
Line
Count
Source
395
20.1k
  {
396
20.1k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
20.1k
    OPSET::flush_args_and_op (op, env, param);
402
20.1k
  }
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&)
Line
Count
Source
395
39.1k
  {
396
39.1k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
39.1k
    OPSET::flush_args_and_op (op, env, param);
402
39.1k
  }
403
404
  static void process_post_path (op_code_t op, ENV &env, PARAM& param)
405
615k
  {
406
615k
    OPSET::flush_args_and_op (op, env, param);
407
615k
  }
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&)
Line
Count
Source
405
121k
  {
406
121k
    OPSET::flush_args_and_op (op, env, param);
407
121k
  }
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&)
Line
Count
Source
405
105k
  {
406
105k
    OPSET::flush_args_and_op (op, env, param);
407
105k
  }
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&)
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&)
Line
Count
Source
405
72.2k
  {
406
72.2k
    OPSET::flush_args_and_op (op, env, param);
407
72.2k
  }
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&)
Line
Count
Source
405
316k
  {
406
316k
    OPSET::flush_args_and_op (op, env, param);
407
316k
  }
408
409
  static void flush_args_and_op (op_code_t op, ENV &env, PARAM& param)
410
830k
  {
411
830k
    OPSET::flush_args (env, param);
412
830k
    OPSET::flush_op (op, env, param);
413
830k
  }
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&)
Line
Count
Source
410
194k
  {
411
194k
    OPSET::flush_args (env, param);
412
194k
    OPSET::flush_op (op, env, param);
413
194k
  }
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&)
Line
Count
Source
410
150k
  {
411
150k
    OPSET::flush_args (env, param);
412
150k
    OPSET::flush_op (op, env, param);
413
150k
  }
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&)
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&)
Line
Count
Source
410
100k
  {
411
100k
    OPSET::flush_args (env, param);
412
100k
    OPSET::flush_op (op, env, param);
413
100k
  }
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&)
Line
Count
Source
410
384k
  {
411
384k
    OPSET::flush_args (env, param);
412
384k
    OPSET::flush_op (op, env, param);
413
384k
  }
414
415
  static void flush_args (ENV &env, PARAM& param)
416
830k
  {
417
830k
    env.pop_n_args (env.argStack.get_count ());
418
830k
  }
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&)
Line
Count
Source
416
194k
  {
417
194k
    env.pop_n_args (env.argStack.get_count ());
418
194k
  }
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&)
Line
Count
Source
416
150k
  {
417
150k
    env.pop_n_args (env.argStack.get_count ());
418
150k
  }
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&)
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&)
Line
Count
Source
416
100k
  {
417
100k
    env.pop_n_args (env.argStack.get_count ());
418
100k
  }
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&)
Line
Count
Source
416
384k
  {
417
384k
    env.pop_n_args (env.argStack.get_count ());
418
384k
  }
419
420
  static void flush_op (op_code_t op, ENV &env, PARAM& param)
421
830k
  {
422
830k
  }
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&)
Line
Count
Source
421
194k
  {
422
194k
  }
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&)
Line
Count
Source
421
150k
  {
422
150k
  }
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&)
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&)
Line
Count
Source
421
100k
  {
422
100k
  }
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&)
Line
Count
Source
421
384k
  {
422
384k
  }
423
424
  static void flush_hintmask (op_code_t op, ENV &env, PARAM& param)
425
7.96k
  {
426
7.96k
    OPSET::flush_args_and_op (op, env, param);
427
7.96k
  }
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&)
Line
Count
Source
425
3.39k
  {
426
3.39k
    OPSET::flush_args_and_op (op, env, param);
427
3.39k
  }
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&)
Line
Count
Source
425
2.97k
  {
426
2.97k
    OPSET::flush_args_and_op (op, env, param);
427
2.97k
  }
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&)
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&)
Line
Count
Source
425
854
  {
426
854
    OPSET::flush_args_and_op (op, env, param);
427
854
  }
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&)
Line
Count
Source
425
742
  {
426
742
    OPSET::flush_args_and_op (op, env, param);
427
742
  }
428
429
  static bool is_number_op (op_code_t op)
430
  {
431
    switch (op)
432
    {
433
      case OpCode_shortint:
434
      case OpCode_fixedcs:
435
      case OpCode_TwoBytePosInt0: case OpCode_TwoBytePosInt1:
436
      case OpCode_TwoBytePosInt2: case OpCode_TwoBytePosInt3:
437
      case OpCode_TwoByteNegInt0: case OpCode_TwoByteNegInt1:
438
      case OpCode_TwoByteNegInt2: case OpCode_TwoByteNegInt3:
439
  return true;
440
441
      default:
442
  /* 1-byte integer */
443
  return (OpCode_OneByteIntFirst <= op) && (op <= OpCode_OneByteIntLast);
444
    }
445
  }
446
447
  protected:
448
  typedef opset_t<ARG>  SUPER;
449
};
450
451
template <typename PATH, typename ENV, typename PARAM>
452
struct path_procs_t
453
{
454
  static void rmoveto (ENV &env, PARAM& param)
455
99.1k
  {
456
99.1k
    point_t pt1 = env.get_pt ();
457
99.1k
    const number_t &dy = env.pop_arg ();
458
99.1k
    const number_t &dx = env.pop_arg ();
459
99.1k
    pt1.move (dx, dy);
460
99.1k
    PATH::moveto (env, param, pt1);
461
99.1k
  }
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&)
Line
Count
Source
455
38.1k
  {
456
38.1k
    point_t pt1 = env.get_pt ();
457
38.1k
    const number_t &dy = env.pop_arg ();
458
38.1k
    const number_t &dx = env.pop_arg ();
459
38.1k
    pt1.move (dx, dy);
460
38.1k
    PATH::moveto (env, param, pt1);
461
38.1k
  }
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&)
Line
Count
Source
455
22.0k
  {
456
22.0k
    point_t pt1 = env.get_pt ();
457
22.0k
    const number_t &dy = env.pop_arg ();
458
22.0k
    const number_t &dx = env.pop_arg ();
459
22.0k
    pt1.move (dx, dy);
460
22.0k
    PATH::moveto (env, param, pt1);
461
22.0k
  }
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&)
Line
Count
Source
455
10.3k
  {
456
10.3k
    point_t pt1 = env.get_pt ();
457
10.3k
    const number_t &dy = env.pop_arg ();
458
10.3k
    const number_t &dx = env.pop_arg ();
459
10.3k
    pt1.move (dx, dy);
460
10.3k
    PATH::moveto (env, param, pt1);
461
10.3k
  }
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&)
Line
Count
Source
455
28.4k
  {
456
28.4k
    point_t pt1 = env.get_pt ();
457
28.4k
    const number_t &dy = env.pop_arg ();
458
28.4k
    const number_t &dx = env.pop_arg ();
459
28.4k
    pt1.move (dx, dy);
460
28.4k
    PATH::moveto (env, param, pt1);
461
28.4k
  }
462
463
  static void hmoveto (ENV &env, PARAM& param)
464
18.7k
  {
465
18.7k
    point_t pt1 = env.get_pt ();
466
18.7k
    pt1.move_x (env.pop_arg ());
467
18.7k
    PATH::moveto (env, param, pt1);
468
18.7k
  }
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&)
Line
Count
Source
464
3.19k
  {
465
3.19k
    point_t pt1 = env.get_pt ();
466
3.19k
    pt1.move_x (env.pop_arg ());
467
3.19k
    PATH::moveto (env, param, pt1);
468
3.19k
  }
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&)
Line
Count
Source
464
2.32k
  {
465
2.32k
    point_t pt1 = env.get_pt ();
466
2.32k
    pt1.move_x (env.pop_arg ());
467
2.32k
    PATH::moveto (env, param, pt1);
468
2.32k
  }
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&)
Line
Count
Source
464
8.97k
  {
465
8.97k
    point_t pt1 = env.get_pt ();
466
8.97k
    pt1.move_x (env.pop_arg ());
467
8.97k
    PATH::moveto (env, param, pt1);
468
8.97k
  }
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&)
Line
Count
Source
464
4.30k
  {
465
4.30k
    point_t pt1 = env.get_pt ();
466
4.30k
    pt1.move_x (env.pop_arg ());
467
4.30k
    PATH::moveto (env, param, pt1);
468
4.30k
  }
469
470
  static void vmoveto (ENV &env, PARAM& param)
471
11.1k
  {
472
11.1k
    point_t pt1 = env.get_pt ();
473
11.1k
    pt1.move_y (env.pop_arg ());
474
11.1k
    PATH::moveto (env, param, pt1);
475
11.1k
  }
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&)
Line
Count
Source
471
2.11k
  {
472
2.11k
    point_t pt1 = env.get_pt ();
473
2.11k
    pt1.move_y (env.pop_arg ());
474
2.11k
    PATH::moveto (env, param, pt1);
475
2.11k
  }
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&)
Line
Count
Source
471
1.81k
  {
472
1.81k
    point_t pt1 = env.get_pt ();
473
1.81k
    pt1.move_y (env.pop_arg ());
474
1.81k
    PATH::moveto (env, param, pt1);
475
1.81k
  }
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&)
Line
Count
Source
471
759
  {
472
759
    point_t pt1 = env.get_pt ();
473
759
    pt1.move_y (env.pop_arg ());
474
759
    PATH::moveto (env, param, pt1);
475
759
  }
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&)
Line
Count
Source
471
6.42k
  {
472
6.42k
    point_t pt1 = env.get_pt ();
473
6.42k
    pt1.move_y (env.pop_arg ());
474
6.42k
    PATH::moveto (env, param, pt1);
475
6.42k
  }
476
477
  static void rlineto (ENV &env, PARAM& param)
478
75.3k
  {
479
202k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
126k
    {
481
126k
      point_t pt1 = env.get_pt ();
482
126k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
126k
      PATH::line (env, param, pt1);
484
126k
    }
485
75.3k
  }
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&)
Line
Count
Source
478
11.9k
  {
479
35.1k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
23.2k
    {
481
23.2k
      point_t pt1 = env.get_pt ();
482
23.2k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
23.2k
      PATH::line (env, param, pt1);
484
23.2k
    }
485
11.9k
  }
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&)
Line
Count
Source
478
7.20k
  {
479
22.7k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
15.5k
    {
481
15.5k
      point_t pt1 = env.get_pt ();
482
15.5k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
15.5k
      PATH::line (env, param, pt1);
484
15.5k
    }
485
7.20k
  }
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&)
Line
Count
Source
478
20.8k
  {
479
61.7k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
40.8k
    {
481
40.8k
      point_t pt1 = env.get_pt ();
482
40.8k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
40.8k
      PATH::line (env, param, pt1);
484
40.8k
    }
485
20.8k
  }
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&)
Line
Count
Source
478
35.3k
  {
479
82.6k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
47.2k
    {
481
47.2k
      point_t pt1 = env.get_pt ();
482
47.2k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
47.2k
      PATH::line (env, param, pt1);
484
47.2k
    }
485
35.3k
  }
486
487
  static void hlineto (ENV &env, PARAM& param)
488
50.4k
  {
489
50.4k
    point_t pt1;
490
50.4k
    unsigned int i = 0;
491
115k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
64.9k
    {
493
64.9k
      pt1 = env.get_pt ();
494
64.9k
      pt1.move_x (env.eval_arg (i));
495
64.9k
      PATH::line (env, param, pt1);
496
64.9k
      pt1.move_y (env.eval_arg (i+1));
497
64.9k
      PATH::line (env, param, pt1);
498
64.9k
    }
499
50.4k
    if (i < env.argStack.get_count ())
500
36.2k
    {
501
36.2k
      pt1 = env.get_pt ();
502
36.2k
      pt1.move_x (env.eval_arg (i));
503
36.2k
      PATH::line (env, param, pt1);
504
36.2k
    }
505
50.4k
  }
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&)
Line
Count
Source
488
9.31k
  {
489
9.31k
    point_t pt1;
490
9.31k
    unsigned int i = 0;
491
18.2k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
8.89k
    {
493
8.89k
      pt1 = env.get_pt ();
494
8.89k
      pt1.move_x (env.eval_arg (i));
495
8.89k
      PATH::line (env, param, pt1);
496
8.89k
      pt1.move_y (env.eval_arg (i+1));
497
8.89k
      PATH::line (env, param, pt1);
498
8.89k
    }
499
9.31k
    if (i < env.argStack.get_count ())
500
6.10k
    {
501
6.10k
      pt1 = env.get_pt ();
502
6.10k
      pt1.move_x (env.eval_arg (i));
503
6.10k
      PATH::line (env, param, pt1);
504
6.10k
    }
505
9.31k
  }
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&)
Line
Count
Source
488
6.32k
  {
489
6.32k
    point_t pt1;
490
6.32k
    unsigned int i = 0;
491
13.0k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
6.68k
    {
493
6.68k
      pt1 = env.get_pt ();
494
6.68k
      pt1.move_x (env.eval_arg (i));
495
6.68k
      PATH::line (env, param, pt1);
496
6.68k
      pt1.move_y (env.eval_arg (i+1));
497
6.68k
      PATH::line (env, param, pt1);
498
6.68k
    }
499
6.32k
    if (i < env.argStack.get_count ())
500
3.51k
    {
501
3.51k
      pt1 = env.get_pt ();
502
3.51k
      pt1.move_x (env.eval_arg (i));
503
3.51k
      PATH::line (env, param, pt1);
504
3.51k
    }
505
6.32k
  }
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&)
Line
Count
Source
488
17.7k
  {
489
17.7k
    point_t pt1;
490
17.7k
    unsigned int i = 0;
491
51.5k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
33.8k
    {
493
33.8k
      pt1 = env.get_pt ();
494
33.8k
      pt1.move_x (env.eval_arg (i));
495
33.8k
      PATH::line (env, param, pt1);
496
33.8k
      pt1.move_y (env.eval_arg (i+1));
497
33.8k
      PATH::line (env, param, pt1);
498
33.8k
    }
499
17.7k
    if (i < env.argStack.get_count ())
500
12.2k
    {
501
12.2k
      pt1 = env.get_pt ();
502
12.2k
      pt1.move_x (env.eval_arg (i));
503
12.2k
      PATH::line (env, param, pt1);
504
12.2k
    }
505
17.7k
  }
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&)
Line
Count
Source
488
17.0k
  {
489
17.0k
    point_t pt1;
490
17.0k
    unsigned int i = 0;
491
32.5k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
15.5k
    {
493
15.5k
      pt1 = env.get_pt ();
494
15.5k
      pt1.move_x (env.eval_arg (i));
495
15.5k
      PATH::line (env, param, pt1);
496
15.5k
      pt1.move_y (env.eval_arg (i+1));
497
15.5k
      PATH::line (env, param, pt1);
498
15.5k
    }
499
17.0k
    if (i < env.argStack.get_count ())
500
14.3k
    {
501
14.3k
      pt1 = env.get_pt ();
502
14.3k
      pt1.move_x (env.eval_arg (i));
503
14.3k
      PATH::line (env, param, pt1);
504
14.3k
    }
505
17.0k
  }
506
507
  static void vlineto (ENV &env, PARAM& param)
508
32.9k
  {
509
32.9k
    point_t pt1;
510
32.9k
    unsigned int i = 0;
511
99.5k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
66.5k
    {
513
66.5k
      pt1 = env.get_pt ();
514
66.5k
      pt1.move_y (env.eval_arg (i));
515
66.5k
      PATH::line (env, param, pt1);
516
66.5k
      pt1.move_x (env.eval_arg (i+1));
517
66.5k
      PATH::line (env, param, pt1);
518
66.5k
    }
519
32.9k
    if (i < env.argStack.get_count ())
520
22.4k
    {
521
22.4k
      pt1 = env.get_pt ();
522
22.4k
      pt1.move_y (env.eval_arg (i));
523
22.4k
      PATH::line (env, param, pt1);
524
22.4k
    }
525
32.9k
  }
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&)
Line
Count
Source
508
8.30k
  {
509
8.30k
    point_t pt1;
510
8.30k
    unsigned int i = 0;
511
20.9k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
12.5k
    {
513
12.5k
      pt1 = env.get_pt ();
514
12.5k
      pt1.move_y (env.eval_arg (i));
515
12.5k
      PATH::line (env, param, pt1);
516
12.5k
      pt1.move_x (env.eval_arg (i+1));
517
12.5k
      PATH::line (env, param, pt1);
518
12.5k
    }
519
8.30k
    if (i < env.argStack.get_count ())
520
5.55k
    {
521
5.55k
      pt1 = env.get_pt ();
522
5.55k
      pt1.move_y (env.eval_arg (i));
523
5.55k
      PATH::line (env, param, pt1);
524
5.55k
    }
525
8.30k
  }
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&)
Line
Count
Source
508
6.66k
  {
509
6.66k
    point_t pt1;
510
6.66k
    unsigned int i = 0;
511
18.0k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
11.3k
    {
513
11.3k
      pt1 = env.get_pt ();
514
11.3k
      pt1.move_y (env.eval_arg (i));
515
11.3k
      PATH::line (env, param, pt1);
516
11.3k
      pt1.move_x (env.eval_arg (i+1));
517
11.3k
      PATH::line (env, param, pt1);
518
11.3k
    }
519
6.66k
    if (i < env.argStack.get_count ())
520
4.24k
    {
521
4.24k
      pt1 = env.get_pt ();
522
4.24k
      pt1.move_y (env.eval_arg (i));
523
4.24k
      PATH::line (env, param, pt1);
524
4.24k
    }
525
6.66k
  }
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&)
Line
Count
Source
508
6.29k
  {
509
6.29k
    point_t pt1;
510
6.29k
    unsigned int i = 0;
511
33.9k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
27.6k
    {
513
27.6k
      pt1 = env.get_pt ();
514
27.6k
      pt1.move_y (env.eval_arg (i));
515
27.6k
      PATH::line (env, param, pt1);
516
27.6k
      pt1.move_x (env.eval_arg (i+1));
517
27.6k
      PATH::line (env, param, pt1);
518
27.6k
    }
519
6.29k
    if (i < env.argStack.get_count ())
520
3.17k
    {
521
3.17k
      pt1 = env.get_pt ();
522
3.17k
      pt1.move_y (env.eval_arg (i));
523
3.17k
      PATH::line (env, param, pt1);
524
3.17k
    }
525
6.29k
  }
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&)
Line
Count
Source
508
11.6k
  {
509
11.6k
    point_t pt1;
510
11.6k
    unsigned int i = 0;
511
26.5k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
14.8k
    {
513
14.8k
      pt1 = env.get_pt ();
514
14.8k
      pt1.move_y (env.eval_arg (i));
515
14.8k
      PATH::line (env, param, pt1);
516
14.8k
      pt1.move_x (env.eval_arg (i+1));
517
14.8k
      PATH::line (env, param, pt1);
518
14.8k
    }
519
11.6k
    if (i < env.argStack.get_count ())
520
9.44k
    {
521
9.44k
      pt1 = env.get_pt ();
522
9.44k
      pt1.move_y (env.eval_arg (i));
523
9.44k
      PATH::line (env, param, pt1);
524
9.44k
    }
525
11.6k
  }
526
527
  static void rrcurveto (ENV &env, PARAM& param)
528
94.3k
  {
529
290k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
196k
    {
531
196k
      point_t pt1 = env.get_pt ();
532
196k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
196k
      point_t pt2 = pt1;
534
196k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
196k
      point_t pt3 = pt2;
536
196k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
196k
      PATH::curve (env, param, pt1, pt2, pt3);
538
196k
    }
539
94.3k
  }
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&)
Line
Count
Source
528
22.9k
  {
529
78.5k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
55.5k
    {
531
55.5k
      point_t pt1 = env.get_pt ();
532
55.5k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
55.5k
      point_t pt2 = pt1;
534
55.5k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
55.5k
      point_t pt3 = pt2;
536
55.5k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
55.5k
      PATH::curve (env, param, pt1, pt2, pt3);
538
55.5k
    }
539
22.9k
  }
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&)
Line
Count
Source
528
18.8k
  {
529
55.9k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
37.1k
    {
531
37.1k
      point_t pt1 = env.get_pt ();
532
37.1k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
37.1k
      point_t pt2 = pt1;
534
37.1k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
37.1k
      point_t pt3 = pt2;
536
37.1k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
37.1k
      PATH::curve (env, param, pt1, pt2, pt3);
538
37.1k
    }
539
18.8k
  }
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&)
Line
Count
Source
528
4.84k
  {
529
14.8k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
9.97k
    {
531
9.97k
      point_t pt1 = env.get_pt ();
532
9.97k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
9.97k
      point_t pt2 = pt1;
534
9.97k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
9.97k
      point_t pt3 = pt2;
536
9.97k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
9.97k
      PATH::curve (env, param, pt1, pt2, pt3);
538
9.97k
    }
539
4.84k
  }
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&)
Line
Count
Source
528
47.6k
  {
529
141k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
93.7k
    {
531
93.7k
      point_t pt1 = env.get_pt ();
532
93.7k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
93.7k
      point_t pt2 = pt1;
534
93.7k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
93.7k
      point_t pt3 = pt2;
536
93.7k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
93.7k
      PATH::curve (env, param, pt1, pt2, pt3);
538
93.7k
    }
539
47.6k
  }
540
541
  static void rcurveline (ENV &env, PARAM& param)
542
43.3k
  {
543
43.3k
    unsigned int arg_count = env.argStack.get_count ();
544
43.3k
    if (unlikely (arg_count < 8))
545
8.80k
      return;
546
547
34.5k
    unsigned int i = 0;
548
34.5k
    unsigned int curve_limit = arg_count - 2;
549
84.4k
    for (; i + 6 <= curve_limit; i += 6)
550
49.8k
    {
551
49.8k
      point_t pt1 = env.get_pt ();
552
49.8k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
49.8k
      point_t pt2 = pt1;
554
49.8k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
49.8k
      point_t pt3 = pt2;
556
49.8k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
49.8k
      PATH::curve (env, param, pt1, pt2, pt3);
558
49.8k
    }
559
560
34.5k
    point_t pt1 = env.get_pt ();
561
34.5k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
34.5k
    PATH::line (env, param, pt1);
563
34.5k
  }
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&)
Line
Count
Source
542
5.05k
  {
543
5.05k
    unsigned int arg_count = env.argStack.get_count ();
544
5.05k
    if (unlikely (arg_count < 8))
545
2.08k
      return;
546
547
2.97k
    unsigned int i = 0;
548
2.97k
    unsigned int curve_limit = arg_count - 2;
549
9.28k
    for (; i + 6 <= curve_limit; i += 6)
550
6.30k
    {
551
6.30k
      point_t pt1 = env.get_pt ();
552
6.30k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
6.30k
      point_t pt2 = pt1;
554
6.30k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
6.30k
      point_t pt3 = pt2;
556
6.30k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
6.30k
      PATH::curve (env, param, pt1, pt2, pt3);
558
6.30k
    }
559
560
2.97k
    point_t pt1 = env.get_pt ();
561
2.97k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
2.97k
    PATH::line (env, param, pt1);
563
2.97k
  }
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&)
Line
Count
Source
542
4.76k
  {
543
4.76k
    unsigned int arg_count = env.argStack.get_count ();
544
4.76k
    if (unlikely (arg_count < 8))
545
1.83k
      return;
546
547
2.93k
    unsigned int i = 0;
548
2.93k
    unsigned int curve_limit = arg_count - 2;
549
9.18k
    for (; i + 6 <= curve_limit; i += 6)
550
6.25k
    {
551
6.25k
      point_t pt1 = env.get_pt ();
552
6.25k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
6.25k
      point_t pt2 = pt1;
554
6.25k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
6.25k
      point_t pt3 = pt2;
556
6.25k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
6.25k
      PATH::curve (env, param, pt1, pt2, pt3);
558
6.25k
    }
559
560
2.93k
    point_t pt1 = env.get_pt ();
561
2.93k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
2.93k
    PATH::line (env, param, pt1);
563
2.93k
  }
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&)
Line
Count
Source
542
3.62k
  {
543
3.62k
    unsigned int arg_count = env.argStack.get_count ();
544
3.62k
    if (unlikely (arg_count < 8))
545
2.34k
      return;
546
547
1.27k
    unsigned int i = 0;
548
1.27k
    unsigned int curve_limit = arg_count - 2;
549
3.52k
    for (; i + 6 <= curve_limit; i += 6)
550
2.25k
    {
551
2.25k
      point_t pt1 = env.get_pt ();
552
2.25k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
2.25k
      point_t pt2 = pt1;
554
2.25k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
2.25k
      point_t pt3 = pt2;
556
2.25k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
2.25k
      PATH::curve (env, param, pt1, pt2, pt3);
558
2.25k
    }
559
560
1.27k
    point_t pt1 = env.get_pt ();
561
1.27k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
1.27k
    PATH::line (env, param, pt1);
563
1.27k
  }
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&)
Line
Count
Source
542
29.9k
  {
543
29.9k
    unsigned int arg_count = env.argStack.get_count ();
544
29.9k
    if (unlikely (arg_count < 8))
545
2.54k
      return;
546
547
27.3k
    unsigned int i = 0;
548
27.3k
    unsigned int curve_limit = arg_count - 2;
549
62.4k
    for (; i + 6 <= curve_limit; i += 6)
550
35.0k
    {
551
35.0k
      point_t pt1 = env.get_pt ();
552
35.0k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
35.0k
      point_t pt2 = pt1;
554
35.0k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
35.0k
      point_t pt3 = pt2;
556
35.0k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
35.0k
      PATH::curve (env, param, pt1, pt2, pt3);
558
35.0k
    }
559
560
27.3k
    point_t pt1 = env.get_pt ();
561
27.3k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
27.3k
    PATH::line (env, param, pt1);
563
27.3k
  }
564
565
  static void rlinecurve (ENV &env, PARAM& param)
566
40.4k
  {
567
40.4k
    unsigned int arg_count = env.argStack.get_count ();
568
40.4k
    if (unlikely (arg_count < 8))
569
6.14k
      return;
570
571
34.3k
    unsigned int i = 0;
572
34.3k
    unsigned int line_limit = arg_count - 6;
573
97.8k
    for (; i + 2 <= line_limit; i += 2)
574
63.5k
    {
575
63.5k
      point_t pt1 = env.get_pt ();
576
63.5k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
63.5k
      PATH::line (env, param, pt1);
578
63.5k
    }
579
580
34.3k
    point_t pt1 = env.get_pt ();
581
34.3k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
34.3k
    point_t pt2 = pt1;
583
34.3k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
34.3k
    point_t pt3 = pt2;
585
34.3k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
34.3k
    PATH::curve (env, param, pt1, pt2, pt3);
587
34.3k
  }
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&)
Line
Count
Source
566
5.57k
  {
567
5.57k
    unsigned int arg_count = env.argStack.get_count ();
568
5.57k
    if (unlikely (arg_count < 8))
569
1.68k
      return;
570
571
3.89k
    unsigned int i = 0;
572
3.89k
    unsigned int line_limit = arg_count - 6;
573
16.0k
    for (; i + 2 <= line_limit; i += 2)
574
12.1k
    {
575
12.1k
      point_t pt1 = env.get_pt ();
576
12.1k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
12.1k
      PATH::line (env, param, pt1);
578
12.1k
    }
579
580
3.89k
    point_t pt1 = env.get_pt ();
581
3.89k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
3.89k
    point_t pt2 = pt1;
583
3.89k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
3.89k
    point_t pt3 = pt2;
585
3.89k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
3.89k
    PATH::curve (env, param, pt1, pt2, pt3);
587
3.89k
  }
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&)
Line
Count
Source
566
5.53k
  {
567
5.53k
    unsigned int arg_count = env.argStack.get_count ();
568
5.53k
    if (unlikely (arg_count < 8))
569
1.65k
      return;
570
571
3.87k
    unsigned int i = 0;
572
3.87k
    unsigned int line_limit = arg_count - 6;
573
15.9k
    for (; i + 2 <= line_limit; i += 2)
574
12.0k
    {
575
12.0k
      point_t pt1 = env.get_pt ();
576
12.0k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
12.0k
      PATH::line (env, param, pt1);
578
12.0k
    }
579
580
3.87k
    point_t pt1 = env.get_pt ();
581
3.87k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
3.87k
    point_t pt2 = pt1;
583
3.87k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
3.87k
    point_t pt3 = pt2;
585
3.87k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
3.87k
    PATH::curve (env, param, pt1, pt2, pt3);
587
3.87k
  }
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&)
Line
Count
Source
566
3.52k
  {
567
3.52k
    unsigned int arg_count = env.argStack.get_count ();
568
3.52k
    if (unlikely (arg_count < 8))
569
1.29k
      return;
570
571
2.23k
    unsigned int i = 0;
572
2.23k
    unsigned int line_limit = arg_count - 6;
573
8.58k
    for (; i + 2 <= line_limit; i += 2)
574
6.35k
    {
575
6.35k
      point_t pt1 = env.get_pt ();
576
6.35k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
6.35k
      PATH::line (env, param, pt1);
578
6.35k
    }
579
580
2.23k
    point_t pt1 = env.get_pt ();
581
2.23k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
2.23k
    point_t pt2 = pt1;
583
2.23k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
2.23k
    point_t pt3 = pt2;
585
2.23k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
2.23k
    PATH::curve (env, param, pt1, pt2, pt3);
587
2.23k
  }
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&)
Line
Count
Source
566
25.8k
  {
567
25.8k
    unsigned int arg_count = env.argStack.get_count ();
568
25.8k
    if (unlikely (arg_count < 8))
569
1.51k
      return;
570
571
24.3k
    unsigned int i = 0;
572
24.3k
    unsigned int line_limit = arg_count - 6;
573
57.2k
    for (; i + 2 <= line_limit; i += 2)
574
32.9k
    {
575
32.9k
      point_t pt1 = env.get_pt ();
576
32.9k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
32.9k
      PATH::line (env, param, pt1);
578
32.9k
    }
579
580
24.3k
    point_t pt1 = env.get_pt ();
581
24.3k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
24.3k
    point_t pt2 = pt1;
583
24.3k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
24.3k
    point_t pt3 = pt2;
585
24.3k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
24.3k
    PATH::curve (env, param, pt1, pt2, pt3);
587
24.3k
  }
588
589
  static void vvcurveto (ENV &env, PARAM& param)
590
48.7k
  {
591
48.7k
    unsigned int i = 0;
592
48.7k
    point_t pt1 = env.get_pt ();
593
48.7k
    if ((env.argStack.get_count () & 1) != 0)
594
41.7k
      pt1.move_x (env.eval_arg (i++));
595
101k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
53.2k
    {
597
53.2k
      pt1.move_y (env.eval_arg (i));
598
53.2k
      point_t pt2 = pt1;
599
53.2k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
53.2k
      point_t pt3 = pt2;
601
53.2k
      pt3.move_y (env.eval_arg (i+3));
602
53.2k
      PATH::curve (env, param, pt1, pt2, pt3);
603
53.2k
      pt1 = env.get_pt ();
604
53.2k
    }
605
48.7k
  }
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&)
Line
Count
Source
590
13.1k
  {
591
13.1k
    unsigned int i = 0;
592
13.1k
    point_t pt1 = env.get_pt ();
593
13.1k
    if ((env.argStack.get_count () & 1) != 0)
594
11.1k
      pt1.move_x (env.eval_arg (i++));
595
26.4k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
13.2k
    {
597
13.2k
      pt1.move_y (env.eval_arg (i));
598
13.2k
      point_t pt2 = pt1;
599
13.2k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
13.2k
      point_t pt3 = pt2;
601
13.2k
      pt3.move_y (env.eval_arg (i+3));
602
13.2k
      PATH::curve (env, param, pt1, pt2, pt3);
603
13.2k
      pt1 = env.get_pt ();
604
13.2k
    }
605
13.1k
  }
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&)
Line
Count
Source
590
12.9k
  {
591
12.9k
    unsigned int i = 0;
592
12.9k
    point_t pt1 = env.get_pt ();
593
12.9k
    if ((env.argStack.get_count () & 1) != 0)
594
10.9k
      pt1.move_x (env.eval_arg (i++));
595
25.9k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
13.0k
    {
597
13.0k
      pt1.move_y (env.eval_arg (i));
598
13.0k
      point_t pt2 = pt1;
599
13.0k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
13.0k
      point_t pt3 = pt2;
601
13.0k
      pt3.move_y (env.eval_arg (i+3));
602
13.0k
      PATH::curve (env, param, pt1, pt2, pt3);
603
13.0k
      pt1 = env.get_pt ();
604
13.0k
    }
605
12.9k
  }
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&)
Line
Count
Source
590
2.40k
  {
591
2.40k
    unsigned int i = 0;
592
2.40k
    point_t pt1 = env.get_pt ();
593
2.40k
    if ((env.argStack.get_count () & 1) != 0)
594
1.54k
      pt1.move_x (env.eval_arg (i++));
595
6.41k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
4.01k
    {
597
4.01k
      pt1.move_y (env.eval_arg (i));
598
4.01k
      point_t pt2 = pt1;
599
4.01k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
4.01k
      point_t pt3 = pt2;
601
4.01k
      pt3.move_y (env.eval_arg (i+3));
602
4.01k
      PATH::curve (env, param, pt1, pt2, pt3);
603
4.01k
      pt1 = env.get_pt ();
604
4.01k
    }
605
2.40k
  }
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&)
Line
Count
Source
590
20.2k
  {
591
20.2k
    unsigned int i = 0;
592
20.2k
    point_t pt1 = env.get_pt ();
593
20.2k
    if ((env.argStack.get_count () & 1) != 0)
594
18.1k
      pt1.move_x (env.eval_arg (i++));
595
43.1k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
22.9k
    {
597
22.9k
      pt1.move_y (env.eval_arg (i));
598
22.9k
      point_t pt2 = pt1;
599
22.9k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
22.9k
      point_t pt3 = pt2;
601
22.9k
      pt3.move_y (env.eval_arg (i+3));
602
22.9k
      PATH::curve (env, param, pt1, pt2, pt3);
603
22.9k
      pt1 = env.get_pt ();
604
22.9k
    }
605
20.2k
  }
606
607
  static void hhcurveto (ENV &env, PARAM& param)
608
86.9k
  {
609
86.9k
    unsigned int i = 0;
610
86.9k
    point_t pt1 = env.get_pt ();
611
86.9k
    if ((env.argStack.get_count () & 1) != 0)
612
70.5k
      pt1.move_y (env.eval_arg (i++));
613
191k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
104k
    {
615
104k
      pt1.move_x (env.eval_arg (i));
616
104k
      point_t pt2 = pt1;
617
104k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
104k
      point_t pt3 = pt2;
619
104k
      pt3.move_x (env.eval_arg (i+3));
620
104k
      PATH::curve (env, param, pt1, pt2, pt3);
621
104k
      pt1 = env.get_pt ();
622
104k
    }
623
86.9k
  }
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&)
Line
Count
Source
608
14.5k
  {
609
14.5k
    unsigned int i = 0;
610
14.5k
    point_t pt1 = env.get_pt ();
611
14.5k
    if ((env.argStack.get_count () & 1) != 0)
612
12.0k
      pt1.move_y (env.eval_arg (i++));
613
31.6k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
17.1k
    {
615
17.1k
      pt1.move_x (env.eval_arg (i));
616
17.1k
      point_t pt2 = pt1;
617
17.1k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
17.1k
      point_t pt3 = pt2;
619
17.1k
      pt3.move_x (env.eval_arg (i+3));
620
17.1k
      PATH::curve (env, param, pt1, pt2, pt3);
621
17.1k
      pt1 = env.get_pt ();
622
17.1k
    }
623
14.5k
  }
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&)
Line
Count
Source
608
13.6k
  {
609
13.6k
    unsigned int i = 0;
610
13.6k
    point_t pt1 = env.get_pt ();
611
13.6k
    if ((env.argStack.get_count () & 1) != 0)
612
11.7k
      pt1.move_y (env.eval_arg (i++));
613
29.9k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
16.3k
    {
615
16.3k
      pt1.move_x (env.eval_arg (i));
616
16.3k
      point_t pt2 = pt1;
617
16.3k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
16.3k
      point_t pt3 = pt2;
619
16.3k
      pt3.move_x (env.eval_arg (i+3));
620
16.3k
      PATH::curve (env, param, pt1, pt2, pt3);
621
16.3k
      pt1 = env.get_pt ();
622
16.3k
    }
623
13.6k
  }
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&)
Line
Count
Source
608
4.82k
  {
609
4.82k
    unsigned int i = 0;
610
4.82k
    point_t pt1 = env.get_pt ();
611
4.82k
    if ((env.argStack.get_count () & 1) != 0)
612
3.76k
      pt1.move_y (env.eval_arg (i++));
613
12.8k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
8.00k
    {
615
8.00k
      pt1.move_x (env.eval_arg (i));
616
8.00k
      point_t pt2 = pt1;
617
8.00k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
8.00k
      point_t pt3 = pt2;
619
8.00k
      pt3.move_x (env.eval_arg (i+3));
620
8.00k
      PATH::curve (env, param, pt1, pt2, pt3);
621
8.00k
      pt1 = env.get_pt ();
622
8.00k
    }
623
4.82k
  }
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&)
Line
Count
Source
608
54.0k
  {
609
54.0k
    unsigned int i = 0;
610
54.0k
    point_t pt1 = env.get_pt ();
611
54.0k
    if ((env.argStack.get_count () & 1) != 0)
612
43.0k
      pt1.move_y (env.eval_arg (i++));
613
117k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
63.4k
    {
615
63.4k
      pt1.move_x (env.eval_arg (i));
616
63.4k
      point_t pt2 = pt1;
617
63.4k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
63.4k
      point_t pt3 = pt2;
619
63.4k
      pt3.move_x (env.eval_arg (i+3));
620
63.4k
      PATH::curve (env, param, pt1, pt2, pt3);
621
63.4k
      pt1 = env.get_pt ();
622
63.4k
    }
623
54.0k
  }
624
625
  static void vhcurveto (ENV &env, PARAM& param)
626
57.0k
  {
627
57.0k
    point_t pt1, pt2, pt3;
628
57.0k
    unsigned int i = 0;
629
57.0k
    if ((env.argStack.get_count () % 8) >= 4)
630
41.8k
    {
631
41.8k
      point_t pt1 = env.get_pt ();
632
41.8k
      pt1.move_y (env.eval_arg (i));
633
41.8k
      point_t pt2 = pt1;
634
41.8k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
41.8k
      point_t pt3 = pt2;
636
41.8k
      pt3.move_x (env.eval_arg (i+3));
637
41.8k
      i += 4;
638
639
46.9k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
5.10k
      {
641
5.10k
  PATH::curve (env, param, pt1, pt2, pt3);
642
5.10k
  pt1 = env.get_pt ();
643
5.10k
  pt1.move_x (env.eval_arg (i));
644
5.10k
  pt2 = pt1;
645
5.10k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
5.10k
  pt3 = pt2;
647
5.10k
  pt3.move_y (env.eval_arg (i+3));
648
5.10k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
5.10k
  pt1 = pt3;
651
5.10k
  pt1.move_y (env.eval_arg (i+4));
652
5.10k
  pt2 = pt1;
653
5.10k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
5.10k
  pt3 = pt2;
655
5.10k
  pt3.move_x (env.eval_arg (i+7));
656
5.10k
      }
657
41.8k
      if (i < env.argStack.get_count ())
658
30.0k
  pt3.move_y (env.eval_arg (i));
659
41.8k
      PATH::curve (env, param, pt1, pt2, pt3);
660
41.8k
    }
661
15.1k
    else
662
15.1k
    {
663
28.3k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
13.1k
      {
665
13.1k
  pt1 = env.get_pt ();
666
13.1k
  pt1.move_y (env.eval_arg (i));
667
13.1k
  pt2 = pt1;
668
13.1k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
13.1k
  pt3 = pt2;
670
13.1k
  pt3.move_x (env.eval_arg (i+3));
671
13.1k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
13.1k
  pt1 = pt3;
674
13.1k
  pt1.move_x (env.eval_arg (i+4));
675
13.1k
  pt2 = pt1;
676
13.1k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
13.1k
  pt3 = pt2;
678
13.1k
  pt3.move_y (env.eval_arg (i+7));
679
13.1k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
3.73k
    pt3.move_x (env.eval_arg (i+8));
681
13.1k
  PATH::curve (env, param, pt1, pt2, pt3);
682
13.1k
      }
683
15.1k
    }
684
57.0k
  }
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&)
Line
Count
Source
626
13.4k
  {
627
13.4k
    point_t pt1, pt2, pt3;
628
13.4k
    unsigned int i = 0;
629
13.4k
    if ((env.argStack.get_count () % 8) >= 4)
630
7.65k
    {
631
7.65k
      point_t pt1 = env.get_pt ();
632
7.65k
      pt1.move_y (env.eval_arg (i));
633
7.65k
      point_t pt2 = pt1;
634
7.65k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
7.65k
      point_t pt3 = pt2;
636
7.65k
      pt3.move_x (env.eval_arg (i+3));
637
7.65k
      i += 4;
638
639
9.19k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
1.53k
      {
641
1.53k
  PATH::curve (env, param, pt1, pt2, pt3);
642
1.53k
  pt1 = env.get_pt ();
643
1.53k
  pt1.move_x (env.eval_arg (i));
644
1.53k
  pt2 = pt1;
645
1.53k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
1.53k
  pt3 = pt2;
647
1.53k
  pt3.move_y (env.eval_arg (i+3));
648
1.53k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
1.53k
  pt1 = pt3;
651
1.53k
  pt1.move_y (env.eval_arg (i+4));
652
1.53k
  pt2 = pt1;
653
1.53k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
1.53k
  pt3 = pt2;
655
1.53k
  pt3.move_x (env.eval_arg (i+7));
656
1.53k
      }
657
7.65k
      if (i < env.argStack.get_count ())
658
4.77k
  pt3.move_y (env.eval_arg (i));
659
7.65k
      PATH::curve (env, param, pt1, pt2, pt3);
660
7.65k
    }
661
5.80k
    else
662
5.80k
    {
663
9.89k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
4.08k
      {
665
4.08k
  pt1 = env.get_pt ();
666
4.08k
  pt1.move_y (env.eval_arg (i));
667
4.08k
  pt2 = pt1;
668
4.08k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
4.08k
  pt3 = pt2;
670
4.08k
  pt3.move_x (env.eval_arg (i+3));
671
4.08k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
4.08k
  pt1 = pt3;
674
4.08k
  pt1.move_x (env.eval_arg (i+4));
675
4.08k
  pt2 = pt1;
676
4.08k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
4.08k
  pt3 = pt2;
678
4.08k
  pt3.move_y (env.eval_arg (i+7));
679
4.08k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
1.22k
    pt3.move_x (env.eval_arg (i+8));
681
4.08k
  PATH::curve (env, param, pt1, pt2, pt3);
682
4.08k
      }
683
5.80k
    }
684
13.4k
  }
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&)
Line
Count
Source
626
13.2k
  {
627
13.2k
    point_t pt1, pt2, pt3;
628
13.2k
    unsigned int i = 0;
629
13.2k
    if ((env.argStack.get_count () % 8) >= 4)
630
7.54k
    {
631
7.54k
      point_t pt1 = env.get_pt ();
632
7.54k
      pt1.move_y (env.eval_arg (i));
633
7.54k
      point_t pt2 = pt1;
634
7.54k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
7.54k
      point_t pt3 = pt2;
636
7.54k
      pt3.move_x (env.eval_arg (i+3));
637
7.54k
      i += 4;
638
639
9.07k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
1.53k
      {
641
1.53k
  PATH::curve (env, param, pt1, pt2, pt3);
642
1.53k
  pt1 = env.get_pt ();
643
1.53k
  pt1.move_x (env.eval_arg (i));
644
1.53k
  pt2 = pt1;
645
1.53k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
1.53k
  pt3 = pt2;
647
1.53k
  pt3.move_y (env.eval_arg (i+3));
648
1.53k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
1.53k
  pt1 = pt3;
651
1.53k
  pt1.move_y (env.eval_arg (i+4));
652
1.53k
  pt2 = pt1;
653
1.53k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
1.53k
  pt3 = pt2;
655
1.53k
  pt3.move_x (env.eval_arg (i+7));
656
1.53k
      }
657
7.54k
      if (i < env.argStack.get_count ())
658
4.66k
  pt3.move_y (env.eval_arg (i));
659
7.54k
      PATH::curve (env, param, pt1, pt2, pt3);
660
7.54k
    }
661
5.73k
    else
662
5.73k
    {
663
9.79k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
4.06k
      {
665
4.06k
  pt1 = env.get_pt ();
666
4.06k
  pt1.move_y (env.eval_arg (i));
667
4.06k
  pt2 = pt1;
668
4.06k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
4.06k
  pt3 = pt2;
670
4.06k
  pt3.move_x (env.eval_arg (i+3));
671
4.06k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
4.06k
  pt1 = pt3;
674
4.06k
  pt1.move_x (env.eval_arg (i+4));
675
4.06k
  pt2 = pt1;
676
4.06k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
4.06k
  pt3 = pt2;
678
4.06k
  pt3.move_y (env.eval_arg (i+7));
679
4.06k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
1.21k
    pt3.move_x (env.eval_arg (i+8));
681
4.06k
  PATH::curve (env, param, pt1, pt2, pt3);
682
4.06k
      }
683
5.73k
    }
684
13.2k
  }
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&)
Line
Count
Source
626
3.16k
  {
627
3.16k
    point_t pt1, pt2, pt3;
628
3.16k
    unsigned int i = 0;
629
3.16k
    if ((env.argStack.get_count () % 8) >= 4)
630
1.95k
    {
631
1.95k
      point_t pt1 = env.get_pt ();
632
1.95k
      pt1.move_y (env.eval_arg (i));
633
1.95k
      point_t pt2 = pt1;
634
1.95k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
1.95k
      point_t pt3 = pt2;
636
1.95k
      pt3.move_x (env.eval_arg (i+3));
637
1.95k
      i += 4;
638
639
2.64k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
688
      {
641
688
  PATH::curve (env, param, pt1, pt2, pt3);
642
688
  pt1 = env.get_pt ();
643
688
  pt1.move_x (env.eval_arg (i));
644
688
  pt2 = pt1;
645
688
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
688
  pt3 = pt2;
647
688
  pt3.move_y (env.eval_arg (i+3));
648
688
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
688
  pt1 = pt3;
651
688
  pt1.move_y (env.eval_arg (i+4));
652
688
  pt2 = pt1;
653
688
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
688
  pt3 = pt2;
655
688
  pt3.move_x (env.eval_arg (i+7));
656
688
      }
657
1.95k
      if (i < env.argStack.get_count ())
658
1.70k
  pt3.move_y (env.eval_arg (i));
659
1.95k
      PATH::curve (env, param, pt1, pt2, pt3);
660
1.95k
    }
661
1.20k
    else
662
1.20k
    {
663
2.46k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
1.25k
      {
665
1.25k
  pt1 = env.get_pt ();
666
1.25k
  pt1.move_y (env.eval_arg (i));
667
1.25k
  pt2 = pt1;
668
1.25k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
1.25k
  pt3 = pt2;
670
1.25k
  pt3.move_x (env.eval_arg (i+3));
671
1.25k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
1.25k
  pt1 = pt3;
674
1.25k
  pt1.move_x (env.eval_arg (i+4));
675
1.25k
  pt2 = pt1;
676
1.25k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
1.25k
  pt3 = pt2;
678
1.25k
  pt3.move_y (env.eval_arg (i+7));
679
1.25k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
720
    pt3.move_x (env.eval_arg (i+8));
681
1.25k
  PATH::curve (env, param, pt1, pt2, pt3);
682
1.25k
      }
683
1.20k
    }
684
3.16k
  }
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&)
Line
Count
Source
626
27.1k
  {
627
27.1k
    point_t pt1, pt2, pt3;
628
27.1k
    unsigned int i = 0;
629
27.1k
    if ((env.argStack.get_count () % 8) >= 4)
630
24.6k
    {
631
24.6k
      point_t pt1 = env.get_pt ();
632
24.6k
      pt1.move_y (env.eval_arg (i));
633
24.6k
      point_t pt2 = pt1;
634
24.6k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
24.6k
      point_t pt3 = pt2;
636
24.6k
      pt3.move_x (env.eval_arg (i+3));
637
24.6k
      i += 4;
638
639
26.0k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
1.35k
      {
641
1.35k
  PATH::curve (env, param, pt1, pt2, pt3);
642
1.35k
  pt1 = env.get_pt ();
643
1.35k
  pt1.move_x (env.eval_arg (i));
644
1.35k
  pt2 = pt1;
645
1.35k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
1.35k
  pt3 = pt2;
647
1.35k
  pt3.move_y (env.eval_arg (i+3));
648
1.35k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
1.35k
  pt1 = pt3;
651
1.35k
  pt1.move_y (env.eval_arg (i+4));
652
1.35k
  pt2 = pt1;
653
1.35k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
1.35k
  pt3 = pt2;
655
1.35k
  pt3.move_x (env.eval_arg (i+7));
656
1.35k
      }
657
24.6k
      if (i < env.argStack.get_count ())
658
18.9k
  pt3.move_y (env.eval_arg (i));
659
24.6k
      PATH::curve (env, param, pt1, pt2, pt3);
660
24.6k
    }
661
2.43k
    else
662
2.43k
    {
663
6.15k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
3.72k
      {
665
3.72k
  pt1 = env.get_pt ();
666
3.72k
  pt1.move_y (env.eval_arg (i));
667
3.72k
  pt2 = pt1;
668
3.72k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
3.72k
  pt3 = pt2;
670
3.72k
  pt3.move_x (env.eval_arg (i+3));
671
3.72k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
3.72k
  pt1 = pt3;
674
3.72k
  pt1.move_x (env.eval_arg (i+4));
675
3.72k
  pt2 = pt1;
676
3.72k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
3.72k
  pt3 = pt2;
678
3.72k
  pt3.move_y (env.eval_arg (i+7));
679
3.72k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
577
    pt3.move_x (env.eval_arg (i+8));
681
3.72k
  PATH::curve (env, param, pt1, pt2, pt3);
682
3.72k
      }
683
2.43k
    }
684
27.1k
  }
685
686
  static void hvcurveto (ENV &env, PARAM& param)
687
86.2k
  {
688
86.2k
    point_t pt1, pt2, pt3;
689
86.2k
    unsigned int i = 0;
690
86.2k
    if ((env.argStack.get_count () % 8) >= 4)
691
66.4k
    {
692
66.4k
      point_t pt1 = env.get_pt ();
693
66.4k
      pt1.move_x (env.eval_arg (i));
694
66.4k
      point_t pt2 = pt1;
695
66.4k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
66.4k
      point_t pt3 = pt2;
697
66.4k
      pt3.move_y (env.eval_arg (i+3));
698
66.4k
      i += 4;
699
700
73.5k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
7.13k
      {
702
7.13k
  PATH::curve (env, param, pt1, pt2, pt3);
703
7.13k
  pt1 = env.get_pt ();
704
7.13k
  pt1.move_y (env.eval_arg (i));
705
7.13k
  pt2 = pt1;
706
7.13k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
7.13k
  pt3 = pt2;
708
7.13k
  pt3.move_x (env.eval_arg (i+3));
709
7.13k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
7.13k
  pt1 = pt3;
712
7.13k
  pt1.move_x (env.eval_arg (i+4));
713
7.13k
  pt2 = pt1;
714
7.13k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
7.13k
  pt3 = pt2;
716
7.13k
  pt3.move_y (env.eval_arg (i+7));
717
7.13k
      }
718
66.4k
      if (i < env.argStack.get_count ())
719
58.3k
  pt3.move_x (env.eval_arg (i));
720
66.4k
      PATH::curve (env, param, pt1, pt2, pt3);
721
66.4k
    }
722
19.8k
    else
723
19.8k
    {
724
40.7k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
20.8k
      {
726
20.8k
  pt1 = env.get_pt ();
727
20.8k
  pt1.move_x (env.eval_arg (i));
728
20.8k
  pt2 = pt1;
729
20.8k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
20.8k
  pt3 = pt2;
731
20.8k
  pt3.move_y (env.eval_arg (i+3));
732
20.8k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
20.8k
  pt1 = pt3;
735
20.8k
  pt1.move_y (env.eval_arg (i+4));
736
20.8k
  pt2 = pt1;
737
20.8k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
20.8k
  pt3 = pt2;
739
20.8k
  pt3.move_x (env.eval_arg (i+7));
740
20.8k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
13.5k
    pt3.move_y (env.eval_arg (i+8));
742
20.8k
  PATH::curve (env, param, pt1, pt2, pt3);
743
20.8k
      }
744
19.8k
    }
745
86.2k
  }
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&)
Line
Count
Source
687
17.4k
  {
688
17.4k
    point_t pt1, pt2, pt3;
689
17.4k
    unsigned int i = 0;
690
17.4k
    if ((env.argStack.get_count () % 8) >= 4)
691
10.2k
    {
692
10.2k
      point_t pt1 = env.get_pt ();
693
10.2k
      pt1.move_x (env.eval_arg (i));
694
10.2k
      point_t pt2 = pt1;
695
10.2k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
10.2k
      point_t pt3 = pt2;
697
10.2k
      pt3.move_y (env.eval_arg (i+3));
698
10.2k
      i += 4;
699
700
12.3k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
2.10k
      {
702
2.10k
  PATH::curve (env, param, pt1, pt2, pt3);
703
2.10k
  pt1 = env.get_pt ();
704
2.10k
  pt1.move_y (env.eval_arg (i));
705
2.10k
  pt2 = pt1;
706
2.10k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
2.10k
  pt3 = pt2;
708
2.10k
  pt3.move_x (env.eval_arg (i+3));
709
2.10k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
2.10k
  pt1 = pt3;
712
2.10k
  pt1.move_x (env.eval_arg (i+4));
713
2.10k
  pt2 = pt1;
714
2.10k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
2.10k
  pt3 = pt2;
716
2.10k
  pt3.move_y (env.eval_arg (i+7));
717
2.10k
      }
718
10.2k
      if (i < env.argStack.get_count ())
719
9.73k
  pt3.move_x (env.eval_arg (i));
720
10.2k
      PATH::curve (env, param, pt1, pt2, pt3);
721
10.2k
    }
722
7.24k
    else
723
7.24k
    {
724
13.7k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
6.51k
      {
726
6.51k
  pt1 = env.get_pt ();
727
6.51k
  pt1.move_x (env.eval_arg (i));
728
6.51k
  pt2 = pt1;
729
6.51k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
6.51k
  pt3 = pt2;
731
6.51k
  pt3.move_y (env.eval_arg (i+3));
732
6.51k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
6.51k
  pt1 = pt3;
735
6.51k
  pt1.move_y (env.eval_arg (i+4));
736
6.51k
  pt2 = pt1;
737
6.51k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
6.51k
  pt3 = pt2;
739
6.51k
  pt3.move_x (env.eval_arg (i+7));
740
6.51k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
5.11k
    pt3.move_y (env.eval_arg (i+8));
742
6.51k
  PATH::curve (env, param, pt1, pt2, pt3);
743
6.51k
      }
744
7.24k
    }
745
17.4k
  }
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&)
Line
Count
Source
687
16.6k
  {
688
16.6k
    point_t pt1, pt2, pt3;
689
16.6k
    unsigned int i = 0;
690
16.6k
    if ((env.argStack.get_count () % 8) >= 4)
691
9.53k
    {
692
9.53k
      point_t pt1 = env.get_pt ();
693
9.53k
      pt1.move_x (env.eval_arg (i));
694
9.53k
      point_t pt2 = pt1;
695
9.53k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
9.53k
      point_t pt3 = pt2;
697
9.53k
      pt3.move_y (env.eval_arg (i+3));
698
9.53k
      i += 4;
699
700
11.5k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
2.06k
      {
702
2.06k
  PATH::curve (env, param, pt1, pt2, pt3);
703
2.06k
  pt1 = env.get_pt ();
704
2.06k
  pt1.move_y (env.eval_arg (i));
705
2.06k
  pt2 = pt1;
706
2.06k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
2.06k
  pt3 = pt2;
708
2.06k
  pt3.move_x (env.eval_arg (i+3));
709
2.06k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
2.06k
  pt1 = pt3;
712
2.06k
  pt1.move_x (env.eval_arg (i+4));
713
2.06k
  pt2 = pt1;
714
2.06k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
2.06k
  pt3 = pt2;
716
2.06k
  pt3.move_y (env.eval_arg (i+7));
717
2.06k
      }
718
9.53k
      if (i < env.argStack.get_count ())
719
9.03k
  pt3.move_x (env.eval_arg (i));
720
9.53k
      PATH::curve (env, param, pt1, pt2, pt3);
721
9.53k
    }
722
7.15k
    else
723
7.15k
    {
724
13.5k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
6.42k
      {
726
6.42k
  pt1 = env.get_pt ();
727
6.42k
  pt1.move_x (env.eval_arg (i));
728
6.42k
  pt2 = pt1;
729
6.42k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
6.42k
  pt3 = pt2;
731
6.42k
  pt3.move_y (env.eval_arg (i+3));
732
6.42k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
6.42k
  pt1 = pt3;
735
6.42k
  pt1.move_y (env.eval_arg (i+4));
736
6.42k
  pt2 = pt1;
737
6.42k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
6.42k
  pt3 = pt2;
739
6.42k
  pt3.move_x (env.eval_arg (i+7));
740
6.42k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
5.10k
    pt3.move_y (env.eval_arg (i+8));
742
6.42k
  PATH::curve (env, param, pt1, pt2, pt3);
743
6.42k
      }
744
7.15k
    }
745
16.6k
  }
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&)
Line
Count
Source
687
4.94k
  {
688
4.94k
    point_t pt1, pt2, pt3;
689
4.94k
    unsigned int i = 0;
690
4.94k
    if ((env.argStack.get_count () % 8) >= 4)
691
3.36k
    {
692
3.36k
      point_t pt1 = env.get_pt ();
693
3.36k
      pt1.move_x (env.eval_arg (i));
694
3.36k
      point_t pt2 = pt1;
695
3.36k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
3.36k
      point_t pt3 = pt2;
697
3.36k
      pt3.move_y (env.eval_arg (i+3));
698
3.36k
      i += 4;
699
700
4.95k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
1.59k
      {
702
1.59k
  PATH::curve (env, param, pt1, pt2, pt3);
703
1.59k
  pt1 = env.get_pt ();
704
1.59k
  pt1.move_y (env.eval_arg (i));
705
1.59k
  pt2 = pt1;
706
1.59k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
1.59k
  pt3 = pt2;
708
1.59k
  pt3.move_x (env.eval_arg (i+3));
709
1.59k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
1.59k
  pt1 = pt3;
712
1.59k
  pt1.move_x (env.eval_arg (i+4));
713
1.59k
  pt2 = pt1;
714
1.59k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
1.59k
  pt3 = pt2;
716
1.59k
  pt3.move_y (env.eval_arg (i+7));
717
1.59k
      }
718
3.36k
      if (i < env.argStack.get_count ())
719
2.66k
  pt3.move_x (env.eval_arg (i));
720
3.36k
      PATH::curve (env, param, pt1, pt2, pt3);
721
3.36k
    }
722
1.57k
    else
723
1.57k
    {
724
4.73k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
3.15k
      {
726
3.15k
  pt1 = env.get_pt ();
727
3.15k
  pt1.move_x (env.eval_arg (i));
728
3.15k
  pt2 = pt1;
729
3.15k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
3.15k
  pt3 = pt2;
731
3.15k
  pt3.move_y (env.eval_arg (i+3));
732
3.15k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
3.15k
  pt1 = pt3;
735
3.15k
  pt1.move_y (env.eval_arg (i+4));
736
3.15k
  pt2 = pt1;
737
3.15k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
3.15k
  pt3 = pt2;
739
3.15k
  pt3.move_x (env.eval_arg (i+7));
740
3.15k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
689
    pt3.move_y (env.eval_arg (i+8));
742
3.15k
  PATH::curve (env, param, pt1, pt2, pt3);
743
3.15k
      }
744
1.57k
    }
745
4.94k
  }
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&)
Line
Count
Source
687
47.1k
  {
688
47.1k
    point_t pt1, pt2, pt3;
689
47.1k
    unsigned int i = 0;
690
47.1k
    if ((env.argStack.get_count () % 8) >= 4)
691
43.2k
    {
692
43.2k
      point_t pt1 = env.get_pt ();
693
43.2k
      pt1.move_x (env.eval_arg (i));
694
43.2k
      point_t pt2 = pt1;
695
43.2k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
43.2k
      point_t pt3 = pt2;
697
43.2k
      pt3.move_y (env.eval_arg (i+3));
698
43.2k
      i += 4;
699
700
44.6k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
1.37k
      {
702
1.37k
  PATH::curve (env, param, pt1, pt2, pt3);
703
1.37k
  pt1 = env.get_pt ();
704
1.37k
  pt1.move_y (env.eval_arg (i));
705
1.37k
  pt2 = pt1;
706
1.37k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
1.37k
  pt3 = pt2;
708
1.37k
  pt3.move_x (env.eval_arg (i+3));
709
1.37k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
1.37k
  pt1 = pt3;
712
1.37k
  pt1.move_x (env.eval_arg (i+4));
713
1.37k
  pt2 = pt1;
714
1.37k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
1.37k
  pt3 = pt2;
716
1.37k
  pt3.move_y (env.eval_arg (i+7));
717
1.37k
      }
718
43.2k
      if (i < env.argStack.get_count ())
719
36.9k
  pt3.move_x (env.eval_arg (i));
720
43.2k
      PATH::curve (env, param, pt1, pt2, pt3);
721
43.2k
    }
722
3.90k
    else
723
3.90k
    {
724
8.67k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
4.77k
      {
726
4.77k
  pt1 = env.get_pt ();
727
4.77k
  pt1.move_x (env.eval_arg (i));
728
4.77k
  pt2 = pt1;
729
4.77k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
4.77k
  pt3 = pt2;
731
4.77k
  pt3.move_y (env.eval_arg (i+3));
732
4.77k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
4.77k
  pt1 = pt3;
735
4.77k
  pt1.move_y (env.eval_arg (i+4));
736
4.77k
  pt2 = pt1;
737
4.77k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
4.77k
  pt3 = pt2;
739
4.77k
  pt3.move_x (env.eval_arg (i+7));
740
4.77k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
2.65k
    pt3.move_y (env.eval_arg (i+8));
742
4.77k
  PATH::curve (env, param, pt1, pt2, pt3);
743
4.77k
      }
744
3.90k
    }
745
47.1k
  }
746
747
  /* default actions to be overridden */
748
  static void moveto (ENV &env, PARAM& param, const point_t &pt)
749
  { env.moveto (pt); }
750
751
  static void line (ENV &env, PARAM& param, const point_t &pt1)
752
  { PATH::moveto (env, param, pt1); }
753
754
  static void curve (ENV &env, PARAM& param, const point_t &pt1, const point_t &pt2, const point_t &pt3)
755
  { PATH::moveto (env, param, pt3); }
756
757
  static void hflex (ENV &env, PARAM& param)
758
19
  {
759
19
    if (likely (env.argStack.get_count () == 7))
760
2
    {
761
2
      point_t pt1 = env.get_pt ();
762
2
      pt1.move_x (env.eval_arg (0));
763
2
      point_t pt2 = pt1;
764
2
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
2
      point_t pt3 = pt2;
766
2
      pt3.move_x (env.eval_arg (3));
767
2
      point_t pt4 = pt3;
768
2
      pt4.move_x (env.eval_arg (4));
769
2
      point_t pt5 = pt4;
770
2
      pt5.move_x (env.eval_arg (5));
771
2
      pt5.y = pt1.y;
772
2
      point_t pt6 = pt5;
773
2
      pt6.move_x (env.eval_arg (6));
774
775
2
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
2
    }
777
17
    else
778
17
      env.set_error ();
779
19
  }
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&)
Line
Count
Source
758
6
  {
759
6
    if (likely (env.argStack.get_count () == 7))
760
1
    {
761
1
      point_t pt1 = env.get_pt ();
762
1
      pt1.move_x (env.eval_arg (0));
763
1
      point_t pt2 = pt1;
764
1
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
1
      point_t pt3 = pt2;
766
1
      pt3.move_x (env.eval_arg (3));
767
1
      point_t pt4 = pt3;
768
1
      pt4.move_x (env.eval_arg (4));
769
1
      point_t pt5 = pt4;
770
1
      pt5.move_x (env.eval_arg (5));
771
1
      pt5.y = pt1.y;
772
1
      point_t pt6 = pt5;
773
1
      pt6.move_x (env.eval_arg (6));
774
775
1
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
1
    }
777
5
    else
778
5
      env.set_error ();
779
6
  }
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&)
Line
Count
Source
758
6
  {
759
6
    if (likely (env.argStack.get_count () == 7))
760
1
    {
761
1
      point_t pt1 = env.get_pt ();
762
1
      pt1.move_x (env.eval_arg (0));
763
1
      point_t pt2 = pt1;
764
1
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
1
      point_t pt3 = pt2;
766
1
      pt3.move_x (env.eval_arg (3));
767
1
      point_t pt4 = pt3;
768
1
      pt4.move_x (env.eval_arg (4));
769
1
      point_t pt5 = pt4;
770
1
      pt5.move_x (env.eval_arg (5));
771
1
      pt5.y = pt1.y;
772
1
      point_t pt6 = pt5;
773
1
      pt6.move_x (env.eval_arg (6));
774
775
1
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
1
    }
777
5
    else
778
5
      env.set_error ();
779
6
  }
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&)
Line
Count
Source
758
4
  {
759
4
    if (likely (env.argStack.get_count () == 7))
760
0
    {
761
0
      point_t pt1 = env.get_pt ();
762
0
      pt1.move_x (env.eval_arg (0));
763
0
      point_t pt2 = pt1;
764
0
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
0
      point_t pt3 = pt2;
766
0
      pt3.move_x (env.eval_arg (3));
767
0
      point_t pt4 = pt3;
768
0
      pt4.move_x (env.eval_arg (4));
769
0
      point_t pt5 = pt4;
770
0
      pt5.move_x (env.eval_arg (5));
771
0
      pt5.y = pt1.y;
772
0
      point_t pt6 = pt5;
773
0
      pt6.move_x (env.eval_arg (6));
774
775
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
0
    }
777
4
    else
778
4
      env.set_error ();
779
4
  }
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&)
Line
Count
Source
758
3
  {
759
3
    if (likely (env.argStack.get_count () == 7))
760
0
    {
761
0
      point_t pt1 = env.get_pt ();
762
0
      pt1.move_x (env.eval_arg (0));
763
0
      point_t pt2 = pt1;
764
0
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
0
      point_t pt3 = pt2;
766
0
      pt3.move_x (env.eval_arg (3));
767
0
      point_t pt4 = pt3;
768
0
      pt4.move_x (env.eval_arg (4));
769
0
      point_t pt5 = pt4;
770
0
      pt5.move_x (env.eval_arg (5));
771
0
      pt5.y = pt1.y;
772
0
      point_t pt6 = pt5;
773
0
      pt6.move_x (env.eval_arg (6));
774
775
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
0
    }
777
3
    else
778
3
      env.set_error ();
779
3
  }
780
781
  static void flex (ENV &env, PARAM& param)
782
29
  {
783
29
    if (likely (env.argStack.get_count () == 13))
784
0
    {
785
0
      point_t pt1 = env.get_pt ();
786
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
0
      point_t pt2 = pt1;
788
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
0
      point_t pt3 = pt2;
790
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
0
      point_t pt4 = pt3;
792
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
0
      point_t pt5 = pt4;
794
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
0
      point_t pt6 = pt5;
796
0
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
0
    }
800
29
    else
801
29
      env.set_error ();
802
29
  }
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&)
Line
Count
Source
782
11
  {
783
11
    if (likely (env.argStack.get_count () == 13))
784
0
    {
785
0
      point_t pt1 = env.get_pt ();
786
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
0
      point_t pt2 = pt1;
788
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
0
      point_t pt3 = pt2;
790
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
0
      point_t pt4 = pt3;
792
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
0
      point_t pt5 = pt4;
794
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
0
      point_t pt6 = pt5;
796
0
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
0
    }
800
11
    else
801
11
      env.set_error ();
802
11
  }
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&)
Line
Count
Source
782
9
  {
783
9
    if (likely (env.argStack.get_count () == 13))
784
0
    {
785
0
      point_t pt1 = env.get_pt ();
786
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
0
      point_t pt2 = pt1;
788
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
0
      point_t pt3 = pt2;
790
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
0
      point_t pt4 = pt3;
792
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
0
      point_t pt5 = pt4;
794
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
0
      point_t pt6 = pt5;
796
0
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
0
    }
800
9
    else
801
9
      env.set_error ();
802
9
  }
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&)
Line
Count
Source
782
6
  {
783
6
    if (likely (env.argStack.get_count () == 13))
784
0
    {
785
0
      point_t pt1 = env.get_pt ();
786
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
0
      point_t pt2 = pt1;
788
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
0
      point_t pt3 = pt2;
790
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
0
      point_t pt4 = pt3;
792
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
0
      point_t pt5 = pt4;
794
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
0
      point_t pt6 = pt5;
796
0
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
0
    }
800
6
    else
801
6
      env.set_error ();
802
6
  }
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&)
Line
Count
Source
782
3
  {
783
3
    if (likely (env.argStack.get_count () == 13))
784
0
    {
785
0
      point_t pt1 = env.get_pt ();
786
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
0
      point_t pt2 = pt1;
788
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
0
      point_t pt3 = pt2;
790
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
0
      point_t pt4 = pt3;
792
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
0
      point_t pt5 = pt4;
794
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
0
      point_t pt6 = pt5;
796
0
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
0
    }
800
3
    else
801
3
      env.set_error ();
802
3
  }
803
804
  static void hflex1 (ENV &env, PARAM& param)
805
39
  {
806
39
    if (likely (env.argStack.get_count () == 9))
807
4
    {
808
4
      point_t pt1 = env.get_pt ();
809
4
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
4
      point_t pt2 = pt1;
811
4
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
4
      point_t pt3 = pt2;
813
4
      pt3.move_x (env.eval_arg (4));
814
4
      point_t pt4 = pt3;
815
4
      pt4.move_x (env.eval_arg (5));
816
4
      point_t pt5 = pt4;
817
4
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
4
      point_t pt6 = pt5;
819
4
      pt6.move_x (env.eval_arg (8));
820
4
      pt6.y = env.get_pt ().y;
821
822
4
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
4
    }
824
35
    else
825
35
      env.set_error ();
826
39
  }
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&)
Line
Count
Source
805
12
  {
806
12
    if (likely (env.argStack.get_count () == 9))
807
2
    {
808
2
      point_t pt1 = env.get_pt ();
809
2
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
2
      point_t pt2 = pt1;
811
2
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
2
      point_t pt3 = pt2;
813
2
      pt3.move_x (env.eval_arg (4));
814
2
      point_t pt4 = pt3;
815
2
      pt4.move_x (env.eval_arg (5));
816
2
      point_t pt5 = pt4;
817
2
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
2
      point_t pt6 = pt5;
819
2
      pt6.move_x (env.eval_arg (8));
820
2
      pt6.y = env.get_pt ().y;
821
822
2
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
2
    }
824
10
    else
825
10
      env.set_error ();
826
12
  }
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&)
Line
Count
Source
805
11
  {
806
11
    if (likely (env.argStack.get_count () == 9))
807
2
    {
808
2
      point_t pt1 = env.get_pt ();
809
2
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
2
      point_t pt2 = pt1;
811
2
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
2
      point_t pt3 = pt2;
813
2
      pt3.move_x (env.eval_arg (4));
814
2
      point_t pt4 = pt3;
815
2
      pt4.move_x (env.eval_arg (5));
816
2
      point_t pt5 = pt4;
817
2
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
2
      point_t pt6 = pt5;
819
2
      pt6.move_x (env.eval_arg (8));
820
2
      pt6.y = env.get_pt ().y;
821
822
2
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
2
    }
824
9
    else
825
9
      env.set_error ();
826
11
  }
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&)
Line
Count
Source
805
8
  {
806
8
    if (likely (env.argStack.get_count () == 9))
807
0
    {
808
0
      point_t pt1 = env.get_pt ();
809
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
0
      point_t pt2 = pt1;
811
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
0
      point_t pt3 = pt2;
813
0
      pt3.move_x (env.eval_arg (4));
814
0
      point_t pt4 = pt3;
815
0
      pt4.move_x (env.eval_arg (5));
816
0
      point_t pt5 = pt4;
817
0
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
0
      point_t pt6 = pt5;
819
0
      pt6.move_x (env.eval_arg (8));
820
0
      pt6.y = env.get_pt ().y;
821
822
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
0
    }
824
8
    else
825
8
      env.set_error ();
826
8
  }
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&)
Line
Count
Source
805
8
  {
806
8
    if (likely (env.argStack.get_count () == 9))
807
0
    {
808
0
      point_t pt1 = env.get_pt ();
809
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
0
      point_t pt2 = pt1;
811
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
0
      point_t pt3 = pt2;
813
0
      pt3.move_x (env.eval_arg (4));
814
0
      point_t pt4 = pt3;
815
0
      pt4.move_x (env.eval_arg (5));
816
0
      point_t pt5 = pt4;
817
0
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
0
      point_t pt6 = pt5;
819
0
      pt6.move_x (env.eval_arg (8));
820
0
      pt6.y = env.get_pt ().y;
821
822
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
0
    }
824
8
    else
825
8
      env.set_error ();
826
8
  }
827
828
  static void flex1 (ENV &env, PARAM& param)
829
16
  {
830
16
    if (likely (env.argStack.get_count () == 11))
831
2
    {
832
2
      point_t d;
833
12
      for (unsigned int i = 0; i < 10; i += 2)
834
10
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
2
      point_t pt1 = env.get_pt ();
837
2
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
2
      point_t pt2 = pt1;
839
2
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
2
      point_t pt3 = pt2;
841
2
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
2
      point_t pt4 = pt3;
843
2
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
2
      point_t pt5 = pt4;
845
2
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
2
      point_t pt6 = pt5;
847
848
2
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
2
      {
850
2
  pt6.move_x (env.eval_arg (10));
851
2
  pt6.y = env.get_pt ().y;
852
2
      }
853
0
      else
854
0
      {
855
0
  pt6.x = env.get_pt ().x;
856
0
  pt6.move_y (env.eval_arg (10));
857
0
      }
858
859
2
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
2
    }
861
14
    else
862
14
      env.set_error ();
863
16
  }
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&)
Line
Count
Source
829
7
  {
830
7
    if (likely (env.argStack.get_count () == 11))
831
1
    {
832
1
      point_t d;
833
6
      for (unsigned int i = 0; i < 10; i += 2)
834
5
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
1
      point_t pt1 = env.get_pt ();
837
1
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
1
      point_t pt2 = pt1;
839
1
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
1
      point_t pt3 = pt2;
841
1
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
1
      point_t pt4 = pt3;
843
1
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
1
      point_t pt5 = pt4;
845
1
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
1
      point_t pt6 = pt5;
847
848
1
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
1
      {
850
1
  pt6.move_x (env.eval_arg (10));
851
1
  pt6.y = env.get_pt ().y;
852
1
      }
853
0
      else
854
0
      {
855
0
  pt6.x = env.get_pt ().x;
856
0
  pt6.move_y (env.eval_arg (10));
857
0
      }
858
859
1
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
1
    }
861
6
    else
862
6
      env.set_error ();
863
7
  }
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&)
Line
Count
Source
829
7
  {
830
7
    if (likely (env.argStack.get_count () == 11))
831
1
    {
832
1
      point_t d;
833
6
      for (unsigned int i = 0; i < 10; i += 2)
834
5
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
1
      point_t pt1 = env.get_pt ();
837
1
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
1
      point_t pt2 = pt1;
839
1
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
1
      point_t pt3 = pt2;
841
1
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
1
      point_t pt4 = pt3;
843
1
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
1
      point_t pt5 = pt4;
845
1
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
1
      point_t pt6 = pt5;
847
848
1
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
1
      {
850
1
  pt6.move_x (env.eval_arg (10));
851
1
  pt6.y = env.get_pt ().y;
852
1
      }
853
0
      else
854
0
      {
855
0
  pt6.x = env.get_pt ().x;
856
0
  pt6.move_y (env.eval_arg (10));
857
0
      }
858
859
1
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
1
    }
861
6
    else
862
6
      env.set_error ();
863
7
  }
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&)
Line
Count
Source
829
1
  {
830
1
    if (likely (env.argStack.get_count () == 11))
831
0
    {
832
0
      point_t d;
833
0
      for (unsigned int i = 0; i < 10; i += 2)
834
0
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
0
      point_t pt1 = env.get_pt ();
837
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
0
      point_t pt2 = pt1;
839
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
0
      point_t pt3 = pt2;
841
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
0
      point_t pt4 = pt3;
843
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
0
      point_t pt5 = pt4;
845
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
0
      point_t pt6 = pt5;
847
848
0
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
0
      {
850
0
  pt6.move_x (env.eval_arg (10));
851
0
  pt6.y = env.get_pt ().y;
852
0
      }
853
0
      else
854
0
      {
855
0
  pt6.x = env.get_pt ().x;
856
0
  pt6.move_y (env.eval_arg (10));
857
0
      }
858
859
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
0
    }
861
1
    else
862
1
      env.set_error ();
863
1
  }
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&)
Line
Count
Source
829
1
  {
830
1
    if (likely (env.argStack.get_count () == 11))
831
0
    {
832
0
      point_t d;
833
0
      for (unsigned int i = 0; i < 10; i += 2)
834
0
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
0
      point_t pt1 = env.get_pt ();
837
0
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
0
      point_t pt2 = pt1;
839
0
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
0
      point_t pt3 = pt2;
841
0
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
0
      point_t pt4 = pt3;
843
0
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
0
      point_t pt5 = pt4;
845
0
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
0
      point_t pt6 = pt5;
847
848
0
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
0
      {
850
0
  pt6.move_x (env.eval_arg (10));
851
0
  pt6.y = env.get_pt ().y;
852
0
      }
853
0
      else
854
0
      {
855
0
  pt6.x = env.get_pt ().x;
856
0
  pt6.move_y (env.eval_arg (10));
857
0
      }
858
859
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
0
    }
861
1
    else
862
1
      env.set_error ();
863
1
  }
864
865
  protected:
866
  static void curve2 (ENV &env, PARAM& param,
867
          const point_t &pt1, const point_t &pt2, const point_t &pt3,
868
          const point_t &pt4, const point_t &pt5, const point_t &pt6)
869
8
  {
870
8
    PATH::curve (env, param, pt1, pt2, pt3);
871
8
    PATH::curve (env, param, pt4, pt5, pt6);
872
8
  }
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&)
Line
Count
Source
869
4
  {
870
4
    PATH::curve (env, param, pt1, pt2, pt3);
871
4
    PATH::curve (env, param, pt4, pt5, pt6);
872
4
  }
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&)
Line
Count
Source
869
4
  {
870
4
    PATH::curve (env, param, pt1, pt2, pt3);
871
4
    PATH::curve (env, param, pt4, pt5, pt6);
872
4
  }
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&)
873
};
874
875
template <typename ENV, typename OPSET, typename PARAM>
876
struct cs_interpreter_t : interpreter_t<ENV>
877
{
878
72.8k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
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&)
Line
Count
Source
878
21.8k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
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&)
Line
Count
Source
878
12.1k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
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&)
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>&)
Line
Count
Source
878
7.87k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
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>&)
Line
Count
Source
878
31.0k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
879
880
  bool interpret (PARAM& param)
881
72.8k
  {
882
72.8k
    SUPER::env.set_endchar (false);
883
884
72.8k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
7.06M
    for (;;) {
886
7.06M
      if (unlikely (!--max_ops))
887
0
      {
888
0
  SUPER::env.set_error ();
889
0
  break;
890
0
      }
891
7.06M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
7.06M
      if (unlikely (SUPER::env.in_error ()))
893
26.1k
  return false;
894
7.03M
      if (SUPER::env.is_endchar ())
895
46.6k
  break;
896
7.03M
    }
897
898
46.6k
    return true;
899
72.8k
  }
CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_extents_t, cff1_extents_param_t>::interpret(cff1_extents_param_t&)
Line
Count
Source
881
21.8k
  {
882
21.8k
    SUPER::env.set_endchar (false);
883
884
21.8k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
1.32M
    for (;;) {
886
1.32M
      if (unlikely (!--max_ops))
887
0
      {
888
0
  SUPER::env.set_error ();
889
0
  break;
890
0
      }
891
1.32M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
1.32M
      if (unlikely (SUPER::env.in_error ()))
893
7.52k
  return false;
894
1.32M
      if (SUPER::env.is_endchar ())
895
14.2k
  break;
896
1.32M
    }
897
898
14.2k
    return true;
899
21.8k
  }
CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_path_t, cff1_path_param_t>::interpret(cff1_path_param_t&)
Line
Count
Source
881
12.1k
  {
882
12.1k
    SUPER::env.set_endchar (false);
883
884
12.1k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
1.04M
    for (;;) {
886
1.04M
      if (unlikely (!--max_ops))
887
0
      {
888
0
  SUPER::env.set_error ();
889
0
  break;
890
0
      }
891
1.04M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
1.04M
      if (unlikely (SUPER::env.in_error ()))
893
5.33k
  return false;
894
1.04M
      if (SUPER::env.is_endchar ())
895
6.80k
  break;
896
1.04M
    }
897
898
6.80k
    return true;
899
12.1k
  }
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&)
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&)
Line
Count
Source
881
7.87k
  {
882
7.87k
    SUPER::env.set_endchar (false);
883
884
7.87k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
1.53M
    for (;;) {
886
1.53M
      if (unlikely (!--max_ops))
887
0
      {
888
0
  SUPER::env.set_error ();
889
0
  break;
890
0
      }
891
1.53M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
1.53M
      if (unlikely (SUPER::env.in_error ()))
893
3.71k
  return false;
894
1.53M
      if (SUPER::env.is_endchar ())
895
4.16k
  break;
896
1.53M
    }
897
898
4.16k
    return true;
899
7.87k
  }
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&)
Line
Count
Source
881
31.0k
  {
882
31.0k
    SUPER::env.set_endchar (false);
883
884
31.0k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
3.14M
    for (;;) {
886
3.14M
      if (unlikely (!--max_ops))
887
0
      {
888
0
  SUPER::env.set_error ();
889
0
  break;
890
0
      }
891
3.14M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
3.14M
      if (unlikely (SUPER::env.in_error ()))
893
9.60k
  return false;
894
3.13M
      if (SUPER::env.is_endchar ())
895
21.4k
  break;
896
3.13M
    }
897
898
21.4k
    return true;
899
31.0k
  }
900
901
  private:
902
  typedef interpreter_t<ENV> SUPER;
903
};
904
905
} /* namespace CFF */
906
907
#endif /* HB_CFF_INTERP_CS_COMMON_HH */