Coverage Report

Created: 2025-11-16 06:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/harfbuzz/src/hb-cff-interp-cs-common.hh
Line
Count
Source
1
/*
2
 * Copyright © 2018 Adobe Inc.
3
 *
4
 *  This is part of HarfBuzz, a text shaping library.
5
 *
6
 * Permission is hereby granted, without written agreement and without
7
 * license or royalty fees, to use, copy, modify, and distribute this
8
 * software and its documentation for any purpose, provided that the
9
 * above copyright notice and the following two paragraphs appear in
10
 * all copies of this software.
11
 *
12
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14
 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15
 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16
 * DAMAGE.
17
 *
18
 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19
 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20
 * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
21
 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23
 *
24
 * Adobe Author(s): Michiharu Ariza
25
 */
26
#ifndef HB_CFF_INTERP_CS_COMMON_HH
27
#define HB_CFF_INTERP_CS_COMMON_HH
28
29
#include "hb.hh"
30
#include "hb-cff-interp-common.hh"
31
32
namespace CFF {
33
34
using namespace OT;
35
36
enum cs_type_t {
37
  CSType_CharString,
38
  CSType_GlobalSubr,
39
  CSType_LocalSubr
40
};
41
42
struct call_context_t
43
{
44
  void init (const byte_str_ref_t substr_=byte_str_ref_t (), cs_type_t type_=CSType_CharString, unsigned int subr_num_=0)
45
389k
  {
46
389k
    str_ref = substr_;
47
389k
    type = type_;
48
389k
    subr_num = subr_num_;
49
389k
  }
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
340k
  {
67
340k
    subrs = subrs_;
68
340k
    unsigned int  nSubrs = get_count ();
69
340k
    if (nSubrs < 1240)
70
326k
      bias = 107;
71
13.9k
    else if (nSubrs < 33900)
72
13.5k
      bias = 1131;
73
381
    else
74
381
      bias = 32768;
75
340k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::init(CFF::Subrs<OT::NumType<true, unsigned short, 2u> > const*)
Line
Count
Source
66
150k
  {
67
150k
    subrs = subrs_;
68
150k
    unsigned int  nSubrs = get_count ();
69
150k
    if (nSubrs < 1240)
70
137k
      bias = 107;
71
13.2k
    else if (nSubrs < 33900)
72
13.0k
      bias = 1131;
73
193
    else
74
193
      bias = 32768;
75
150k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::init(CFF::Subrs<OT::NumType<true, unsigned int, 4u> > const*)
Line
Count
Source
66
189k
  {
67
189k
    subrs = subrs_;
68
189k
    unsigned int  nSubrs = get_count ();
69
189k
    if (nSubrs < 1240)
70
189k
      bias = 107;
71
698
    else if (nSubrs < 33900)
72
510
      bias = 1131;
73
188
    else
74
188
      bias = 32768;
75
189k
  }
76
77
340k
  void fini () {}
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::fini()
Line
Count
Source
77
150k
  void fini () {}
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::fini()
Line
Count
Source
77
189k
  void fini () {}
78
79
582k
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::get_count() const
Line
Count
Source
79
243k
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::get_count() const
Line
Count
Source
79
339k
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
80
242k
  unsigned int get_bias () const  { return bias; }
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::get_bias() const
Line
Count
Source
80
93.4k
  unsigned int get_bias () const  { return bias; }
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::get_bias() const
Line
Count
Source
80
149k
  unsigned int get_bias () const  { return bias; }
81
82
  hb_ubytes_t operator [] (unsigned int index) const
83
219k
  {
84
219k
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
219k
    else
87
219k
      return (*subrs)[index];
88
219k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::operator[](unsigned int) const
Line
Count
Source
83
84.7k
  {
84
84.7k
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
84.7k
    else
87
84.7k
      return (*subrs)[index];
88
84.7k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::operator[](unsigned int) const
Line
Count
Source
83
134k
  {
84
134k
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
134k
    else
87
134k
      return (*subrs)[index];
88
134k
  }
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
3.63M
  {
99
3.63M
    x.set_int (_x);
100
3.63M
    y.set_int (_y);
101
3.63M
  }
102
103
2.71M
  void move_x (const number_t &dx) { x += dx; }
104
2.76M
  void move_y (const number_t &dy) { y += dy; }
105
1.79M
  void move (const number_t &dx, const number_t &dy) { move_x (dx); move_y (dy); }
106
36.4k
  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
170k
    interp_env_t<ARG> (str)
117
170k
  {
118
170k
    context.init (str, CSType_CharString);
119
170k
    seen_moveto = true;
120
170k
    seen_hintmask = false;
121
170k
    hstem_count = 0;
122
170k
    vstem_count = 0;
123
170k
    hintmask_size = 0;
124
170k
    pt.set_int (0, 0);
125
170k
    globalSubrs.init (globalSubrs_);
126
170k
    localSubrs.init (localSubrs_);
127
170k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > const*, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > const*)
Line
Count
Source
116
75.3k
    interp_env_t<ARG> (str)
117
75.3k
  {
118
75.3k
    context.init (str, CSType_CharString);
119
75.3k
    seen_moveto = true;
120
75.3k
    seen_hintmask = false;
121
75.3k
    hstem_count = 0;
122
75.3k
    vstem_count = 0;
123
75.3k
    hintmask_size = 0;
124
75.3k
    pt.set_int (0, 0);
125
75.3k
    globalSubrs.init (globalSubrs_);
126
75.3k
    localSubrs.init (localSubrs_);
127
75.3k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > const*, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > const*)
Line
Count
Source
116
94.9k
    interp_env_t<ARG> (str)
117
94.9k
  {
118
94.9k
    context.init (str, CSType_CharString);
119
94.9k
    seen_moveto = true;
120
94.9k
    seen_hintmask = false;
121
94.9k
    hstem_count = 0;
122
94.9k
    vstem_count = 0;
123
94.9k
    hintmask_size = 0;
124
94.9k
    pt.set_int (0, 0);
125
94.9k
    globalSubrs.init (globalSubrs_);
126
94.9k
    localSubrs.init (localSubrs_);
127
94.9k
  }
128
  ~cs_interp_env_t ()
129
170k
  {
130
170k
    globalSubrs.fini ();
131
170k
    localSubrs.fini ();
132
170k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::~cs_interp_env_t()
Line
Count
Source
129
75.3k
  {
130
75.3k
    globalSubrs.fini ();
131
75.3k
    localSubrs.fini ();
132
75.3k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::~cs_interp_env_t()
Line
Count
Source
129
94.9k
  {
130
94.9k
    globalSubrs.fini ();
131
94.9k
    localSubrs.fini ();
132
94.9k
  }
133
134
  bool in_error () const
135
6.32G
  {
136
6.32G
    return callStack.in_error () || SUPER::in_error ();
137
6.32G
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::in_error() const
Line
Count
Source
135
6.31G
  {
136
6.31G
    return callStack.in_error () || SUPER::in_error ();
137
6.31G
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::in_error() const
Line
Count
Source
135
8.27M
  {
136
8.27M
    return callStack.in_error () || SUPER::in_error ();
137
8.27M
  }
138
139
  bool pop_subr_num (const biased_subrs_t<SUBRS>& biasedSubrs, unsigned int &subr_num)
140
242k
  {
141
242k
    subr_num = 0;
142
242k
    int n = SUPER::argStack.pop_int ();
143
242k
    n += biasedSubrs.get_bias ();
144
242k
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
19.0k
      return false;
146
147
223k
    subr_num = (unsigned int)n;
148
223k
    return true;
149
242k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > > const&, unsigned int&)
Line
Count
Source
140
93.4k
  {
141
93.4k
    subr_num = 0;
142
93.4k
    int n = SUPER::argStack.pop_int ();
143
93.4k
    n += biasedSubrs.get_bias ();
144
93.4k
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
6.05k
      return false;
146
147
87.3k
    subr_num = (unsigned int)n;
148
87.3k
    return true;
149
93.4k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > > const&, unsigned int&)
Line
Count
Source
140
149k
  {
141
149k
    subr_num = 0;
142
149k
    int n = SUPER::argStack.pop_int ();
143
149k
    n += biasedSubrs.get_bias ();
144
149k
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
13.0k
      return false;
146
147
136k
    subr_num = (unsigned int)n;
148
136k
    return true;
149
149k
  }
150
151
  void call_subr (const biased_subrs_t<SUBRS>& biasedSubrs, cs_type_t type)
152
242k
  {
153
242k
    unsigned int subr_num = 0;
154
155
242k
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
242k
     || callStack.get_count () >= kMaxCallLimit))
157
23.8k
    {
158
23.8k
      SUPER::set_error ();
159
23.8k
      return;
160
23.8k
    }
161
219k
    context.str_ref = SUPER::str_ref;
162
219k
    callStack.push (context);
163
164
219k
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
219k
    SUPER::str_ref = context.str_ref;
166
219k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned short, 2u> > > const&, CFF::cs_type_t)
Line
Count
Source
152
93.4k
  {
153
93.4k
    unsigned int subr_num = 0;
154
155
93.4k
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
93.4k
     || callStack.get_count () >= kMaxCallLimit))
157
8.63k
    {
158
8.63k
      SUPER::set_error ();
159
8.63k
      return;
160
8.63k
    }
161
84.7k
    context.str_ref = SUPER::str_ref;
162
84.7k
    callStack.push (context);
163
164
84.7k
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
84.7k
    SUPER::str_ref = context.str_ref;
166
84.7k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::NumType<true, unsigned int, 4u> > > const&, CFF::cs_type_t)
Line
Count
Source
152
149k
  {
153
149k
    unsigned int subr_num = 0;
154
155
149k
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
149k
     || callStack.get_count () >= kMaxCallLimit))
157
15.2k
    {
158
15.2k
      SUPER::set_error ();
159
15.2k
      return;
160
15.2k
    }
161
134k
    context.str_ref = SUPER::str_ref;
162
134k
    callStack.push (context);
163
164
134k
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
134k
    SUPER::str_ref = context.str_ref;
166
134k
  }
167
168
  void return_from_subr ()
169
143k
  {
170
143k
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
143k
    context = callStack.pop ();
173
143k
    SUPER::str_ref = context.str_ref;
174
143k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::return_from_subr()
Line
Count
Source
169
33.6k
  {
170
33.6k
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
33.6k
    context = callStack.pop ();
173
33.6k
    SUPER::str_ref = context.str_ref;
174
33.6k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::return_from_subr()
Line
Count
Source
169
109k
  {
170
109k
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
109k
    context = callStack.pop ();
173
109k
    SUPER::str_ref = context.str_ref;
174
109k
  }
175
176
  void determine_hintmask_size ()
177
31.5k
  {
178
31.5k
    if (!seen_hintmask)
179
12.8k
    {
180
12.8k
      vstem_count += SUPER::argStack.get_count() / 2;
181
12.8k
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
12.8k
      seen_hintmask = true;
183
12.8k
    }
184
31.5k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::determine_hintmask_size()
Line
Count
Source
177
21.5k
  {
178
21.5k
    if (!seen_hintmask)
179
10.6k
    {
180
10.6k
      vstem_count += SUPER::argStack.get_count() / 2;
181
10.6k
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
10.6k
      seen_hintmask = true;
183
10.6k
    }
184
21.5k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::determine_hintmask_size()
Line
Count
Source
177
9.90k
  {
178
9.90k
    if (!seen_hintmask)
179
2.24k
    {
180
2.24k
      vstem_count += SUPER::argStack.get_count() / 2;
181
2.24k
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
2.24k
      seen_hintmask = true;
183
2.24k
    }
184
9.90k
  }
185
186
250k
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::set_endchar(bool)
Line
Count
Source
186
100k
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::set_endchar(bool)
Line
Count
Source
186
150k
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
187
6.32G
  bool is_endchar () const { return endchar_flag; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::is_endchar() const
Line
Count
Source
187
6.31G
  bool is_endchar () const { return endchar_flag; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::is_endchar() const
Line
Count
Source
187
8.23M
  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
2.23M
  const point_t &get_pt () const { return pt; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::get_pt() const
Line
Count
Source
191
516k
  const point_t &get_pt () const { return pt; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::get_pt() const
Line
Count
Source
191
1.72M
  const point_t &get_pt () const { return pt; }
192
193
1.66M
  void moveto (const point_t &pt_ ) { pt = pt_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned short, 2u> > >::moveto(CFF::point_t const&)
Line
Count
Source
193
362k
  void moveto (const point_t &pt_ ) { pt = pt_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::NumType<true, unsigned int, 4u> > >::moveto(CFF::point_t const&)
Line
Count
Source
193
1.30M
  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.32G
  {
244
6.32G
    switch (op) {
245
246
143k
      case OpCode_return:
247
143k
  env.return_from_subr ();
248
143k
  break;
249
55.4k
      case OpCode_endchar:
250
55.4k
  OPSET::check_width (op, env, param);
251
55.4k
  env.set_endchar (true);
252
55.4k
  OPSET::flush_args_and_op (op, env, param);
253
55.4k
  break;
254
255
234k
      case OpCode_fixedcs:
256
234k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
234k
  break;
258
259
120k
      case OpCode_callsubr:
260
120k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
120k
  break;
262
263
122k
      case OpCode_callgsubr:
264
122k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
122k
  break;
266
267
133k
      case OpCode_hstem:
268
152k
      case OpCode_hstemhm:
269
152k
  OPSET::check_width (op, env, param);
270
152k
  OPSET::process_hstem (op, env, param);
271
152k
  break;
272
56.0k
      case OpCode_vstem:
273
65.8k
      case OpCode_vstemhm:
274
65.8k
  OPSET::check_width (op, env, param);
275
65.8k
  OPSET::process_vstem (op, env, param);
276
65.8k
  break;
277
13.9k
      case OpCode_hintmask:
278
31.5k
      case OpCode_cntrmask:
279
31.5k
  OPSET::check_width (op, env, param);
280
31.5k
  OPSET::process_hintmask (op, env, param);
281
31.5k
  break;
282
105k
      case OpCode_rmoveto:
283
105k
  OPSET::check_width (op, env, param);
284
105k
  PATH::rmoveto (env, param);
285
105k
  OPSET::process_post_move (op, env, param);
286
105k
  break;
287
33.2k
      case OpCode_hmoveto:
288
33.2k
  OPSET::check_width (op, env, param);
289
33.2k
  PATH::hmoveto (env, param);
290
33.2k
  OPSET::process_post_move (op, env, param);
291
33.2k
  break;
292
42.7k
      case OpCode_vmoveto:
293
42.7k
  OPSET::check_width (op, env, param);
294
42.7k
  PATH::vmoveto (env, param);
295
42.7k
  OPSET::process_post_move (op, env, param);
296
42.7k
  break;
297
54.9k
      case OpCode_rlineto:
298
54.9k
  PATH::rlineto (env, param);
299
54.9k
  process_post_path (op, env, param);
300
54.9k
  break;
301
71.6k
      case OpCode_hlineto:
302
71.6k
  PATH::hlineto (env, param);
303
71.6k
  process_post_path (op, env, param);
304
71.6k
  break;
305
60.5k
      case OpCode_vlineto:
306
60.5k
  PATH::vlineto (env, param);
307
60.5k
  process_post_path (op, env, param);
308
60.5k
  break;
309
83.4k
      case OpCode_rrcurveto:
310
83.4k
  PATH::rrcurveto (env, param);
311
83.4k
  process_post_path (op, env, param);
312
83.4k
  break;
313
55.8k
      case OpCode_rcurveline:
314
55.8k
  PATH::rcurveline (env, param);
315
55.8k
  process_post_path (op, env, param);
316
55.8k
  break;
317
120k
      case OpCode_rlinecurve:
318
120k
  PATH::rlinecurve (env, param);
319
120k
  process_post_path (op, env, param);
320
120k
  break;
321
80.7k
      case OpCode_vvcurveto:
322
80.7k
  PATH::vvcurveto (env, param);
323
80.7k
  process_post_path (op, env, param);
324
80.7k
  break;
325
69.0k
      case OpCode_hhcurveto:
326
69.0k
  PATH::hhcurveto (env, param);
327
69.0k
  process_post_path (op, env, param);
328
69.0k
  break;
329
52.0k
      case OpCode_vhcurveto:
330
52.0k
  PATH::vhcurveto (env, param);
331
52.0k
  process_post_path (op, env, param);
332
52.0k
  break;
333
82.0k
      case OpCode_hvcurveto:
334
82.0k
  PATH::hvcurveto (env, param);
335
82.0k
  process_post_path (op, env, param);
336
82.0k
  break;
337
338
4.07k
      case OpCode_hflex:
339
4.07k
  PATH::hflex (env, param);
340
4.07k
  OPSET::process_post_flex (op, env, param);
341
4.07k
  break;
342
343
2.50k
      case OpCode_flex:
344
2.50k
  PATH::flex (env, param);
345
2.50k
  OPSET::process_post_flex (op, env, param);
346
2.50k
  break;
347
348
3.10k
      case OpCode_hflex1:
349
3.10k
  PATH::hflex1 (env, param);
350
3.10k
  OPSET::process_post_flex (op, env, param);
351
3.10k
  break;
352
353
4.58k
      case OpCode_flex1:
354
4.58k
  PATH::flex1 (env, param);
355
4.58k
  OPSET::process_post_flex (op, env, param);
356
4.58k
  break;
357
358
6.32G
      default:
359
6.32G
  SUPER::process_op (op, env);
360
6.32G
  break;
361
6.32G
    }
362
6.32G
  }
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
3.56G
  {
244
3.56G
    switch (op) {
245
246
19.8k
      case OpCode_return:
247
19.8k
  env.return_from_subr ();
248
19.8k
  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
36.7k
      case OpCode_fixedcs:
256
36.7k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
36.7k
  break;
258
259
51.6k
      case OpCode_callsubr:
260
51.6k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
51.6k
  break;
262
263
2.59k
      case OpCode_callgsubr:
264
2.59k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
2.59k
  break;
266
267
38.8k
      case OpCode_hstem:
268
46.2k
      case OpCode_hstemhm:
269
46.2k
  OPSET::check_width (op, env, param);
270
46.2k
  OPSET::process_hstem (op, env, param);
271
46.2k
  break;
272
12.0k
      case OpCode_vstem:
273
15.4k
      case OpCode_vstemhm:
274
15.4k
  OPSET::check_width (op, env, param);
275
15.4k
  OPSET::process_vstem (op, env, param);
276
15.4k
  break;
277
4.68k
      case OpCode_hintmask:
278
12.3k
      case OpCode_cntrmask:
279
12.3k
  OPSET::check_width (op, env, param);
280
12.3k
  OPSET::process_hintmask (op, env, param);
281
12.3k
  break;
282
25.3k
      case OpCode_rmoveto:
283
25.3k
  OPSET::check_width (op, env, param);
284
25.3k
  PATH::rmoveto (env, param);
285
25.3k
  OPSET::process_post_move (op, env, param);
286
25.3k
  break;
287
9.41k
      case OpCode_hmoveto:
288
9.41k
  OPSET::check_width (op, env, param);
289
9.41k
  PATH::hmoveto (env, param);
290
9.41k
  OPSET::process_post_move (op, env, param);
291
9.41k
  break;
292
12.3k
      case OpCode_vmoveto:
293
12.3k
  OPSET::check_width (op, env, param);
294
12.3k
  PATH::vmoveto (env, param);
295
12.3k
  OPSET::process_post_move (op, env, param);
296
12.3k
  break;
297
10.5k
      case OpCode_rlineto:
298
10.5k
  PATH::rlineto (env, param);
299
10.5k
  process_post_path (op, env, param);
300
10.5k
  break;
301
21.7k
      case OpCode_hlineto:
302
21.7k
  PATH::hlineto (env, param);
303
21.7k
  process_post_path (op, env, param);
304
21.7k
  break;
305
14.8k
      case OpCode_vlineto:
306
14.8k
  PATH::vlineto (env, param);
307
14.8k
  process_post_path (op, env, param);
308
14.8k
  break;
309
17.1k
      case OpCode_rrcurveto:
310
17.1k
  PATH::rrcurveto (env, param);
311
17.1k
  process_post_path (op, env, param);
312
17.1k
  break;
313
5.78k
      case OpCode_rcurveline:
314
5.78k
  PATH::rcurveline (env, param);
315
5.78k
  process_post_path (op, env, param);
316
5.78k
  break;
317
5.17k
      case OpCode_rlinecurve:
318
5.17k
  PATH::rlinecurve (env, param);
319
5.17k
  process_post_path (op, env, param);
320
5.17k
  break;
321
5.85k
      case OpCode_vvcurveto:
322
5.85k
  PATH::vvcurveto (env, param);
323
5.85k
  process_post_path (op, env, param);
324
5.85k
  break;
325
7.97k
      case OpCode_hhcurveto:
326
7.97k
  PATH::hhcurveto (env, param);
327
7.97k
  process_post_path (op, env, param);
328
7.97k
  break;
329
9.50k
      case OpCode_vhcurveto:
330
9.50k
  PATH::vhcurveto (env, param);
331
9.50k
  process_post_path (op, env, param);
332
9.50k
  break;
333
8.97k
      case OpCode_hvcurveto:
334
8.97k
  PATH::hvcurveto (env, param);
335
8.97k
  process_post_path (op, env, param);
336
8.97k
  break;
337
338
749
      case OpCode_hflex:
339
749
  PATH::hflex (env, param);
340
749
  OPSET::process_post_flex (op, env, param);
341
749
  break;
342
343
1.16k
      case OpCode_flex:
344
1.16k
  PATH::flex (env, param);
345
1.16k
  OPSET::process_post_flex (op, env, param);
346
1.16k
  break;
347
348
649
      case OpCode_hflex1:
349
649
  PATH::hflex1 (env, param);
350
649
  OPSET::process_post_flex (op, env, param);
351
649
  break;
352
353
1.04k
      case OpCode_flex1:
354
1.04k
  PATH::flex1 (env, param);
355
1.04k
  OPSET::process_post_flex (op, env, param);
356
1.04k
  break;
357
358
3.56G
      default:
359
3.56G
  SUPER::process_op (op, env);
360
3.56G
  break;
361
3.56G
    }
362
3.56G
  }
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
2.75G
  {
244
2.75G
    switch (op) {
245
246
13.7k
      case OpCode_return:
247
13.7k
  env.return_from_subr ();
248
13.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
27.1k
      case OpCode_fixedcs:
256
27.1k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
27.1k
  break;
258
259
37.5k
      case OpCode_callsubr:
260
37.5k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
37.5k
  break;
262
263
1.56k
      case OpCode_callgsubr:
264
1.56k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
1.56k
  break;
266
267
28.8k
      case OpCode_hstem:
268
34.4k
      case OpCode_hstemhm:
269
34.4k
  OPSET::check_width (op, env, param);
270
34.4k
  OPSET::process_hstem (op, env, param);
271
34.4k
  break;
272
8.96k
      case OpCode_vstem:
273
11.4k
      case OpCode_vstemhm:
274
11.4k
  OPSET::check_width (op, env, param);
275
11.4k
  OPSET::process_vstem (op, env, param);
276
11.4k
  break;
277
3.47k
      case OpCode_hintmask:
278
9.28k
      case OpCode_cntrmask:
279
9.28k
  OPSET::check_width (op, env, param);
280
9.28k
  OPSET::process_hintmask (op, env, param);
281
9.28k
  break;
282
18.1k
      case OpCode_rmoveto:
283
18.1k
  OPSET::check_width (op, env, param);
284
18.1k
  PATH::rmoveto (env, param);
285
18.1k
  OPSET::process_post_move (op, env, param);
286
18.1k
  break;
287
6.79k
      case OpCode_hmoveto:
288
6.79k
  OPSET::check_width (op, env, param);
289
6.79k
  PATH::hmoveto (env, param);
290
6.79k
  OPSET::process_post_move (op, env, param);
291
6.79k
  break;
292
8.83k
      case OpCode_vmoveto:
293
8.83k
  OPSET::check_width (op, env, param);
294
8.83k
  PATH::vmoveto (env, param);
295
8.83k
  OPSET::process_post_move (op, env, param);
296
8.83k
  break;
297
7.64k
      case OpCode_rlineto:
298
7.64k
  PATH::rlineto (env, param);
299
7.64k
  process_post_path (op, env, param);
300
7.64k
  break;
301
15.4k
      case OpCode_hlineto:
302
15.4k
  PATH::hlineto (env, param);
303
15.4k
  process_post_path (op, env, param);
304
15.4k
  break;
305
10.7k
      case OpCode_vlineto:
306
10.7k
  PATH::vlineto (env, param);
307
10.7k
  process_post_path (op, env, param);
308
10.7k
  break;
309
12.3k
      case OpCode_rrcurveto:
310
12.3k
  PATH::rrcurveto (env, param);
311
12.3k
  process_post_path (op, env, param);
312
12.3k
  break;
313
4.20k
      case OpCode_rcurveline:
314
4.20k
  PATH::rcurveline (env, param);
315
4.20k
  process_post_path (op, env, param);
316
4.20k
  break;
317
3.75k
      case OpCode_rlinecurve:
318
3.75k
  PATH::rlinecurve (env, param);
319
3.75k
  process_post_path (op, env, param);
320
3.75k
  break;
321
4.18k
      case OpCode_vvcurveto:
322
4.18k
  PATH::vvcurveto (env, param);
323
4.18k
  process_post_path (op, env, param);
324
4.18k
  break;
325
5.70k
      case OpCode_hhcurveto:
326
5.70k
  PATH::hhcurveto (env, param);
327
5.70k
  process_post_path (op, env, param);
328
5.70k
  break;
329
6.79k
      case OpCode_vhcurveto:
330
6.79k
  PATH::vhcurveto (env, param);
331
6.79k
  process_post_path (op, env, param);
332
6.79k
  break;
333
6.43k
      case OpCode_hvcurveto:
334
6.43k
  PATH::hvcurveto (env, param);
335
6.43k
  process_post_path (op, env, param);
336
6.43k
  break;
337
338
561
      case OpCode_hflex:
339
561
  PATH::hflex (env, param);
340
561
  OPSET::process_post_flex (op, env, param);
341
561
  break;
342
343
859
      case OpCode_flex:
344
859
  PATH::flex (env, param);
345
859
  OPSET::process_post_flex (op, env, param);
346
859
  break;
347
348
488
      case OpCode_hflex1:
349
488
  PATH::hflex1 (env, param);
350
488
  OPSET::process_post_flex (op, env, param);
351
488
  break;
352
353
786
      case OpCode_flex1:
354
786
  PATH::flex1 (env, param);
355
786
  OPSET::process_post_flex (op, env, param);
356
786
  break;
357
358
2.75G
      default:
359
2.75G
  SUPER::process_op (op, env);
360
2.75G
  break;
361
2.75G
    }
362
2.75G
  }
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
3.09M
  {
244
3.09M
    switch (op) {
245
246
59.0k
      case OpCode_return:
247
59.0k
  env.return_from_subr ();
248
59.0k
  break;
249
10.5k
      case OpCode_endchar:
250
10.5k
  OPSET::check_width (op, env, param);
251
10.5k
  env.set_endchar (true);
252
10.5k
  OPSET::flush_args_and_op (op, env, param);
253
10.5k
  break;
254
255
89.1k
      case OpCode_fixedcs:
256
89.1k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
89.1k
  break;
258
259
8.23k
      case OpCode_callsubr:
260
8.23k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
8.23k
  break;
262
263
67.5k
      case OpCode_callgsubr:
264
67.5k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
67.5k
  break;
266
267
24.8k
      case OpCode_hstem:
268
27.0k
      case OpCode_hstemhm:
269
27.0k
  OPSET::check_width (op, env, param);
270
27.0k
  OPSET::process_hstem (op, env, param);
271
27.0k
  break;
272
18.3k
      case OpCode_vstem:
273
20.5k
      case OpCode_vstemhm:
274
20.5k
  OPSET::check_width (op, env, param);
275
20.5k
  OPSET::process_vstem (op, env, param);
276
20.5k
  break;
277
2.48k
      case OpCode_hintmask:
278
4.75k
      case OpCode_cntrmask:
279
4.75k
  OPSET::check_width (op, env, param);
280
4.75k
  OPSET::process_hintmask (op, env, param);
281
4.75k
  break;
282
10.0k
      case OpCode_rmoveto:
283
10.0k
  OPSET::check_width (op, env, param);
284
10.0k
  PATH::rmoveto (env, param);
285
10.0k
  OPSET::process_post_move (op, env, param);
286
10.0k
  break;
287
9.44k
      case OpCode_hmoveto:
288
9.44k
  OPSET::check_width (op, env, param);
289
9.44k
  PATH::hmoveto (env, param);
290
9.44k
  OPSET::process_post_move (op, env, param);
291
9.44k
  break;
292
10.6k
      case OpCode_vmoveto:
293
10.6k
  OPSET::check_width (op, env, param);
294
10.6k
  PATH::vmoveto (env, param);
295
10.6k
  OPSET::process_post_move (op, env, param);
296
10.6k
  break;
297
12.1k
      case OpCode_rlineto:
298
12.1k
  PATH::rlineto (env, param);
299
12.1k
  process_post_path (op, env, param);
300
12.1k
  break;
301
13.0k
      case OpCode_hlineto:
302
13.0k
  PATH::hlineto (env, param);
303
13.0k
  process_post_path (op, env, param);
304
13.0k
  break;
305
14.7k
      case OpCode_vlineto:
306
14.7k
  PATH::vlineto (env, param);
307
14.7k
  process_post_path (op, env, param);
308
14.7k
  break;
309
6.45k
      case OpCode_rrcurveto:
310
6.45k
  PATH::rrcurveto (env, param);
311
6.45k
  process_post_path (op, env, param);
312
6.45k
  break;
313
17.1k
      case OpCode_rcurveline:
314
17.1k
  PATH::rcurveline (env, param);
315
17.1k
  process_post_path (op, env, param);
316
17.1k
  break;
317
48.8k
      case OpCode_rlinecurve:
318
48.8k
  PATH::rlinecurve (env, param);
319
48.8k
  process_post_path (op, env, param);
320
48.8k
  break;
321
33.0k
      case OpCode_vvcurveto:
322
33.0k
  PATH::vvcurveto (env, param);
323
33.0k
  process_post_path (op, env, param);
324
33.0k
  break;
325
14.2k
      case OpCode_hhcurveto:
326
14.2k
  PATH::hhcurveto (env, param);
327
14.2k
  process_post_path (op, env, param);
328
14.2k
  break;
329
7.64k
      case OpCode_vhcurveto:
330
7.64k
  PATH::vhcurveto (env, param);
331
7.64k
  process_post_path (op, env, param);
332
7.64k
  break;
333
22.2k
      case OpCode_hvcurveto:
334
22.2k
  PATH::hvcurveto (env, param);
335
22.2k
  process_post_path (op, env, param);
336
22.2k
  break;
337
338
1.25k
      case OpCode_hflex:
339
1.25k
  PATH::hflex (env, param);
340
1.25k
  OPSET::process_post_flex (op, env, param);
341
1.25k
  break;
342
343
261
      case OpCode_flex:
344
261
  PATH::flex (env, param);
345
261
  OPSET::process_post_flex (op, env, param);
346
261
  break;
347
348
998
      case OpCode_hflex1:
349
998
  PATH::hflex1 (env, param);
350
998
  OPSET::process_post_flex (op, env, param);
351
998
  break;
352
353
1.43k
      case OpCode_flex1:
354
1.43k
  PATH::flex1 (env, param);
355
1.43k
  OPSET::process_post_flex (op, env, param);
356
1.43k
  break;
357
358
2.58M
      default:
359
2.58M
  SUPER::process_op (op, env);
360
2.58M
  break;
361
3.09M
    }
362
3.09M
  }
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
5.15M
  {
244
5.15M
    switch (op) {
245
246
50.5k
      case OpCode_return:
247
50.5k
  env.return_from_subr ();
248
50.5k
  break;
249
44.9k
      case OpCode_endchar:
250
44.9k
  OPSET::check_width (op, env, param);
251
44.9k
  env.set_endchar (true);
252
44.9k
  OPSET::flush_args_and_op (op, env, param);
253
44.9k
  break;
254
255
81.5k
      case OpCode_fixedcs:
256
81.5k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
81.5k
  break;
258
259
22.9k
      case OpCode_callsubr:
260
22.9k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
22.9k
  break;
262
263
50.7k
      case OpCode_callgsubr:
264
50.7k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
50.7k
  break;
266
267
41.2k
      case OpCode_hstem:
268
44.5k
      case OpCode_hstemhm:
269
44.5k
  OPSET::check_width (op, env, param);
270
44.5k
  OPSET::process_hstem (op, env, param);
271
44.5k
  break;
272
16.6k
      case OpCode_vstem:
273
18.4k
      case OpCode_vstemhm:
274
18.4k
  OPSET::check_width (op, env, param);
275
18.4k
  OPSET::process_vstem (op, env, param);
276
18.4k
  break;
277
3.25k
      case OpCode_hintmask:
278
5.14k
      case OpCode_cntrmask:
279
5.14k
  OPSET::check_width (op, env, param);
280
5.14k
  OPSET::process_hintmask (op, env, param);
281
5.14k
  break;
282
52.1k
      case OpCode_rmoveto:
283
52.1k
  OPSET::check_width (op, env, param);
284
52.1k
  PATH::rmoveto (env, param);
285
52.1k
  OPSET::process_post_move (op, env, param);
286
52.1k
  break;
287
7.63k
      case OpCode_hmoveto:
288
7.63k
  OPSET::check_width (op, env, param);
289
7.63k
  PATH::hmoveto (env, param);
290
7.63k
  OPSET::process_post_move (op, env, param);
291
7.63k
  break;
292
10.8k
      case OpCode_vmoveto:
293
10.8k
  OPSET::check_width (op, env, param);
294
10.8k
  PATH::vmoveto (env, param);
295
10.8k
  OPSET::process_post_move (op, env, param);
296
10.8k
  break;
297
24.5k
      case OpCode_rlineto:
298
24.5k
  PATH::rlineto (env, param);
299
24.5k
  process_post_path (op, env, param);
300
24.5k
  break;
301
21.3k
      case OpCode_hlineto:
302
21.3k
  PATH::hlineto (env, param);
303
21.3k
  process_post_path (op, env, param);
304
21.3k
  break;
305
20.2k
      case OpCode_vlineto:
306
20.2k
  PATH::vlineto (env, param);
307
20.2k
  process_post_path (op, env, param);
308
20.2k
  break;
309
47.4k
      case OpCode_rrcurveto:
310
47.4k
  PATH::rrcurveto (env, param);
311
47.4k
  process_post_path (op, env, param);
312
47.4k
  break;
313
28.6k
      case OpCode_rcurveline:
314
28.6k
  PATH::rcurveline (env, param);
315
28.6k
  process_post_path (op, env, param);
316
28.6k
  break;
317
62.2k
      case OpCode_rlinecurve:
318
62.2k
  PATH::rlinecurve (env, param);
319
62.2k
  process_post_path (op, env, param);
320
62.2k
  break;
321
37.6k
      case OpCode_vvcurveto:
322
37.6k
  PATH::vvcurveto (env, param);
323
37.6k
  process_post_path (op, env, param);
324
37.6k
  break;
325
41.0k
      case OpCode_hhcurveto:
326
41.0k
  PATH::hhcurveto (env, param);
327
41.0k
  process_post_path (op, env, param);
328
41.0k
  break;
329
28.1k
      case OpCode_vhcurveto:
330
28.1k
  PATH::vhcurveto (env, param);
331
28.1k
  process_post_path (op, env, param);
332
28.1k
  break;
333
44.3k
      case OpCode_hvcurveto:
334
44.3k
  PATH::hvcurveto (env, param);
335
44.3k
  process_post_path (op, env, param);
336
44.3k
  break;
337
338
1.51k
      case OpCode_hflex:
339
1.51k
  PATH::hflex (env, param);
340
1.51k
  OPSET::process_post_flex (op, env, param);
341
1.51k
  break;
342
343
228
      case OpCode_flex:
344
228
  PATH::flex (env, param);
345
228
  OPSET::process_post_flex (op, env, param);
346
228
  break;
347
348
967
      case OpCode_hflex1:
349
967
  PATH::hflex1 (env, param);
350
967
  OPSET::process_post_flex (op, env, param);
351
967
  break;
352
353
1.32k
      case OpCode_flex1:
354
1.32k
  PATH::flex1 (env, param);
355
1.32k
  OPSET::process_post_flex (op, env, param);
356
1.32k
  break;
357
358
4.40M
      default:
359
4.40M
  SUPER::process_op (op, env);
360
4.40M
  break;
361
5.15M
    }
362
5.15M
  }
363
364
  static void process_hstem (op_code_t op, ENV &env, PARAM& param)
365
152k
  {
366
152k
    env.hstem_count += env.argStack.get_count () / 2;
367
152k
    OPSET::flush_args_and_op (op, env, param);
368
152k
  }
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
46.2k
  {
366
46.2k
    env.hstem_count += env.argStack.get_count () / 2;
367
46.2k
    OPSET::flush_args_and_op (op, env, param);
368
46.2k
  }
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
34.4k
  {
366
34.4k
    env.hstem_count += env.argStack.get_count () / 2;
367
34.4k
    OPSET::flush_args_and_op (op, env, param);
368
34.4k
  }
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
27.0k
  {
366
27.0k
    env.hstem_count += env.argStack.get_count () / 2;
367
27.0k
    OPSET::flush_args_and_op (op, env, param);
368
27.0k
  }
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
44.5k
  {
366
44.5k
    env.hstem_count += env.argStack.get_count () / 2;
367
44.5k
    OPSET::flush_args_and_op (op, env, param);
368
44.5k
  }
369
370
  static void process_vstem (op_code_t op, ENV &env, PARAM& param)
371
65.8k
  {
372
65.8k
    env.vstem_count += env.argStack.get_count () / 2;
373
65.8k
    OPSET::flush_args_and_op (op, env, param);
374
65.8k
  }
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
15.4k
  {
372
15.4k
    env.vstem_count += env.argStack.get_count () / 2;
373
15.4k
    OPSET::flush_args_and_op (op, env, param);
374
15.4k
  }
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
11.4k
  {
372
11.4k
    env.vstem_count += env.argStack.get_count () / 2;
373
11.4k
    OPSET::flush_args_and_op (op, env, param);
374
11.4k
  }
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
20.5k
  {
372
20.5k
    env.vstem_count += env.argStack.get_count () / 2;
373
20.5k
    OPSET::flush_args_and_op (op, env, param);
374
20.5k
  }
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
18.4k
  {
372
18.4k
    env.vstem_count += env.argStack.get_count () / 2;
373
18.4k
    OPSET::flush_args_and_op (op, env, param);
374
18.4k
  }
375
376
  static void process_hintmask (op_code_t op, ENV &env, PARAM& param)
377
31.5k
  {
378
31.5k
    env.determine_hintmask_size ();
379
31.5k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
30.1k
    {
381
30.1k
      OPSET::flush_hintmask (op, env, param);
382
30.1k
      env.str_ref.inc (env.hintmask_size);
383
30.1k
    }
384
31.5k
  }
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
12.3k
  {
378
12.3k
    env.determine_hintmask_size ();
379
12.3k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
11.9k
    {
381
11.9k
      OPSET::flush_hintmask (op, env, param);
382
11.9k
      env.str_ref.inc (env.hintmask_size);
383
11.9k
    }
384
12.3k
  }
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
9.28k
  {
378
9.28k
    env.determine_hintmask_size ();
379
9.28k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
8.98k
    {
381
8.98k
      OPSET::flush_hintmask (op, env, param);
382
8.98k
      env.str_ref.inc (env.hintmask_size);
383
8.98k
    }
384
9.28k
  }
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
4.75k
  {
378
4.75k
    env.determine_hintmask_size ();
379
4.75k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
4.36k
    {
381
4.36k
      OPSET::flush_hintmask (op, env, param);
382
4.36k
      env.str_ref.inc (env.hintmask_size);
383
4.36k
    }
384
4.75k
  }
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
5.14k
  {
378
5.14k
    env.determine_hintmask_size ();
379
5.14k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
4.89k
    {
381
4.89k
      OPSET::flush_hintmask (op, env, param);
382
4.89k
      env.str_ref.inc (env.hintmask_size);
383
4.89k
    }
384
5.14k
  }
385
386
  static void process_post_flex (op_code_t op, ENV &env, PARAM& param)
387
14.2k
  {
388
14.2k
    OPSET::flush_args_and_op (op, env, param);
389
14.2k
  }
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
3.60k
  {
388
3.60k
    OPSET::flush_args_and_op (op, env, param);
389
3.60k
  }
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
2.69k
  {
388
2.69k
    OPSET::flush_args_and_op (op, env, param);
389
2.69k
  }
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
3.94k
  {
388
3.94k
    OPSET::flush_args_and_op (op, env, param);
389
3.94k
  }
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
4.03k
  {
388
4.03k
    OPSET::flush_args_and_op (op, env, param);
389
4.03k
  }
390
391
  static void check_width (op_code_t op, ENV &env, PARAM& param)
392
276k
  {}
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
92.9k
  {}
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
183k
  {}
393
394
  static void process_post_move (op_code_t op, ENV &env, PARAM& param)
395
181k
  {
396
181k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
181k
    OPSET::flush_args_and_op (op, env, param);
402
181k
  }
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
47.1k
  {
396
47.1k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
47.1k
    OPSET::flush_args_and_op (op, env, param);
402
47.1k
  }
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
33.7k
  {
396
33.7k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
33.7k
    OPSET::flush_args_and_op (op, env, param);
402
33.7k
  }
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
30.1k
  {
396
30.1k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
30.1k
    OPSET::flush_args_and_op (op, env, param);
402
30.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
70.6k
  {
396
70.6k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
70.6k
    OPSET::flush_args_and_op (op, env, param);
402
70.6k
  }
403
404
  static void process_post_path (op_code_t op, ENV &env, PARAM& param)
405
730k
  {
406
730k
    OPSET::flush_args_and_op (op, env, param);
407
730k
  }
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
107k
  {
406
107k
    OPSET::flush_args_and_op (op, env, param);
407
107k
  }
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
77.2k
  {
406
77.2k
    OPSET::flush_args_and_op (op, env, param);
407
77.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_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
189k
  {
406
189k
    OPSET::flush_args_and_op (op, env, param);
407
189k
  }
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
355k
  {
406
355k
    OPSET::flush_args_and_op (op, env, param);
407
355k
  }
408
409
  static void flush_args_and_op (op_code_t op, ENV &env, PARAM& param)
410
1.25M
  {
411
1.25M
    OPSET::flush_args (env, param);
412
1.25M
    OPSET::flush_op (op, env, param);
413
1.25M
  }
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
248k
  {
411
248k
    OPSET::flush_args (env, param);
412
248k
    OPSET::flush_op (op, env, param);
413
248k
  }
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
179k
  {
411
179k
    OPSET::flush_args (env, param);
412
179k
    OPSET::flush_op (op, env, param);
413
179k
  }
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
286k
  {
411
286k
    OPSET::flush_args (env, param);
412
286k
    OPSET::flush_op (op, env, param);
413
286k
  }
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
543k
  {
411
543k
    OPSET::flush_args (env, param);
412
543k
    OPSET::flush_op (op, env, param);
413
543k
  }
414
415
  static void flush_args (ENV &env, PARAM& param)
416
1.25M
  {
417
1.25M
    env.pop_n_args (env.argStack.get_count ());
418
1.25M
  }
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
248k
  {
417
248k
    env.pop_n_args (env.argStack.get_count ());
418
248k
  }
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
179k
  {
417
179k
    env.pop_n_args (env.argStack.get_count ());
418
179k
  }
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
286k
  {
417
286k
    env.pop_n_args (env.argStack.get_count ());
418
286k
  }
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
543k
  {
417
543k
    env.pop_n_args (env.argStack.get_count ());
418
543k
  }
419
420
  static void flush_op (op_code_t op, ENV &env, PARAM& param)
421
1.25M
  {
422
1.25M
  }
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
248k
  {
422
248k
  }
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
179k
  {
422
179k
  }
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
286k
  {
422
286k
  }
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
543k
  {
422
543k
  }
423
424
  static void flush_hintmask (op_code_t op, ENV &env, PARAM& param)
425
30.1k
  {
426
30.1k
    OPSET::flush_args_and_op (op, env, param);
427
30.1k
  }
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
11.9k
  {
426
11.9k
    OPSET::flush_args_and_op (op, env, param);
427
11.9k
  }
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
8.98k
  {
426
8.98k
    OPSET::flush_args_and_op (op, env, param);
427
8.98k
  }
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
4.36k
  {
426
4.36k
    OPSET::flush_args_and_op (op, env, param);
427
4.36k
  }
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
4.89k
  {
426
4.89k
    OPSET::flush_args_and_op (op, env, param);
427
4.89k
  }
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
105k
  {
456
105k
    point_t pt1 = env.get_pt ();
457
105k
    const number_t &dy = env.pop_arg ();
458
105k
    const number_t &dx = env.pop_arg ();
459
105k
    pt1.move (dx, dy);
460
105k
    PATH::moveto (env, param, pt1);
461
105k
  }
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
25.3k
  {
456
25.3k
    point_t pt1 = env.get_pt ();
457
25.3k
    const number_t &dy = env.pop_arg ();
458
25.3k
    const number_t &dx = env.pop_arg ();
459
25.3k
    pt1.move (dx, dy);
460
25.3k
    PATH::moveto (env, param, pt1);
461
25.3k
  }
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
18.1k
  {
456
18.1k
    point_t pt1 = env.get_pt ();
457
18.1k
    const number_t &dy = env.pop_arg ();
458
18.1k
    const number_t &dx = env.pop_arg ();
459
18.1k
    pt1.move (dx, dy);
460
18.1k
    PATH::moveto (env, param, pt1);
461
18.1k
  }
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.0k
  {
456
10.0k
    point_t pt1 = env.get_pt ();
457
10.0k
    const number_t &dy = env.pop_arg ();
458
10.0k
    const number_t &dx = env.pop_arg ();
459
10.0k
    pt1.move (dx, dy);
460
10.0k
    PATH::moveto (env, param, pt1);
461
10.0k
  }
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
52.1k
  {
456
52.1k
    point_t pt1 = env.get_pt ();
457
52.1k
    const number_t &dy = env.pop_arg ();
458
52.1k
    const number_t &dx = env.pop_arg ();
459
52.1k
    pt1.move (dx, dy);
460
52.1k
    PATH::moveto (env, param, pt1);
461
52.1k
  }
462
463
  static void hmoveto (ENV &env, PARAM& param)
464
33.2k
  {
465
33.2k
    point_t pt1 = env.get_pt ();
466
33.2k
    pt1.move_x (env.pop_arg ());
467
33.2k
    PATH::moveto (env, param, pt1);
468
33.2k
  }
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
9.41k
  {
465
9.41k
    point_t pt1 = env.get_pt ();
466
9.41k
    pt1.move_x (env.pop_arg ());
467
9.41k
    PATH::moveto (env, param, pt1);
468
9.41k
  }
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
6.79k
  {
465
6.79k
    point_t pt1 = env.get_pt ();
466
6.79k
    pt1.move_x (env.pop_arg ());
467
6.79k
    PATH::moveto (env, param, pt1);
468
6.79k
  }
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
9.44k
  {
465
9.44k
    point_t pt1 = env.get_pt ();
466
9.44k
    pt1.move_x (env.pop_arg ());
467
9.44k
    PATH::moveto (env, param, pt1);
468
9.44k
  }
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
7.63k
  {
465
7.63k
    point_t pt1 = env.get_pt ();
466
7.63k
    pt1.move_x (env.pop_arg ());
467
7.63k
    PATH::moveto (env, param, pt1);
468
7.63k
  }
469
470
  static void vmoveto (ENV &env, PARAM& param)
471
42.7k
  {
472
42.7k
    point_t pt1 = env.get_pt ();
473
42.7k
    pt1.move_y (env.pop_arg ());
474
42.7k
    PATH::moveto (env, param, pt1);
475
42.7k
  }
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
12.3k
  {
472
12.3k
    point_t pt1 = env.get_pt ();
473
12.3k
    pt1.move_y (env.pop_arg ());
474
12.3k
    PATH::moveto (env, param, pt1);
475
12.3k
  }
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
8.83k
  {
472
8.83k
    point_t pt1 = env.get_pt ();
473
8.83k
    pt1.move_y (env.pop_arg ());
474
8.83k
    PATH::moveto (env, param, pt1);
475
8.83k
  }
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
10.6k
  {
472
10.6k
    point_t pt1 = env.get_pt ();
473
10.6k
    pt1.move_y (env.pop_arg ());
474
10.6k
    PATH::moveto (env, param, pt1);
475
10.6k
  }
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
10.8k
  {
472
10.8k
    point_t pt1 = env.get_pt ();
473
10.8k
    pt1.move_y (env.pop_arg ());
474
10.8k
    PATH::moveto (env, param, pt1);
475
10.8k
  }
476
477
  static void rlineto (ENV &env, PARAM& param)
478
54.9k
  {
479
121k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
66.9k
    {
481
66.9k
      point_t pt1 = env.get_pt ();
482
66.9k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
66.9k
      PATH::line (env, param, pt1);
484
66.9k
    }
485
54.9k
  }
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
10.5k
  {
479
23.7k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
13.1k
    {
481
13.1k
      point_t pt1 = env.get_pt ();
482
13.1k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
13.1k
      PATH::line (env, param, pt1);
484
13.1k
    }
485
10.5k
  }
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.64k
  {
479
17.0k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
9.43k
    {
481
9.43k
      point_t pt1 = env.get_pt ();
482
9.43k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
9.43k
      PATH::line (env, param, pt1);
484
9.43k
    }
485
7.64k
  }
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
12.1k
  {
479
25.1k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
12.9k
    {
481
12.9k
      point_t pt1 = env.get_pt ();
482
12.9k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
12.9k
      PATH::line (env, param, pt1);
484
12.9k
    }
485
12.1k
  }
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
24.5k
  {
479
55.9k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
31.4k
    {
481
31.4k
      point_t pt1 = env.get_pt ();
482
31.4k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
31.4k
      PATH::line (env, param, pt1);
484
31.4k
    }
485
24.5k
  }
486
487
  static void hlineto (ENV &env, PARAM& param)
488
71.6k
  {
489
71.6k
    point_t pt1;
490
71.6k
    unsigned int i = 0;
491
124k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
52.4k
    {
493
52.4k
      pt1 = env.get_pt ();
494
52.4k
      pt1.move_x (env.eval_arg (i));
495
52.4k
      PATH::line (env, param, pt1);
496
52.4k
      pt1.move_y (env.eval_arg (i+1));
497
52.4k
      PATH::line (env, param, pt1);
498
52.4k
    }
499
71.6k
    if (i < env.argStack.get_count ())
500
42.2k
    {
501
42.2k
      pt1 = env.get_pt ();
502
42.2k
      pt1.move_x (env.eval_arg (i));
503
42.2k
      PATH::line (env, param, pt1);
504
42.2k
    }
505
71.6k
  }
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
21.7k
  {
489
21.7k
    point_t pt1;
490
21.7k
    unsigned int i = 0;
491
34.5k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
12.7k
    {
493
12.7k
      pt1 = env.get_pt ();
494
12.7k
      pt1.move_x (env.eval_arg (i));
495
12.7k
      PATH::line (env, param, pt1);
496
12.7k
      pt1.move_y (env.eval_arg (i+1));
497
12.7k
      PATH::line (env, param, pt1);
498
12.7k
    }
499
21.7k
    if (i < env.argStack.get_count ())
500
11.9k
    {
501
11.9k
      pt1 = env.get_pt ();
502
11.9k
      pt1.move_x (env.eval_arg (i));
503
11.9k
      PATH::line (env, param, pt1);
504
11.9k
    }
505
21.7k
  }
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
15.4k
  {
489
15.4k
    point_t pt1;
490
15.4k
    unsigned int i = 0;
491
24.2k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
8.78k
    {
493
8.78k
      pt1 = env.get_pt ();
494
8.78k
      pt1.move_x (env.eval_arg (i));
495
8.78k
      PATH::line (env, param, pt1);
496
8.78k
      pt1.move_y (env.eval_arg (i+1));
497
8.78k
      PATH::line (env, param, pt1);
498
8.78k
    }
499
15.4k
    if (i < env.argStack.get_count ())
500
8.23k
    {
501
8.23k
      pt1 = env.get_pt ();
502
8.23k
      pt1.move_x (env.eval_arg (i));
503
8.23k
      PATH::line (env, param, pt1);
504
8.23k
    }
505
15.4k
  }
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
13.0k
  {
489
13.0k
    point_t pt1;
490
13.0k
    unsigned int i = 0;
491
27.2k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
14.2k
    {
493
14.2k
      pt1 = env.get_pt ();
494
14.2k
      pt1.move_x (env.eval_arg (i));
495
14.2k
      PATH::line (env, param, pt1);
496
14.2k
      pt1.move_y (env.eval_arg (i+1));
497
14.2k
      PATH::line (env, param, pt1);
498
14.2k
    }
499
13.0k
    if (i < env.argStack.get_count ())
500
7.39k
    {
501
7.39k
      pt1 = env.get_pt ();
502
7.39k
      pt1.move_x (env.eval_arg (i));
503
7.39k
      PATH::line (env, param, pt1);
504
7.39k
    }
505
13.0k
  }
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
21.3k
  {
489
21.3k
    point_t pt1;
490
21.3k
    unsigned int i = 0;
491
38.1k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
16.7k
    {
493
16.7k
      pt1 = env.get_pt ();
494
16.7k
      pt1.move_x (env.eval_arg (i));
495
16.7k
      PATH::line (env, param, pt1);
496
16.7k
      pt1.move_y (env.eval_arg (i+1));
497
16.7k
      PATH::line (env, param, pt1);
498
16.7k
    }
499
21.3k
    if (i < env.argStack.get_count ())
500
14.6k
    {
501
14.6k
      pt1 = env.get_pt ();
502
14.6k
      pt1.move_x (env.eval_arg (i));
503
14.6k
      PATH::line (env, param, pt1);
504
14.6k
    }
505
21.3k
  }
506
507
  static void vlineto (ENV &env, PARAM& param)
508
60.5k
  {
509
60.5k
    point_t pt1;
510
60.5k
    unsigned int i = 0;
511
108k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
47.9k
    {
513
47.9k
      pt1 = env.get_pt ();
514
47.9k
      pt1.move_y (env.eval_arg (i));
515
47.9k
      PATH::line (env, param, pt1);
516
47.9k
      pt1.move_x (env.eval_arg (i+1));
517
47.9k
      PATH::line (env, param, pt1);
518
47.9k
    }
519
60.5k
    if (i < env.argStack.get_count ())
520
38.1k
    {
521
38.1k
      pt1 = env.get_pt ();
522
38.1k
      pt1.move_y (env.eval_arg (i));
523
38.1k
      PATH::line (env, param, pt1);
524
38.1k
    }
525
60.5k
  }
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
14.8k
  {
509
14.8k
    point_t pt1;
510
14.8k
    unsigned int i = 0;
511
28.6k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
13.7k
    {
513
13.7k
      pt1 = env.get_pt ();
514
13.7k
      pt1.move_y (env.eval_arg (i));
515
13.7k
      PATH::line (env, param, pt1);
516
13.7k
      pt1.move_x (env.eval_arg (i+1));
517
13.7k
      PATH::line (env, param, pt1);
518
13.7k
    }
519
14.8k
    if (i < env.argStack.get_count ())
520
9.70k
    {
521
9.70k
      pt1 = env.get_pt ();
522
9.70k
      pt1.move_y (env.eval_arg (i));
523
9.70k
      PATH::line (env, param, pt1);
524
9.70k
    }
525
14.8k
  }
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
10.7k
  {
509
10.7k
    point_t pt1;
510
10.7k
    unsigned int i = 0;
511
20.6k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
9.94k
    {
513
9.94k
      pt1 = env.get_pt ();
514
9.94k
      pt1.move_y (env.eval_arg (i));
515
9.94k
      PATH::line (env, param, pt1);
516
9.94k
      pt1.move_x (env.eval_arg (i+1));
517
9.94k
      PATH::line (env, param, pt1);
518
9.94k
    }
519
10.7k
    if (i < env.argStack.get_count ())
520
6.97k
    {
521
6.97k
      pt1 = env.get_pt ();
522
6.97k
      pt1.move_y (env.eval_arg (i));
523
6.97k
      PATH::line (env, param, pt1);
524
6.97k
    }
525
10.7k
  }
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
14.7k
  {
509
14.7k
    point_t pt1;
510
14.7k
    unsigned int i = 0;
511
25.1k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
10.4k
    {
513
10.4k
      pt1 = env.get_pt ();
514
10.4k
      pt1.move_y (env.eval_arg (i));
515
10.4k
      PATH::line (env, param, pt1);
516
10.4k
      pt1.move_x (env.eval_arg (i+1));
517
10.4k
      PATH::line (env, param, pt1);
518
10.4k
    }
519
14.7k
    if (i < env.argStack.get_count ())
520
7.19k
    {
521
7.19k
      pt1 = env.get_pt ();
522
7.19k
      pt1.move_y (env.eval_arg (i));
523
7.19k
      PATH::line (env, param, pt1);
524
7.19k
    }
525
14.7k
  }
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
20.2k
  {
509
20.2k
    point_t pt1;
510
20.2k
    unsigned int i = 0;
511
33.9k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
13.7k
    {
513
13.7k
      pt1 = env.get_pt ();
514
13.7k
      pt1.move_y (env.eval_arg (i));
515
13.7k
      PATH::line (env, param, pt1);
516
13.7k
      pt1.move_x (env.eval_arg (i+1));
517
13.7k
      PATH::line (env, param, pt1);
518
13.7k
    }
519
20.2k
    if (i < env.argStack.get_count ())
520
14.2k
    {
521
14.2k
      pt1 = env.get_pt ();
522
14.2k
      pt1.move_y (env.eval_arg (i));
523
14.2k
      PATH::line (env, param, pt1);
524
14.2k
    }
525
20.2k
  }
526
527
  static void rrcurveto (ENV &env, PARAM& param)
528
83.4k
  {
529
211k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
127k
    {
531
127k
      point_t pt1 = env.get_pt ();
532
127k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
127k
      point_t pt2 = pt1;
534
127k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
127k
      point_t pt3 = pt2;
536
127k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
127k
      PATH::curve (env, param, pt1, pt2, pt3);
538
127k
    }
539
83.4k
  }
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
17.1k
  {
529
30.7k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
13.6k
    {
531
13.6k
      point_t pt1 = env.get_pt ();
532
13.6k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
13.6k
      point_t pt2 = pt1;
534
13.6k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
13.6k
      point_t pt3 = pt2;
536
13.6k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
13.6k
      PATH::curve (env, param, pt1, pt2, pt3);
538
13.6k
    }
539
17.1k
  }
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
12.3k
  {
529
21.4k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
9.01k
    {
531
9.01k
      point_t pt1 = env.get_pt ();
532
9.01k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
9.01k
      point_t pt2 = pt1;
534
9.01k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
9.01k
      point_t pt3 = pt2;
536
9.01k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
9.01k
      PATH::curve (env, param, pt1, pt2, pt3);
538
9.01k
    }
539
12.3k
  }
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
6.45k
  {
529
11.5k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
5.05k
    {
531
5.05k
      point_t pt1 = env.get_pt ();
532
5.05k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
5.05k
      point_t pt2 = pt1;
534
5.05k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
5.05k
      point_t pt3 = pt2;
536
5.05k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
5.05k
      PATH::curve (env, param, pt1, pt2, pt3);
538
5.05k
    }
539
6.45k
  }
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.4k
  {
529
147k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
99.9k
    {
531
99.9k
      point_t pt1 = env.get_pt ();
532
99.9k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
99.9k
      point_t pt2 = pt1;
534
99.9k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
99.9k
      point_t pt3 = pt2;
536
99.9k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
99.9k
      PATH::curve (env, param, pt1, pt2, pt3);
538
99.9k
    }
539
47.4k
  }
540
541
  static void rcurveline (ENV &env, PARAM& param)
542
55.8k
  {
543
55.8k
    unsigned int arg_count = env.argStack.get_count ();
544
55.8k
    if (unlikely (arg_count < 8))
545
28.2k
      return;
546
547
27.5k
    unsigned int i = 0;
548
27.5k
    unsigned int curve_limit = arg_count - 2;
549
65.8k
    for (; i + 6 <= curve_limit; i += 6)
550
38.3k
    {
551
38.3k
      point_t pt1 = env.get_pt ();
552
38.3k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
38.3k
      point_t pt2 = pt1;
554
38.3k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
38.3k
      point_t pt3 = pt2;
556
38.3k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
38.3k
      PATH::curve (env, param, pt1, pt2, pt3);
558
38.3k
    }
559
560
27.5k
    point_t pt1 = env.get_pt ();
561
27.5k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
27.5k
    PATH::line (env, param, pt1);
563
27.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.78k
  {
543
5.78k
    unsigned int arg_count = env.argStack.get_count ();
544
5.78k
    if (unlikely (arg_count < 8))
545
2.91k
      return;
546
547
2.87k
    unsigned int i = 0;
548
2.87k
    unsigned int curve_limit = arg_count - 2;
549
6.72k
    for (; i + 6 <= curve_limit; i += 6)
550
3.84k
    {
551
3.84k
      point_t pt1 = env.get_pt ();
552
3.84k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
3.84k
      point_t pt2 = pt1;
554
3.84k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
3.84k
      point_t pt3 = pt2;
556
3.84k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
3.84k
      PATH::curve (env, param, pt1, pt2, pt3);
558
3.84k
    }
559
560
2.87k
    point_t pt1 = env.get_pt ();
561
2.87k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
2.87k
    PATH::line (env, param, pt1);
563
2.87k
  }
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.20k
  {
543
4.20k
    unsigned int arg_count = env.argStack.get_count ();
544
4.20k
    if (unlikely (arg_count < 8))
545
2.13k
      return;
546
547
2.06k
    unsigned int i = 0;
548
2.06k
    unsigned int curve_limit = arg_count - 2;
549
4.85k
    for (; i + 6 <= curve_limit; i += 6)
550
2.78k
    {
551
2.78k
      point_t pt1 = env.get_pt ();
552
2.78k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
2.78k
      point_t pt2 = pt1;
554
2.78k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
2.78k
      point_t pt3 = pt2;
556
2.78k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
2.78k
      PATH::curve (env, param, pt1, pt2, pt3);
558
2.78k
    }
559
560
2.06k
    point_t pt1 = env.get_pt ();
561
2.06k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
2.06k
    PATH::line (env, param, pt1);
563
2.06k
  }
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
17.1k
  {
543
17.1k
    unsigned int arg_count = env.argStack.get_count ();
544
17.1k
    if (unlikely (arg_count < 8))
545
13.1k
      return;
546
547
3.98k
    unsigned int i = 0;
548
3.98k
    unsigned int curve_limit = arg_count - 2;
549
10.4k
    for (; i + 6 <= curve_limit; i += 6)
550
6.43k
    {
551
6.43k
      point_t pt1 = env.get_pt ();
552
6.43k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
6.43k
      point_t pt2 = pt1;
554
6.43k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
6.43k
      point_t pt3 = pt2;
556
6.43k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
6.43k
      PATH::curve (env, param, pt1, pt2, pt3);
558
6.43k
    }
559
560
3.98k
    point_t pt1 = env.get_pt ();
561
3.98k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
3.98k
    PATH::line (env, param, pt1);
563
3.98k
  }
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
28.6k
  {
543
28.6k
    unsigned int arg_count = env.argStack.get_count ();
544
28.6k
    if (unlikely (arg_count < 8))
545
10.0k
      return;
546
547
18.6k
    unsigned int i = 0;
548
18.6k
    unsigned int curve_limit = arg_count - 2;
549
43.8k
    for (; i + 6 <= curve_limit; i += 6)
550
25.2k
    {
551
25.2k
      point_t pt1 = env.get_pt ();
552
25.2k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
25.2k
      point_t pt2 = pt1;
554
25.2k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
25.2k
      point_t pt3 = pt2;
556
25.2k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
25.2k
      PATH::curve (env, param, pt1, pt2, pt3);
558
25.2k
    }
559
560
18.6k
    point_t pt1 = env.get_pt ();
561
18.6k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
18.6k
    PATH::line (env, param, pt1);
563
18.6k
  }
564
565
  static void rlinecurve (ENV &env, PARAM& param)
566
120k
  {
567
120k
    unsigned int arg_count = env.argStack.get_count ();
568
120k
    if (unlikely (arg_count < 8))
569
61.9k
      return;
570
571
58.1k
    unsigned int i = 0;
572
58.1k
    unsigned int line_limit = arg_count - 6;
573
293k
    for (; i + 2 <= line_limit; i += 2)
574
235k
    {
575
235k
      point_t pt1 = env.get_pt ();
576
235k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
235k
      PATH::line (env, param, pt1);
578
235k
    }
579
580
58.1k
    point_t pt1 = env.get_pt ();
581
58.1k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
58.1k
    point_t pt2 = pt1;
583
58.1k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
58.1k
    point_t pt3 = pt2;
585
58.1k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
58.1k
    PATH::curve (env, param, pt1, pt2, pt3);
587
58.1k
  }
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.17k
  {
567
5.17k
    unsigned int arg_count = env.argStack.get_count ();
568
5.17k
    if (unlikely (arg_count < 8))
569
2.66k
      return;
570
571
2.51k
    unsigned int i = 0;
572
2.51k
    unsigned int line_limit = arg_count - 6;
573
14.6k
    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
2.51k
    point_t pt1 = env.get_pt ();
581
2.51k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
2.51k
    point_t pt2 = pt1;
583
2.51k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
2.51k
    point_t pt3 = pt2;
585
2.51k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
2.51k
    PATH::curve (env, param, pt1, pt2, pt3);
587
2.51k
  }
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
3.75k
  {
567
3.75k
    unsigned int arg_count = env.argStack.get_count ();
568
3.75k
    if (unlikely (arg_count < 8))
569
1.96k
      return;
570
571
1.78k
    unsigned int i = 0;
572
1.78k
    unsigned int line_limit = arg_count - 6;
573
9.77k
    for (; i + 2 <= line_limit; i += 2)
574
7.98k
    {
575
7.98k
      point_t pt1 = env.get_pt ();
576
7.98k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
7.98k
      PATH::line (env, param, pt1);
578
7.98k
    }
579
580
1.78k
    point_t pt1 = env.get_pt ();
581
1.78k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
1.78k
    point_t pt2 = pt1;
583
1.78k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
1.78k
    point_t pt3 = pt2;
585
1.78k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
1.78k
    PATH::curve (env, param, pt1, pt2, pt3);
587
1.78k
  }
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
48.8k
  {
567
48.8k
    unsigned int arg_count = env.argStack.get_count ();
568
48.8k
    if (unlikely (arg_count < 8))
569
31.9k
      return;
570
571
16.9k
    unsigned int i = 0;
572
16.9k
    unsigned int line_limit = arg_count - 6;
573
122k
    for (; i + 2 <= line_limit; i += 2)
574
105k
    {
575
105k
      point_t pt1 = env.get_pt ();
576
105k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
105k
      PATH::line (env, param, pt1);
578
105k
    }
579
580
16.9k
    point_t pt1 = env.get_pt ();
581
16.9k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
16.9k
    point_t pt2 = pt1;
583
16.9k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
16.9k
    point_t pt3 = pt2;
585
16.9k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
16.9k
    PATH::curve (env, param, pt1, pt2, pt3);
587
16.9k
  }
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
62.2k
  {
567
62.2k
    unsigned int arg_count = env.argStack.get_count ();
568
62.2k
    if (unlikely (arg_count < 8))
569
25.3k
      return;
570
571
36.8k
    unsigned int i = 0;
572
36.8k
    unsigned int line_limit = arg_count - 6;
573
146k
    for (; i + 2 <= line_limit; i += 2)
574
109k
    {
575
109k
      point_t pt1 = env.get_pt ();
576
109k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
109k
      PATH::line (env, param, pt1);
578
109k
    }
579
580
36.8k
    point_t pt1 = env.get_pt ();
581
36.8k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
36.8k
    point_t pt2 = pt1;
583
36.8k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
36.8k
    point_t pt3 = pt2;
585
36.8k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
36.8k
    PATH::curve (env, param, pt1, pt2, pt3);
587
36.8k
  }
588
589
  static void vvcurveto (ENV &env, PARAM& param)
590
80.7k
  {
591
80.7k
    unsigned int i = 0;
592
80.7k
    point_t pt1 = env.get_pt ();
593
80.7k
    if ((env.argStack.get_count () & 1) != 0)
594
44.1k
      pt1.move_x (env.eval_arg (i++));
595
180k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
100k
    {
597
100k
      pt1.move_y (env.eval_arg (i));
598
100k
      point_t pt2 = pt1;
599
100k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
100k
      point_t pt3 = pt2;
601
100k
      pt3.move_y (env.eval_arg (i+3));
602
100k
      PATH::curve (env, param, pt1, pt2, pt3);
603
100k
      pt1 = env.get_pt ();
604
100k
    }
605
80.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
5.85k
  {
591
5.85k
    unsigned int i = 0;
592
5.85k
    point_t pt1 = env.get_pt ();
593
5.85k
    if ((env.argStack.get_count () & 1) != 0)
594
1.92k
      pt1.move_x (env.eval_arg (i++));
595
8.59k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
2.74k
    {
597
2.74k
      pt1.move_y (env.eval_arg (i));
598
2.74k
      point_t pt2 = pt1;
599
2.74k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
2.74k
      point_t pt3 = pt2;
601
2.74k
      pt3.move_y (env.eval_arg (i+3));
602
2.74k
      PATH::curve (env, param, pt1, pt2, pt3);
603
2.74k
      pt1 = env.get_pt ();
604
2.74k
    }
605
5.85k
  }
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
4.18k
  {
591
4.18k
    unsigned int i = 0;
592
4.18k
    point_t pt1 = env.get_pt ();
593
4.18k
    if ((env.argStack.get_count () & 1) != 0)
594
1.32k
      pt1.move_x (env.eval_arg (i++));
595
6.12k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
1.93k
    {
597
1.93k
      pt1.move_y (env.eval_arg (i));
598
1.93k
      point_t pt2 = pt1;
599
1.93k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
1.93k
      point_t pt3 = pt2;
601
1.93k
      pt3.move_y (env.eval_arg (i+3));
602
1.93k
      PATH::curve (env, param, pt1, pt2, pt3);
603
1.93k
      pt1 = env.get_pt ();
604
1.93k
    }
605
4.18k
  }
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
33.0k
  {
591
33.0k
    unsigned int i = 0;
592
33.0k
    point_t pt1 = env.get_pt ();
593
33.0k
    if ((env.argStack.get_count () & 1) != 0)
594
16.7k
      pt1.move_x (env.eval_arg (i++));
595
80.5k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
47.4k
    {
597
47.4k
      pt1.move_y (env.eval_arg (i));
598
47.4k
      point_t pt2 = pt1;
599
47.4k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
47.4k
      point_t pt3 = pt2;
601
47.4k
      pt3.move_y (env.eval_arg (i+3));
602
47.4k
      PATH::curve (env, param, pt1, pt2, pt3);
603
47.4k
      pt1 = env.get_pt ();
604
47.4k
    }
605
33.0k
  }
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
37.6k
  {
591
37.6k
    unsigned int i = 0;
592
37.6k
    point_t pt1 = env.get_pt ();
593
37.6k
    if ((env.argStack.get_count () & 1) != 0)
594
24.2k
      pt1.move_x (env.eval_arg (i++));
595
85.7k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
48.1k
    {
597
48.1k
      pt1.move_y (env.eval_arg (i));
598
48.1k
      point_t pt2 = pt1;
599
48.1k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
48.1k
      point_t pt3 = pt2;
601
48.1k
      pt3.move_y (env.eval_arg (i+3));
602
48.1k
      PATH::curve (env, param, pt1, pt2, pt3);
603
48.1k
      pt1 = env.get_pt ();
604
48.1k
    }
605
37.6k
  }
606
607
  static void hhcurveto (ENV &env, PARAM& param)
608
69.0k
  {
609
69.0k
    unsigned int i = 0;
610
69.0k
    point_t pt1 = env.get_pt ();
611
69.0k
    if ((env.argStack.get_count () & 1) != 0)
612
42.4k
      pt1.move_y (env.eval_arg (i++));
613
121k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
52.3k
    {
615
52.3k
      pt1.move_x (env.eval_arg (i));
616
52.3k
      point_t pt2 = pt1;
617
52.3k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
52.3k
      point_t pt3 = pt2;
619
52.3k
      pt3.move_x (env.eval_arg (i+3));
620
52.3k
      PATH::curve (env, param, pt1, pt2, pt3);
621
52.3k
      pt1 = env.get_pt ();
622
52.3k
    }
623
69.0k
  }
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
7.97k
  {
609
7.97k
    unsigned int i = 0;
610
7.97k
    point_t pt1 = env.get_pt ();
611
7.97k
    if ((env.argStack.get_count () & 1) != 0)
612
4.25k
      pt1.move_y (env.eval_arg (i++));
613
11.0k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
3.08k
    {
615
3.08k
      pt1.move_x (env.eval_arg (i));
616
3.08k
      point_t pt2 = pt1;
617
3.08k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
3.08k
      point_t pt3 = pt2;
619
3.08k
      pt3.move_x (env.eval_arg (i+3));
620
3.08k
      PATH::curve (env, param, pt1, pt2, pt3);
621
3.08k
      pt1 = env.get_pt ();
622
3.08k
    }
623
7.97k
  }
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
5.70k
  {
609
5.70k
    unsigned int i = 0;
610
5.70k
    point_t pt1 = env.get_pt ();
611
5.70k
    if ((env.argStack.get_count () & 1) != 0)
612
2.93k
      pt1.move_y (env.eval_arg (i++));
613
7.88k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
2.17k
    {
615
2.17k
      pt1.move_x (env.eval_arg (i));
616
2.17k
      point_t pt2 = pt1;
617
2.17k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
2.17k
      point_t pt3 = pt2;
619
2.17k
      pt3.move_x (env.eval_arg (i+3));
620
2.17k
      PATH::curve (env, param, pt1, pt2, pt3);
621
2.17k
      pt1 = env.get_pt ();
622
2.17k
    }
623
5.70k
  }
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
14.2k
  {
609
14.2k
    unsigned int i = 0;
610
14.2k
    point_t pt1 = env.get_pt ();
611
14.2k
    if ((env.argStack.get_count () & 1) != 0)
612
5.54k
      pt1.move_y (env.eval_arg (i++));
613
21.7k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
7.48k
    {
615
7.48k
      pt1.move_x (env.eval_arg (i));
616
7.48k
      point_t pt2 = pt1;
617
7.48k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
7.48k
      point_t pt3 = pt2;
619
7.48k
      pt3.move_x (env.eval_arg (i+3));
620
7.48k
      PATH::curve (env, param, pt1, pt2, pt3);
621
7.48k
      pt1 = env.get_pt ();
622
7.48k
    }
623
14.2k
  }
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
41.0k
  {
609
41.0k
    unsigned int i = 0;
610
41.0k
    point_t pt1 = env.get_pt ();
611
41.0k
    if ((env.argStack.get_count () & 1) != 0)
612
29.6k
      pt1.move_y (env.eval_arg (i++));
613
80.6k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
39.6k
    {
615
39.6k
      pt1.move_x (env.eval_arg (i));
616
39.6k
      point_t pt2 = pt1;
617
39.6k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
39.6k
      point_t pt3 = pt2;
619
39.6k
      pt3.move_x (env.eval_arg (i+3));
620
39.6k
      PATH::curve (env, param, pt1, pt2, pt3);
621
39.6k
      pt1 = env.get_pt ();
622
39.6k
    }
623
41.0k
  }
624
625
  static void vhcurveto (ENV &env, PARAM& param)
626
52.0k
  {
627
52.0k
    point_t pt1, pt2, pt3;
628
52.0k
    unsigned int i = 0;
629
52.0k
    if ((env.argStack.get_count () % 8) >= 4)
630
30.7k
    {
631
30.7k
      point_t pt1 = env.get_pt ();
632
30.7k
      pt1.move_y (env.eval_arg (i));
633
30.7k
      point_t pt2 = pt1;
634
30.7k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
30.7k
      point_t pt3 = pt2;
636
30.7k
      pt3.move_x (env.eval_arg (i+3));
637
30.7k
      i += 4;
638
639
37.2k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
6.42k
      {
641
6.42k
  PATH::curve (env, param, pt1, pt2, pt3);
642
6.42k
  pt1 = env.get_pt ();
643
6.42k
  pt1.move_x (env.eval_arg (i));
644
6.42k
  pt2 = pt1;
645
6.42k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
6.42k
  pt3 = pt2;
647
6.42k
  pt3.move_y (env.eval_arg (i+3));
648
6.42k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
6.42k
  pt1 = pt3;
651
6.42k
  pt1.move_y (env.eval_arg (i+4));
652
6.42k
  pt2 = pt1;
653
6.42k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
6.42k
  pt3 = pt2;
655
6.42k
  pt3.move_x (env.eval_arg (i+7));
656
6.42k
      }
657
30.7k
      if (i < env.argStack.get_count ())
658
25.6k
  pt3.move_y (env.eval_arg (i));
659
30.7k
      PATH::curve (env, param, pt1, pt2, pt3);
660
30.7k
    }
661
21.2k
    else
662
21.2k
    {
663
32.6k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
11.4k
      {
665
11.4k
  pt1 = env.get_pt ();
666
11.4k
  pt1.move_y (env.eval_arg (i));
667
11.4k
  pt2 = pt1;
668
11.4k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
11.4k
  pt3 = pt2;
670
11.4k
  pt3.move_x (env.eval_arg (i+3));
671
11.4k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
11.4k
  pt1 = pt3;
674
11.4k
  pt1.move_x (env.eval_arg (i+4));
675
11.4k
  pt2 = pt1;
676
11.4k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
11.4k
  pt3 = pt2;
678
11.4k
  pt3.move_y (env.eval_arg (i+7));
679
11.4k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
2.38k
    pt3.move_x (env.eval_arg (i+8));
681
11.4k
  PATH::curve (env, param, pt1, pt2, pt3);
682
11.4k
      }
683
21.2k
    }
684
52.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
9.50k
  {
627
9.50k
    point_t pt1, pt2, pt3;
628
9.50k
    unsigned int i = 0;
629
9.50k
    if ((env.argStack.get_count () % 8) >= 4)
630
2.66k
    {
631
2.66k
      point_t pt1 = env.get_pt ();
632
2.66k
      pt1.move_y (env.eval_arg (i));
633
2.66k
      point_t pt2 = pt1;
634
2.66k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
2.66k
      point_t pt3 = pt2;
636
2.66k
      pt3.move_x (env.eval_arg (i+3));
637
2.66k
      i += 4;
638
639
4.01k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
1.34k
      {
641
1.34k
  PATH::curve (env, param, pt1, pt2, pt3);
642
1.34k
  pt1 = env.get_pt ();
643
1.34k
  pt1.move_x (env.eval_arg (i));
644
1.34k
  pt2 = pt1;
645
1.34k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
1.34k
  pt3 = pt2;
647
1.34k
  pt3.move_y (env.eval_arg (i+3));
648
1.34k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
1.34k
  pt1 = pt3;
651
1.34k
  pt1.move_y (env.eval_arg (i+4));
652
1.34k
  pt2 = pt1;
653
1.34k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
1.34k
  pt3 = pt2;
655
1.34k
  pt3.move_x (env.eval_arg (i+7));
656
1.34k
      }
657
2.66k
      if (i < env.argStack.get_count ())
658
1.73k
  pt3.move_y (env.eval_arg (i));
659
2.66k
      PATH::curve (env, param, pt1, pt2, pt3);
660
2.66k
    }
661
6.83k
    else
662
6.83k
    {
663
11.1k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
4.30k
      {
665
4.30k
  pt1 = env.get_pt ();
666
4.30k
  pt1.move_y (env.eval_arg (i));
667
4.30k
  pt2 = pt1;
668
4.30k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
4.30k
  pt3 = pt2;
670
4.30k
  pt3.move_x (env.eval_arg (i+3));
671
4.30k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
4.30k
  pt1 = pt3;
674
4.30k
  pt1.move_x (env.eval_arg (i+4));
675
4.30k
  pt2 = pt1;
676
4.30k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
4.30k
  pt3 = pt2;
678
4.30k
  pt3.move_y (env.eval_arg (i+7));
679
4.30k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
731
    pt3.move_x (env.eval_arg (i+8));
681
4.30k
  PATH::curve (env, param, pt1, pt2, pt3);
682
4.30k
      }
683
6.83k
    }
684
9.50k
  }
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
6.79k
  {
627
6.79k
    point_t pt1, pt2, pt3;
628
6.79k
    unsigned int i = 0;
629
6.79k
    if ((env.argStack.get_count () % 8) >= 4)
630
1.88k
    {
631
1.88k
      point_t pt1 = env.get_pt ();
632
1.88k
      pt1.move_y (env.eval_arg (i));
633
1.88k
      point_t pt2 = pt1;
634
1.88k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
1.88k
      point_t pt3 = pt2;
636
1.88k
      pt3.move_x (env.eval_arg (i+3));
637
1.88k
      i += 4;
638
639
2.87k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
989
      {
641
989
  PATH::curve (env, param, pt1, pt2, pt3);
642
989
  pt1 = env.get_pt ();
643
989
  pt1.move_x (env.eval_arg (i));
644
989
  pt2 = pt1;
645
989
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
989
  pt3 = pt2;
647
989
  pt3.move_y (env.eval_arg (i+3));
648
989
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
989
  pt1 = pt3;
651
989
  pt1.move_y (env.eval_arg (i+4));
652
989
  pt2 = pt1;
653
989
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
989
  pt3 = pt2;
655
989
  pt3.move_x (env.eval_arg (i+7));
656
989
      }
657
1.88k
      if (i < env.argStack.get_count ())
658
1.21k
  pt3.move_y (env.eval_arg (i));
659
1.88k
      PATH::curve (env, param, pt1, pt2, pt3);
660
1.88k
    }
661
4.91k
    else
662
4.91k
    {
663
7.92k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
3.01k
      {
665
3.01k
  pt1 = env.get_pt ();
666
3.01k
  pt1.move_y (env.eval_arg (i));
667
3.01k
  pt2 = pt1;
668
3.01k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
3.01k
  pt3 = pt2;
670
3.01k
  pt3.move_x (env.eval_arg (i+3));
671
3.01k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
3.01k
  pt1 = pt3;
674
3.01k
  pt1.move_x (env.eval_arg (i+4));
675
3.01k
  pt2 = pt1;
676
3.01k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
3.01k
  pt3 = pt2;
678
3.01k
  pt3.move_y (env.eval_arg (i+7));
679
3.01k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
520
    pt3.move_x (env.eval_arg (i+8));
681
3.01k
  PATH::curve (env, param, pt1, pt2, pt3);
682
3.01k
      }
683
4.91k
    }
684
6.79k
  }
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
7.64k
  {
627
7.64k
    point_t pt1, pt2, pt3;
628
7.64k
    unsigned int i = 0;
629
7.64k
    if ((env.argStack.get_count () % 8) >= 4)
630
2.99k
    {
631
2.99k
      point_t pt1 = env.get_pt ();
632
2.99k
      pt1.move_y (env.eval_arg (i));
633
2.99k
      point_t pt2 = pt1;
634
2.99k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
2.99k
      point_t pt3 = pt2;
636
2.99k
      pt3.move_x (env.eval_arg (i+3));
637
2.99k
      i += 4;
638
639
5.33k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
2.34k
      {
641
2.34k
  PATH::curve (env, param, pt1, pt2, pt3);
642
2.34k
  pt1 = env.get_pt ();
643
2.34k
  pt1.move_x (env.eval_arg (i));
644
2.34k
  pt2 = pt1;
645
2.34k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
2.34k
  pt3 = pt2;
647
2.34k
  pt3.move_y (env.eval_arg (i+3));
648
2.34k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
2.34k
  pt1 = pt3;
651
2.34k
  pt1.move_y (env.eval_arg (i+4));
652
2.34k
  pt2 = pt1;
653
2.34k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
2.34k
  pt3 = pt2;
655
2.34k
  pt3.move_x (env.eval_arg (i+7));
656
2.34k
      }
657
2.99k
      if (i < env.argStack.get_count ())
658
1.98k
  pt3.move_y (env.eval_arg (i));
659
2.99k
      PATH::curve (env, param, pt1, pt2, pt3);
660
2.99k
    }
661
4.65k
    else
662
4.65k
    {
663
6.94k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
2.28k
      {
665
2.28k
  pt1 = env.get_pt ();
666
2.28k
  pt1.move_y (env.eval_arg (i));
667
2.28k
  pt2 = pt1;
668
2.28k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
2.28k
  pt3 = pt2;
670
2.28k
  pt3.move_x (env.eval_arg (i+3));
671
2.28k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
2.28k
  pt1 = pt3;
674
2.28k
  pt1.move_x (env.eval_arg (i+4));
675
2.28k
  pt2 = pt1;
676
2.28k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
2.28k
  pt3 = pt2;
678
2.28k
  pt3.move_y (env.eval_arg (i+7));
679
2.28k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
669
    pt3.move_x (env.eval_arg (i+8));
681
2.28k
  PATH::curve (env, param, pt1, pt2, pt3);
682
2.28k
      }
683
4.65k
    }
684
7.64k
  }
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
28.1k
  {
627
28.1k
    point_t pt1, pt2, pt3;
628
28.1k
    unsigned int i = 0;
629
28.1k
    if ((env.argStack.get_count () % 8) >= 4)
630
23.2k
    {
631
23.2k
      point_t pt1 = env.get_pt ();
632
23.2k
      pt1.move_y (env.eval_arg (i));
633
23.2k
      point_t pt2 = pt1;
634
23.2k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
23.2k
      point_t pt3 = pt2;
636
23.2k
      pt3.move_x (env.eval_arg (i+3));
637
23.2k
      i += 4;
638
639
24.9k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
1.74k
      {
641
1.74k
  PATH::curve (env, param, pt1, pt2, pt3);
642
1.74k
  pt1 = env.get_pt ();
643
1.74k
  pt1.move_x (env.eval_arg (i));
644
1.74k
  pt2 = pt1;
645
1.74k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
1.74k
  pt3 = pt2;
647
1.74k
  pt3.move_y (env.eval_arg (i+3));
648
1.74k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
1.74k
  pt1 = pt3;
651
1.74k
  pt1.move_y (env.eval_arg (i+4));
652
1.74k
  pt2 = pt1;
653
1.74k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
1.74k
  pt3 = pt2;
655
1.74k
  pt3.move_x (env.eval_arg (i+7));
656
1.74k
      }
657
23.2k
      if (i < env.argStack.get_count ())
658
20.7k
  pt3.move_y (env.eval_arg (i));
659
23.2k
      PATH::curve (env, param, pt1, pt2, pt3);
660
23.2k
    }
661
4.86k
    else
662
4.86k
    {
663
6.67k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
1.81k
      {
665
1.81k
  pt1 = env.get_pt ();
666
1.81k
  pt1.move_y (env.eval_arg (i));
667
1.81k
  pt2 = pt1;
668
1.81k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
1.81k
  pt3 = pt2;
670
1.81k
  pt3.move_x (env.eval_arg (i+3));
671
1.81k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
1.81k
  pt1 = pt3;
674
1.81k
  pt1.move_x (env.eval_arg (i+4));
675
1.81k
  pt2 = pt1;
676
1.81k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
1.81k
  pt3 = pt2;
678
1.81k
  pt3.move_y (env.eval_arg (i+7));
679
1.81k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
466
    pt3.move_x (env.eval_arg (i+8));
681
1.81k
  PATH::curve (env, param, pt1, pt2, pt3);
682
1.81k
      }
683
4.86k
    }
684
28.1k
  }
685
686
  static void hvcurveto (ENV &env, PARAM& param)
687
82.0k
  {
688
82.0k
    point_t pt1, pt2, pt3;
689
82.0k
    unsigned int i = 0;
690
82.0k
    if ((env.argStack.get_count () % 8) >= 4)
691
63.6k
    {
692
63.6k
      point_t pt1 = env.get_pt ();
693
63.6k
      pt1.move_x (env.eval_arg (i));
694
63.6k
      point_t pt2 = pt1;
695
63.6k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
63.6k
      point_t pt3 = pt2;
697
63.6k
      pt3.move_y (env.eval_arg (i+3));
698
63.6k
      i += 4;
699
700
227k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
164k
      {
702
164k
  PATH::curve (env, param, pt1, pt2, pt3);
703
164k
  pt1 = env.get_pt ();
704
164k
  pt1.move_y (env.eval_arg (i));
705
164k
  pt2 = pt1;
706
164k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
164k
  pt3 = pt2;
708
164k
  pt3.move_x (env.eval_arg (i+3));
709
164k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
164k
  pt1 = pt3;
712
164k
  pt1.move_x (env.eval_arg (i+4));
713
164k
  pt2 = pt1;
714
164k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
164k
  pt3 = pt2;
716
164k
  pt3.move_y (env.eval_arg (i+7));
717
164k
      }
718
63.6k
      if (i < env.argStack.get_count ())
719
54.4k
  pt3.move_x (env.eval_arg (i));
720
63.6k
      PATH::curve (env, param, pt1, pt2, pt3);
721
63.6k
    }
722
18.4k
    else
723
18.4k
    {
724
29.0k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
10.5k
      {
726
10.5k
  pt1 = env.get_pt ();
727
10.5k
  pt1.move_x (env.eval_arg (i));
728
10.5k
  pt2 = pt1;
729
10.5k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
10.5k
  pt3 = pt2;
731
10.5k
  pt3.move_y (env.eval_arg (i+3));
732
10.5k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
10.5k
  pt1 = pt3;
735
10.5k
  pt1.move_y (env.eval_arg (i+4));
736
10.5k
  pt2 = pt1;
737
10.5k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
10.5k
  pt3 = pt2;
739
10.5k
  pt3.move_x (env.eval_arg (i+7));
740
10.5k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
3.72k
    pt3.move_y (env.eval_arg (i+8));
742
10.5k
  PATH::curve (env, param, pt1, pt2, pt3);
743
10.5k
      }
744
18.4k
    }
745
82.0k
  }
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
8.97k
  {
688
8.97k
    point_t pt1, pt2, pt3;
689
8.97k
    unsigned int i = 0;
690
8.97k
    if ((env.argStack.get_count () % 8) >= 4)
691
3.43k
    {
692
3.43k
      point_t pt1 = env.get_pt ();
693
3.43k
      pt1.move_x (env.eval_arg (i));
694
3.43k
      point_t pt2 = pt1;
695
3.43k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
3.43k
      point_t pt3 = pt2;
697
3.43k
      pt3.move_y (env.eval_arg (i+3));
698
3.43k
      i += 4;
699
700
7.52k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
4.08k
      {
702
4.08k
  PATH::curve (env, param, pt1, pt2, pt3);
703
4.08k
  pt1 = env.get_pt ();
704
4.08k
  pt1.move_y (env.eval_arg (i));
705
4.08k
  pt2 = pt1;
706
4.08k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
4.08k
  pt3 = pt2;
708
4.08k
  pt3.move_x (env.eval_arg (i+3));
709
4.08k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
4.08k
  pt1 = pt3;
712
4.08k
  pt1.move_x (env.eval_arg (i+4));
713
4.08k
  pt2 = pt1;
714
4.08k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
4.08k
  pt3 = pt2;
716
4.08k
  pt3.move_y (env.eval_arg (i+7));
717
4.08k
      }
718
3.43k
      if (i < env.argStack.get_count ())
719
2.24k
  pt3.move_x (env.eval_arg (i));
720
3.43k
      PATH::curve (env, param, pt1, pt2, pt3);
721
3.43k
    }
722
5.53k
    else
723
5.53k
    {
724
8.33k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
2.80k
      {
726
2.80k
  pt1 = env.get_pt ();
727
2.80k
  pt1.move_x (env.eval_arg (i));
728
2.80k
  pt2 = pt1;
729
2.80k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
2.80k
  pt3 = pt2;
731
2.80k
  pt3.move_y (env.eval_arg (i+3));
732
2.80k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
2.80k
  pt1 = pt3;
735
2.80k
  pt1.move_y (env.eval_arg (i+4));
736
2.80k
  pt2 = pt1;
737
2.80k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
2.80k
  pt3 = pt2;
739
2.80k
  pt3.move_x (env.eval_arg (i+7));
740
2.80k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
935
    pt3.move_y (env.eval_arg (i+8));
742
2.80k
  PATH::curve (env, param, pt1, pt2, pt3);
743
2.80k
      }
744
5.53k
    }
745
8.97k
  }
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
6.43k
  {
688
6.43k
    point_t pt1, pt2, pt3;
689
6.43k
    unsigned int i = 0;
690
6.43k
    if ((env.argStack.get_count () % 8) >= 4)
691
2.40k
    {
692
2.40k
      point_t pt1 = env.get_pt ();
693
2.40k
      pt1.move_x (env.eval_arg (i));
694
2.40k
      point_t pt2 = pt1;
695
2.40k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
2.40k
      point_t pt3 = pt2;
697
2.40k
      pt3.move_y (env.eval_arg (i+3));
698
2.40k
      i += 4;
699
700
5.43k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
3.03k
      {
702
3.03k
  PATH::curve (env, param, pt1, pt2, pt3);
703
3.03k
  pt1 = env.get_pt ();
704
3.03k
  pt1.move_y (env.eval_arg (i));
705
3.03k
  pt2 = pt1;
706
3.03k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
3.03k
  pt3 = pt2;
708
3.03k
  pt3.move_x (env.eval_arg (i+3));
709
3.03k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
3.03k
  pt1 = pt3;
712
3.03k
  pt1.move_x (env.eval_arg (i+4));
713
3.03k
  pt2 = pt1;
714
3.03k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
3.03k
  pt3 = pt2;
716
3.03k
  pt3.move_y (env.eval_arg (i+7));
717
3.03k
      }
718
2.40k
      if (i < env.argStack.get_count ())
719
1.54k
  pt3.move_x (env.eval_arg (i));
720
2.40k
      PATH::curve (env, param, pt1, pt2, pt3);
721
2.40k
    }
722
4.02k
    else
723
4.02k
    {
724
5.98k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
1.95k
      {
726
1.95k
  pt1 = env.get_pt ();
727
1.95k
  pt1.move_x (env.eval_arg (i));
728
1.95k
  pt2 = pt1;
729
1.95k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
1.95k
  pt3 = pt2;
731
1.95k
  pt3.move_y (env.eval_arg (i+3));
732
1.95k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
1.95k
  pt1 = pt3;
735
1.95k
  pt1.move_y (env.eval_arg (i+4));
736
1.95k
  pt2 = pt1;
737
1.95k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
1.95k
  pt3 = pt2;
739
1.95k
  pt3.move_x (env.eval_arg (i+7));
740
1.95k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
664
    pt3.move_y (env.eval_arg (i+8));
742
1.95k
  PATH::curve (env, param, pt1, pt2, pt3);
743
1.95k
      }
744
4.02k
    }
745
6.43k
  }
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
22.2k
  {
688
22.2k
    point_t pt1, pt2, pt3;
689
22.2k
    unsigned int i = 0;
690
22.2k
    if ((env.argStack.get_count () % 8) >= 4)
691
17.9k
    {
692
17.9k
      point_t pt1 = env.get_pt ();
693
17.9k
      pt1.move_x (env.eval_arg (i));
694
17.9k
      point_t pt2 = pt1;
695
17.9k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
17.9k
      point_t pt3 = pt2;
697
17.9k
      pt3.move_y (env.eval_arg (i+3));
698
17.9k
      i += 4;
699
700
107k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
89.5k
      {
702
89.5k
  PATH::curve (env, param, pt1, pt2, pt3);
703
89.5k
  pt1 = env.get_pt ();
704
89.5k
  pt1.move_y (env.eval_arg (i));
705
89.5k
  pt2 = pt1;
706
89.5k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
89.5k
  pt3 = pt2;
708
89.5k
  pt3.move_x (env.eval_arg (i+3));
709
89.5k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
89.5k
  pt1 = pt3;
712
89.5k
  pt1.move_x (env.eval_arg (i+4));
713
89.5k
  pt2 = pt1;
714
89.5k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
89.5k
  pt3 = pt2;
716
89.5k
  pt3.move_y (env.eval_arg (i+7));
717
89.5k
      }
718
17.9k
      if (i < env.argStack.get_count ())
719
15.2k
  pt3.move_x (env.eval_arg (i));
720
17.9k
      PATH::curve (env, param, pt1, pt2, pt3);
721
17.9k
    }
722
4.31k
    else
723
4.31k
    {
724
6.96k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
2.65k
      {
726
2.65k
  pt1 = env.get_pt ();
727
2.65k
  pt1.move_x (env.eval_arg (i));
728
2.65k
  pt2 = pt1;
729
2.65k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
2.65k
  pt3 = pt2;
731
2.65k
  pt3.move_y (env.eval_arg (i+3));
732
2.65k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
2.65k
  pt1 = pt3;
735
2.65k
  pt1.move_y (env.eval_arg (i+4));
736
2.65k
  pt2 = pt1;
737
2.65k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
2.65k
  pt3 = pt2;
739
2.65k
  pt3.move_x (env.eval_arg (i+7));
740
2.65k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
794
    pt3.move_y (env.eval_arg (i+8));
742
2.65k
  PATH::curve (env, param, pt1, pt2, pt3);
743
2.65k
      }
744
4.31k
    }
745
22.2k
  }
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
44.3k
  {
688
44.3k
    point_t pt1, pt2, pt3;
689
44.3k
    unsigned int i = 0;
690
44.3k
    if ((env.argStack.get_count () % 8) >= 4)
691
39.8k
    {
692
39.8k
      point_t pt1 = env.get_pt ();
693
39.8k
      pt1.move_x (env.eval_arg (i));
694
39.8k
      point_t pt2 = pt1;
695
39.8k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
39.8k
      point_t pt3 = pt2;
697
39.8k
      pt3.move_y (env.eval_arg (i+3));
698
39.8k
      i += 4;
699
700
107k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
67.4k
      {
702
67.4k
  PATH::curve (env, param, pt1, pt2, pt3);
703
67.4k
  pt1 = env.get_pt ();
704
67.4k
  pt1.move_y (env.eval_arg (i));
705
67.4k
  pt2 = pt1;
706
67.4k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
67.4k
  pt3 = pt2;
708
67.4k
  pt3.move_x (env.eval_arg (i+3));
709
67.4k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
67.4k
  pt1 = pt3;
712
67.4k
  pt1.move_x (env.eval_arg (i+4));
713
67.4k
  pt2 = pt1;
714
67.4k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
67.4k
  pt3 = pt2;
716
67.4k
  pt3.move_y (env.eval_arg (i+7));
717
67.4k
      }
718
39.8k
      if (i < env.argStack.get_count ())
719
35.3k
  pt3.move_x (env.eval_arg (i));
720
39.8k
      PATH::curve (env, param, pt1, pt2, pt3);
721
39.8k
    }
722
4.57k
    else
723
4.57k
    {
724
7.75k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
3.18k
      {
726
3.18k
  pt1 = env.get_pt ();
727
3.18k
  pt1.move_x (env.eval_arg (i));
728
3.18k
  pt2 = pt1;
729
3.18k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
3.18k
  pt3 = pt2;
731
3.18k
  pt3.move_y (env.eval_arg (i+3));
732
3.18k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
3.18k
  pt1 = pt3;
735
3.18k
  pt1.move_y (env.eval_arg (i+4));
736
3.18k
  pt2 = pt1;
737
3.18k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
3.18k
  pt3 = pt2;
739
3.18k
  pt3.move_x (env.eval_arg (i+7));
740
3.18k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
1.33k
    pt3.move_y (env.eval_arg (i+8));
742
3.18k
  PATH::curve (env, param, pt1, pt2, pt3);
743
3.18k
      }
744
4.57k
    }
745
44.3k
  }
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
4.07k
  {
759
4.07k
    if (likely (env.argStack.get_count () == 7))
760
3.03k
    {
761
3.03k
      point_t pt1 = env.get_pt ();
762
3.03k
      pt1.move_x (env.eval_arg (0));
763
3.03k
      point_t pt2 = pt1;
764
3.03k
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
3.03k
      point_t pt3 = pt2;
766
3.03k
      pt3.move_x (env.eval_arg (3));
767
3.03k
      point_t pt4 = pt3;
768
3.03k
      pt4.move_x (env.eval_arg (4));
769
3.03k
      point_t pt5 = pt4;
770
3.03k
      pt5.move_x (env.eval_arg (5));
771
3.03k
      pt5.y = pt1.y;
772
3.03k
      point_t pt6 = pt5;
773
3.03k
      pt6.move_x (env.eval_arg (6));
774
775
3.03k
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
3.03k
    }
777
1.04k
    else
778
1.04k
      env.set_error ();
779
4.07k
  }
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
749
  {
759
749
    if (likely (env.argStack.get_count () == 7))
760
582
    {
761
582
      point_t pt1 = env.get_pt ();
762
582
      pt1.move_x (env.eval_arg (0));
763
582
      point_t pt2 = pt1;
764
582
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
582
      point_t pt3 = pt2;
766
582
      pt3.move_x (env.eval_arg (3));
767
582
      point_t pt4 = pt3;
768
582
      pt4.move_x (env.eval_arg (4));
769
582
      point_t pt5 = pt4;
770
582
      pt5.move_x (env.eval_arg (5));
771
582
      pt5.y = pt1.y;
772
582
      point_t pt6 = pt5;
773
582
      pt6.move_x (env.eval_arg (6));
774
775
582
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
582
    }
777
167
    else
778
167
      env.set_error ();
779
749
  }
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
561
  {
759
561
    if (likely (env.argStack.get_count () == 7))
760
435
    {
761
435
      point_t pt1 = env.get_pt ();
762
435
      pt1.move_x (env.eval_arg (0));
763
435
      point_t pt2 = pt1;
764
435
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
435
      point_t pt3 = pt2;
766
435
      pt3.move_x (env.eval_arg (3));
767
435
      point_t pt4 = pt3;
768
435
      pt4.move_x (env.eval_arg (4));
769
435
      point_t pt5 = pt4;
770
435
      pt5.move_x (env.eval_arg (5));
771
435
      pt5.y = pt1.y;
772
435
      point_t pt6 = pt5;
773
435
      pt6.move_x (env.eval_arg (6));
774
775
435
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
435
    }
777
126
    else
778
126
      env.set_error ();
779
561
  }
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
1.25k
  {
759
1.25k
    if (likely (env.argStack.get_count () == 7))
760
1.15k
    {
761
1.15k
      point_t pt1 = env.get_pt ();
762
1.15k
      pt1.move_x (env.eval_arg (0));
763
1.15k
      point_t pt2 = pt1;
764
1.15k
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
1.15k
      point_t pt3 = pt2;
766
1.15k
      pt3.move_x (env.eval_arg (3));
767
1.15k
      point_t pt4 = pt3;
768
1.15k
      pt4.move_x (env.eval_arg (4));
769
1.15k
      point_t pt5 = pt4;
770
1.15k
      pt5.move_x (env.eval_arg (5));
771
1.15k
      pt5.y = pt1.y;
772
1.15k
      point_t pt6 = pt5;
773
1.15k
      pt6.move_x (env.eval_arg (6));
774
775
1.15k
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
1.15k
    }
777
97
    else
778
97
      env.set_error ();
779
1.25k
  }
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
1.51k
  {
759
1.51k
    if (likely (env.argStack.get_count () == 7))
760
863
    {
761
863
      point_t pt1 = env.get_pt ();
762
863
      pt1.move_x (env.eval_arg (0));
763
863
      point_t pt2 = pt1;
764
863
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
863
      point_t pt3 = pt2;
766
863
      pt3.move_x (env.eval_arg (3));
767
863
      point_t pt4 = pt3;
768
863
      pt4.move_x (env.eval_arg (4));
769
863
      point_t pt5 = pt4;
770
863
      pt5.move_x (env.eval_arg (5));
771
863
      pt5.y = pt1.y;
772
863
      point_t pt6 = pt5;
773
863
      pt6.move_x (env.eval_arg (6));
774
775
863
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
863
    }
777
653
    else
778
653
      env.set_error ();
779
1.51k
  }
780
781
  static void flex (ENV &env, PARAM& param)
782
2.50k
  {
783
2.50k
    if (likely (env.argStack.get_count () == 13))
784
1.95k
    {
785
1.95k
      point_t pt1 = env.get_pt ();
786
1.95k
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
1.95k
      point_t pt2 = pt1;
788
1.95k
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
1.95k
      point_t pt3 = pt2;
790
1.95k
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
1.95k
      point_t pt4 = pt3;
792
1.95k
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
1.95k
      point_t pt5 = pt4;
794
1.95k
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
1.95k
      point_t pt6 = pt5;
796
1.95k
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
1.95k
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
1.95k
    }
800
550
    else
801
550
      env.set_error ();
802
2.50k
  }
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
1.16k
  {
783
1.16k
    if (likely (env.argStack.get_count () == 13))
784
984
    {
785
984
      point_t pt1 = env.get_pt ();
786
984
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
984
      point_t pt2 = pt1;
788
984
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
984
      point_t pt3 = pt2;
790
984
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
984
      point_t pt4 = pt3;
792
984
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
984
      point_t pt5 = pt4;
794
984
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
984
      point_t pt6 = pt5;
796
984
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
984
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
984
    }
800
177
    else
801
177
      env.set_error ();
802
1.16k
  }
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
859
  {
783
859
    if (likely (env.argStack.get_count () == 13))
784
725
    {
785
725
      point_t pt1 = env.get_pt ();
786
725
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
725
      point_t pt2 = pt1;
788
725
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
725
      point_t pt3 = pt2;
790
725
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
725
      point_t pt4 = pt3;
792
725
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
725
      point_t pt5 = pt4;
794
725
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
725
      point_t pt6 = pt5;
796
725
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
725
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
725
    }
800
134
    else
801
134
      env.set_error ();
802
859
  }
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
261
  {
783
261
    if (likely (env.argStack.get_count () == 13))
784
144
    {
785
144
      point_t pt1 = env.get_pt ();
786
144
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
144
      point_t pt2 = pt1;
788
144
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
144
      point_t pt3 = pt2;
790
144
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
144
      point_t pt4 = pt3;
792
144
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
144
      point_t pt5 = pt4;
794
144
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
144
      point_t pt6 = pt5;
796
144
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
144
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
144
    }
800
117
    else
801
117
      env.set_error ();
802
261
  }
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
228
  {
783
228
    if (likely (env.argStack.get_count () == 13))
784
106
    {
785
106
      point_t pt1 = env.get_pt ();
786
106
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
106
      point_t pt2 = pt1;
788
106
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
106
      point_t pt3 = pt2;
790
106
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
106
      point_t pt4 = pt3;
792
106
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
106
      point_t pt5 = pt4;
794
106
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
106
      point_t pt6 = pt5;
796
106
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
106
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
106
    }
800
122
    else
801
122
      env.set_error ();
802
228
  }
803
804
  static void hflex1 (ENV &env, PARAM& param)
805
3.10k
  {
806
3.10k
    if (likely (env.argStack.get_count () == 9))
807
1.33k
    {
808
1.33k
      point_t pt1 = env.get_pt ();
809
1.33k
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
1.33k
      point_t pt2 = pt1;
811
1.33k
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
1.33k
      point_t pt3 = pt2;
813
1.33k
      pt3.move_x (env.eval_arg (4));
814
1.33k
      point_t pt4 = pt3;
815
1.33k
      pt4.move_x (env.eval_arg (5));
816
1.33k
      point_t pt5 = pt4;
817
1.33k
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
1.33k
      point_t pt6 = pt5;
819
1.33k
      pt6.move_x (env.eval_arg (8));
820
1.33k
      pt6.y = env.get_pt ().y;
821
822
1.33k
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
1.33k
    }
824
1.76k
    else
825
1.76k
      env.set_error ();
826
3.10k
  }
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
649
  {
806
649
    if (likely (env.argStack.get_count () == 9))
807
340
    {
808
340
      point_t pt1 = env.get_pt ();
809
340
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
340
      point_t pt2 = pt1;
811
340
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
340
      point_t pt3 = pt2;
813
340
      pt3.move_x (env.eval_arg (4));
814
340
      point_t pt4 = pt3;
815
340
      pt4.move_x (env.eval_arg (5));
816
340
      point_t pt5 = pt4;
817
340
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
340
      point_t pt6 = pt5;
819
340
      pt6.move_x (env.eval_arg (8));
820
340
      pt6.y = env.get_pt ().y;
821
822
340
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
340
    }
824
309
    else
825
309
      env.set_error ();
826
649
  }
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
488
  {
806
488
    if (likely (env.argStack.get_count () == 9))
807
254
    {
808
254
      point_t pt1 = env.get_pt ();
809
254
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
254
      point_t pt2 = pt1;
811
254
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
254
      point_t pt3 = pt2;
813
254
      pt3.move_x (env.eval_arg (4));
814
254
      point_t pt4 = pt3;
815
254
      pt4.move_x (env.eval_arg (5));
816
254
      point_t pt5 = pt4;
817
254
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
254
      point_t pt6 = pt5;
819
254
      pt6.move_x (env.eval_arg (8));
820
254
      pt6.y = env.get_pt ().y;
821
822
254
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
254
    }
824
234
    else
825
234
      env.set_error ();
826
488
  }
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
998
  {
806
998
    if (likely (env.argStack.get_count () == 9))
807
426
    {
808
426
      point_t pt1 = env.get_pt ();
809
426
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
426
      point_t pt2 = pt1;
811
426
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
426
      point_t pt3 = pt2;
813
426
      pt3.move_x (env.eval_arg (4));
814
426
      point_t pt4 = pt3;
815
426
      pt4.move_x (env.eval_arg (5));
816
426
      point_t pt5 = pt4;
817
426
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
426
      point_t pt6 = pt5;
819
426
      pt6.move_x (env.eval_arg (8));
820
426
      pt6.y = env.get_pt ().y;
821
822
426
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
426
    }
824
572
    else
825
572
      env.set_error ();
826
998
  }
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
967
  {
806
967
    if (likely (env.argStack.get_count () == 9))
807
314
    {
808
314
      point_t pt1 = env.get_pt ();
809
314
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
314
      point_t pt2 = pt1;
811
314
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
314
      point_t pt3 = pt2;
813
314
      pt3.move_x (env.eval_arg (4));
814
314
      point_t pt4 = pt3;
815
314
      pt4.move_x (env.eval_arg (5));
816
314
      point_t pt5 = pt4;
817
314
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
314
      point_t pt6 = pt5;
819
314
      pt6.move_x (env.eval_arg (8));
820
314
      pt6.y = env.get_pt ().y;
821
822
314
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
314
    }
824
653
    else
825
653
      env.set_error ();
826
967
  }
827
828
  static void flex1 (ENV &env, PARAM& param)
829
4.58k
  {
830
4.58k
    if (likely (env.argStack.get_count () == 11))
831
3.64k
    {
832
3.64k
      point_t d;
833
21.8k
      for (unsigned int i = 0; i < 10; i += 2)
834
18.2k
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
3.64k
      point_t pt1 = env.get_pt ();
837
3.64k
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
3.64k
      point_t pt2 = pt1;
839
3.64k
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
3.64k
      point_t pt3 = pt2;
841
3.64k
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
3.64k
      point_t pt4 = pt3;
843
3.64k
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
3.64k
      point_t pt5 = pt4;
845
3.64k
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
3.64k
      point_t pt6 = pt5;
847
848
3.64k
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
1.42k
      {
850
1.42k
  pt6.move_x (env.eval_arg (10));
851
1.42k
  pt6.y = env.get_pt ().y;
852
1.42k
      }
853
2.22k
      else
854
2.22k
      {
855
2.22k
  pt6.x = env.get_pt ().x;
856
2.22k
  pt6.move_y (env.eval_arg (10));
857
2.22k
      }
858
859
3.64k
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
3.64k
    }
861
945
    else
862
945
      env.set_error ();
863
4.58k
  }
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
1.04k
  {
830
1.04k
    if (likely (env.argStack.get_count () == 11))
831
840
    {
832
840
      point_t d;
833
5.04k
      for (unsigned int i = 0; i < 10; i += 2)
834
4.20k
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
840
      point_t pt1 = env.get_pt ();
837
840
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
840
      point_t pt2 = pt1;
839
840
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
840
      point_t pt3 = pt2;
841
840
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
840
      point_t pt4 = pt3;
843
840
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
840
      point_t pt5 = pt4;
845
840
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
840
      point_t pt6 = pt5;
847
848
840
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
474
      {
850
474
  pt6.move_x (env.eval_arg (10));
851
474
  pt6.y = env.get_pt ().y;
852
474
      }
853
366
      else
854
366
      {
855
366
  pt6.x = env.get_pt ().x;
856
366
  pt6.move_y (env.eval_arg (10));
857
366
      }
858
859
840
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
840
    }
861
203
    else
862
203
      env.set_error ();
863
1.04k
  }
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
786
  {
830
786
    if (likely (env.argStack.get_count () == 11))
831
627
    {
832
627
      point_t d;
833
3.76k
      for (unsigned int i = 0; i < 10; i += 2)
834
3.13k
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
627
      point_t pt1 = env.get_pt ();
837
627
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
627
      point_t pt2 = pt1;
839
627
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
627
      point_t pt3 = pt2;
841
627
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
627
      point_t pt4 = pt3;
843
627
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
627
      point_t pt5 = pt4;
845
627
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
627
      point_t pt6 = pt5;
847
848
627
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
354
      {
850
354
  pt6.move_x (env.eval_arg (10));
851
354
  pt6.y = env.get_pt ().y;
852
354
      }
853
273
      else
854
273
      {
855
273
  pt6.x = env.get_pt ().x;
856
273
  pt6.move_y (env.eval_arg (10));
857
273
      }
858
859
627
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
627
    }
861
159
    else
862
159
      env.set_error ();
863
786
  }
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.43k
  {
830
1.43k
    if (likely (env.argStack.get_count () == 11))
831
1.24k
    {
832
1.24k
      point_t d;
833
7.47k
      for (unsigned int i = 0; i < 10; i += 2)
834
6.23k
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
1.24k
      point_t pt1 = env.get_pt ();
837
1.24k
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
1.24k
      point_t pt2 = pt1;
839
1.24k
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
1.24k
      point_t pt3 = pt2;
841
1.24k
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
1.24k
      point_t pt4 = pt3;
843
1.24k
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
1.24k
      point_t pt5 = pt4;
845
1.24k
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
1.24k
      point_t pt6 = pt5;
847
848
1.24k
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
341
      {
850
341
  pt6.move_x (env.eval_arg (10));
851
341
  pt6.y = env.get_pt ().y;
852
341
      }
853
905
      else
854
905
      {
855
905
  pt6.x = env.get_pt ().x;
856
905
  pt6.move_y (env.eval_arg (10));
857
905
      }
858
859
1.24k
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
1.24k
    }
861
190
    else
862
190
      env.set_error ();
863
1.43k
  }
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.32k
  {
830
1.32k
    if (likely (env.argStack.get_count () == 11))
831
930
    {
832
930
      point_t d;
833
5.58k
      for (unsigned int i = 0; i < 10; i += 2)
834
4.65k
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
930
      point_t pt1 = env.get_pt ();
837
930
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
930
      point_t pt2 = pt1;
839
930
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
930
      point_t pt3 = pt2;
841
930
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
930
      point_t pt4 = pt3;
843
930
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
930
      point_t pt5 = pt4;
845
930
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
930
      point_t pt6 = pt5;
847
848
930
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
254
      {
850
254
  pt6.move_x (env.eval_arg (10));
851
254
  pt6.y = env.get_pt ().y;
852
254
      }
853
676
      else
854
676
      {
855
676
  pt6.x = env.get_pt ().x;
856
676
  pt6.move_y (env.eval_arg (10));
857
676
      }
858
859
930
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
930
    }
861
393
    else
862
393
      env.set_error ();
863
1.32k
  }
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
9.97k
  {
870
9.97k
    PATH::curve (env, param, pt1, pt2, pt3);
871
9.97k
    PATH::curve (env, param, pt4, pt5, pt6);
872
9.97k
  }
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
2.74k
  {
870
2.74k
    PATH::curve (env, param, pt1, pt2, pt3);
871
2.74k
    PATH::curve (env, param, pt4, pt5, pt6);
872
2.74k
  }
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
2.04k
  {
870
2.04k
    PATH::curve (env, param, pt1, pt2, pt3);
871
2.04k
    PATH::curve (env, param, pt4, pt5, pt6);
872
2.04k
  }
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&)
Line
Count
Source
869
2.97k
  {
870
2.97k
    PATH::curve (env, param, pt1, pt2, pt3);
871
2.97k
    PATH::curve (env, param, pt4, pt5, pt6);
872
2.97k
  }
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&)
Line
Count
Source
869
2.21k
  {
870
2.21k
    PATH::curve (env, param, pt1, pt2, pt3);
871
2.21k
    PATH::curve (env, param, pt4, pt5, pt6);
872
2.21k
  }
873
};
874
875
template <typename ENV, typename OPSET, typename PARAM>
876
struct cs_interpreter_t : interpreter_t<ENV>
877
{
878
170k
  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
43.4k
  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
31.8k
  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
19.8k
  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
75.0k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
879
880
  bool interpret (PARAM& param)
881
170k
  {
882
170k
    SUPER::env.set_endchar (false);
883
884
170k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
6.32G
    for (;;) {
886
6.32G
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
887
6.32G
      if (unlikely (SUPER::env.in_error () || !--max_ops))
888
100k
      {
889
100k
  SUPER::env.set_error ();
890
100k
  return false;
891
100k
      }
892
6.32G
      if (SUPER::env.is_endchar ())
893
69.5k
  break;
894
6.32G
    }
895
896
69.5k
    return true;
897
170k
  }
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
43.4k
  {
882
43.4k
    SUPER::env.set_endchar (false);
883
884
43.4k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
3.56G
    for (;;) {
886
3.56G
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
887
3.56G
      if (unlikely (SUPER::env.in_error () || !--max_ops))
888
34.6k
      {
889
34.6k
  SUPER::env.set_error ();
890
34.6k
  return false;
891
34.6k
      }
892
3.56G
      if (SUPER::env.is_endchar ())
893
8.84k
  break;
894
3.56G
    }
895
896
8.84k
    return true;
897
43.4k
  }
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
31.8k
  {
882
31.8k
    SUPER::env.set_endchar (false);
883
884
31.8k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
2.75G
    for (;;) {
886
2.75G
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
887
2.75G
      if (unlikely (SUPER::env.in_error () || !--max_ops))
888
26.6k
      {
889
26.6k
  SUPER::env.set_error ();
890
26.6k
  return false;
891
26.6k
      }
892
2.75G
      if (SUPER::env.is_endchar ())
893
5.21k
  break;
894
2.75G
    }
895
896
5.21k
    return true;
897
31.8k
  }
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
19.8k
  {
882
19.8k
    SUPER::env.set_endchar (false);
883
884
19.8k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
3.10M
    for (;;) {
886
3.10M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
887
3.10M
      if (unlikely (SUPER::env.in_error () || !--max_ops))
888
9.32k
      {
889
9.32k
  SUPER::env.set_error ();
890
9.32k
  return false;
891
9.32k
      }
892
3.09M
      if (SUPER::env.is_endchar ())
893
10.5k
  break;
894
3.09M
    }
895
896
10.5k
    return true;
897
19.8k
  }
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
75.0k
  {
882
75.0k
    SUPER::env.set_endchar (false);
883
884
75.0k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
5.17M
    for (;;) {
886
5.17M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
887
5.17M
      if (unlikely (SUPER::env.in_error () || !--max_ops))
888
30.1k
      {
889
30.1k
  SUPER::env.set_error ();
890
30.1k
  return false;
891
30.1k
      }
892
5.14M
      if (SUPER::env.is_endchar ())
893
44.9k
  break;
894
5.14M
    }
895
896
44.9k
    return true;
897
75.0k
  }
898
899
  private:
900
  typedef interpreter_t<ENV> SUPER;
901
};
902
903
} /* namespace CFF */
904
905
#endif /* HB_CFF_INTERP_CS_COMMON_HH */