Coverage Report

Created: 2024-01-17 16:54

/src/harfbuzz/src/hb-cff-interp-cs-common.hh
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright © 2018 Adobe Inc.
3
 *
4
 *  This is part of HarfBuzz, a text shaping library.
5
 *
6
 * Permission is hereby granted, without written agreement and without
7
 * license or royalty fees, to use, copy, modify, and distribute this
8
 * software and its documentation for any purpose, provided that the
9
 * above copyright notice and the following two paragraphs appear in
10
 * all copies of this software.
11
 *
12
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14
 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15
 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16
 * DAMAGE.
17
 *
18
 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19
 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20
 * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
21
 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23
 *
24
 * Adobe Author(s): Michiharu Ariza
25
 */
26
#ifndef HB_CFF_INTERP_CS_COMMON_HH
27
#define HB_CFF_INTERP_CS_COMMON_HH
28
29
#include "hb.hh"
30
#include "hb-cff-interp-common.hh"
31
32
namespace CFF {
33
34
using namespace OT;
35
36
enum cs_type_t {
37
  CSType_CharString,
38
  CSType_GlobalSubr,
39
  CSType_LocalSubr
40
};
41
42
struct call_context_t
43
{
44
  void init (const byte_str_ref_t substr_=byte_str_ref_t (), cs_type_t type_=CSType_CharString, unsigned int subr_num_=0)
45
2.16M
  {
46
2.16M
    str_ref = substr_;
47
2.16M
    type = type_;
48
2.16M
    subr_num = subr_num_;
49
2.16M
  }
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
1.42M
  {
67
1.42M
    subrs = subrs_;
68
1.42M
    unsigned int  nSubrs = get_count ();
69
1.42M
    if (nSubrs < 1240)
70
1.42M
      bias = 107;
71
1.37k
    else if (nSubrs < 33900)
72
1.21k
      bias = 1131;
73
164
    else
74
164
      bias = 32768;
75
1.42M
  }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::init(CFF::Subrs<OT::IntType<unsigned short, 2u> > const*)
Line
Count
Source
66
163k
  {
67
163k
    subrs = subrs_;
68
163k
    unsigned int  nSubrs = get_count ();
69
163k
    if (nSubrs < 1240)
70
163k
      bias = 107;
71
607
    else if (nSubrs < 33900)
72
493
      bias = 1131;
73
114
    else
74
114
      bias = 32768;
75
163k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::init(CFF::Subrs<OT::IntType<unsigned int, 4u> > const*)
Line
Count
Source
66
1.26M
  {
67
1.26M
    subrs = subrs_;
68
1.26M
    unsigned int  nSubrs = get_count ();
69
1.26M
    if (nSubrs < 1240)
70
1.26M
      bias = 107;
71
768
    else if (nSubrs < 33900)
72
718
      bias = 1131;
73
50
    else
74
50
      bias = 32768;
75
1.26M
  }
76
77
1.42M
  void fini () {}
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::fini()
Line
Count
Source
77
163k
  void fini () {}
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::fini()
Line
Count
Source
77
1.26M
  void fini () {}
78
79
2.94M
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::get_count() const
Line
Count
Source
79
310k
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::get_count() const
Line
Count
Source
79
2.63M
  unsigned int get_count () const { return subrs ? subrs->count : 0; }
80
1.53M
  unsigned int get_bias () const  { return bias; }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::get_bias() const
Line
Count
Source
80
146k
  unsigned int get_bias () const  { return bias; }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::get_bias() const
Line
Count
Source
80
1.38M
  unsigned int get_bias () const  { return bias; }
81
82
  hb_ubytes_t operator [] (unsigned int index) const
83
1.44M
  {
84
1.44M
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
1.44M
    else
87
1.44M
      return (*subrs)[index];
88
1.44M
  }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > >::operator[](unsigned int) const
Line
Count
Source
83
141k
  {
84
141k
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
141k
    else
87
141k
      return (*subrs)[index];
88
141k
  }
CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > >::operator[](unsigned int) const
Line
Count
Source
83
1.30M
  {
84
1.30M
    if (unlikely (!subrs || index >= subrs->count))
85
0
      return hb_ubytes_t ();
86
1.30M
    else
87
1.30M
      return (*subrs)[index];
88
1.30M
  }
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
1.73M
  {
99
1.73M
    x.set_int (_x);
100
1.73M
    y.set_int (_y);
101
1.73M
  }
102
103
31.3M
  void move_x (const number_t &dx) { x += dx; }
104
29.5M
  void move_y (const number_t &dy) { y += dy; }
105
20.8M
  void move (const number_t &dx, const number_t &dy) { move_x (dx); move_y (dy); }
106
14.1k
  void move (const point_t &d) { move_x (d.x); move_y (d.y); }
107
108
  number_t  x;
109
  number_t  y;
110
};
111
112
template <typename ARG, typename SUBRS>
113
struct cs_interp_env_t : interp_env_t<ARG>
114
{
115
  cs_interp_env_t (const hb_ubytes_t &str, const SUBRS *globalSubrs_, const SUBRS *localSubrs_) :
116
    interp_env_t<ARG> (str)
117
712k
  {
118
712k
    context.init (str, CSType_CharString);
119
712k
    seen_moveto = true;
120
712k
    seen_hintmask = false;
121
712k
    hstem_count = 0;
122
712k
    vstem_count = 0;
123
712k
    hintmask_size = 0;
124
712k
    pt.set_int (0, 0);
125
712k
    globalSubrs.init (globalSubrs_);
126
712k
    localSubrs.init (localSubrs_);
127
712k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::IntType<unsigned short, 2u> > const*, CFF::Subrs<OT::IntType<unsigned short, 2u> > const*)
Line
Count
Source
117
81.9k
  {
118
81.9k
    context.init (str, CSType_CharString);
119
81.9k
    seen_moveto = true;
120
81.9k
    seen_hintmask = false;
121
81.9k
    hstem_count = 0;
122
81.9k
    vstem_count = 0;
123
81.9k
    hintmask_size = 0;
124
81.9k
    pt.set_int (0, 0);
125
81.9k
    globalSubrs.init (globalSubrs_);
126
81.9k
    localSubrs.init (localSubrs_);
127
81.9k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::cs_interp_env_t(hb_array_t<unsigned char const> const&, CFF::Subrs<OT::IntType<unsigned int, 4u> > const*, CFF::Subrs<OT::IntType<unsigned int, 4u> > const*)
Line
Count
Source
117
631k
  {
118
631k
    context.init (str, CSType_CharString);
119
631k
    seen_moveto = true;
120
631k
    seen_hintmask = false;
121
631k
    hstem_count = 0;
122
631k
    vstem_count = 0;
123
631k
    hintmask_size = 0;
124
631k
    pt.set_int (0, 0);
125
631k
    globalSubrs.init (globalSubrs_);
126
631k
    localSubrs.init (localSubrs_);
127
631k
  }
128
  ~cs_interp_env_t ()
129
712k
  {
130
712k
    globalSubrs.fini ();
131
712k
    localSubrs.fini ();
132
712k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::~cs_interp_env_t()
Line
Count
Source
129
81.9k
  {
130
81.9k
    globalSubrs.fini ();
131
81.9k
    localSubrs.fini ();
132
81.9k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::~cs_interp_env_t()
Line
Count
Source
129
631k
  {
130
631k
    globalSubrs.fini ();
131
631k
    localSubrs.fini ();
132
631k
  }
133
134
  bool in_error () const
135
90.2M
  {
136
90.2M
    return callStack.in_error () || SUPER::in_error ();
137
90.2M
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::in_error() const
Line
Count
Source
135
7.31M
  {
136
7.31M
    return callStack.in_error () || SUPER::in_error ();
137
7.31M
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::in_error() const
Line
Count
Source
135
82.9M
  {
136
82.9M
    return callStack.in_error () || SUPER::in_error ();
137
82.9M
  }
138
139
  bool pop_subr_num (const biased_subrs_t<SUBRS>& biasedSubrs, unsigned int &subr_num)
140
1.53M
  {
141
1.53M
    subr_num = 0;
142
1.53M
    int n = SUPER::argStack.pop_int ();
143
1.53M
    n += biasedSubrs.get_bias ();
144
1.53M
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
69.2k
      return false;
146
147
1.46M
    subr_num = (unsigned int)n;
148
1.46M
    return true;
149
1.53M
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > > const&, unsigned int&)
Line
Count
Source
140
146k
  {
141
146k
    subr_num = 0;
142
146k
    int n = SUPER::argStack.pop_int ();
143
146k
    n += biasedSubrs.get_bias ();
144
146k
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
1.94k
      return false;
146
147
145k
    subr_num = (unsigned int)n;
148
145k
    return true;
149
146k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::pop_subr_num(CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > > const&, unsigned int&)
Line
Count
Source
140
1.38M
  {
141
1.38M
    subr_num = 0;
142
1.38M
    int n = SUPER::argStack.pop_int ();
143
1.38M
    n += biasedSubrs.get_bias ();
144
1.38M
    if (unlikely ((n < 0) || ((unsigned int)n >= biasedSubrs.get_count ())))
145
67.3k
      return false;
146
147
1.31M
    subr_num = (unsigned int)n;
148
1.31M
    return true;
149
1.38M
  }
150
151
  void call_subr (const biased_subrs_t<SUBRS>& biasedSubrs, cs_type_t type)
152
1.53M
  {
153
1.53M
    unsigned int subr_num = 0;
154
155
1.53M
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
1.53M
     || callStack.get_count () >= kMaxCallLimit))
157
82.4k
    {
158
82.4k
      SUPER::set_error ();
159
82.4k
      return;
160
82.4k
    }
161
1.44M
    context.str_ref = SUPER::str_ref;
162
1.44M
    callStack.push (context);
163
164
1.44M
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
1.44M
    SUPER::str_ref = context.str_ref;
166
1.44M
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned short, 2u> > > const&, CFF::cs_type_t)
Line
Count
Source
152
146k
  {
153
146k
    unsigned int subr_num = 0;
154
155
146k
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
146k
     || callStack.get_count () >= kMaxCallLimit))
157
4.99k
    {
158
4.99k
      SUPER::set_error ();
159
4.99k
      return;
160
4.99k
    }
161
141k
    context.str_ref = SUPER::str_ref;
162
141k
    callStack.push (context);
163
164
141k
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
141k
    SUPER::str_ref = context.str_ref;
166
141k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::call_subr(CFF::biased_subrs_t<CFF::Subrs<OT::IntType<unsigned int, 4u> > > const&, CFF::cs_type_t)
Line
Count
Source
152
1.38M
  {
153
1.38M
    unsigned int subr_num = 0;
154
155
1.38M
    if (unlikely (!pop_subr_num (biasedSubrs, subr_num)
156
1.38M
     || callStack.get_count () >= kMaxCallLimit))
157
77.4k
    {
158
77.4k
      SUPER::set_error ();
159
77.4k
      return;
160
77.4k
    }
161
1.30M
    context.str_ref = SUPER::str_ref;
162
1.30M
    callStack.push (context);
163
164
1.30M
    context.init ( biasedSubrs[subr_num], type, subr_num);
165
1.30M
    SUPER::str_ref = context.str_ref;
166
1.30M
  }
167
168
  void return_from_subr ()
169
1.26M
  {
170
1.26M
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
1.26M
    context = callStack.pop ();
173
1.26M
    SUPER::str_ref = context.str_ref;
174
1.26M
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::return_from_subr()
Line
Count
Source
169
98.5k
  {
170
98.5k
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
98.5k
    context = callStack.pop ();
173
98.5k
    SUPER::str_ref = context.str_ref;
174
98.5k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::return_from_subr()
Line
Count
Source
169
1.16M
  {
170
1.16M
    if (unlikely (SUPER::str_ref.in_error ()))
171
0
      SUPER::set_error ();
172
1.16M
    context = callStack.pop ();
173
1.16M
    SUPER::str_ref = context.str_ref;
174
1.16M
  }
175
176
  void determine_hintmask_size ()
177
175k
  {
178
175k
    if (!seen_hintmask)
179
23.8k
    {
180
23.8k
      vstem_count += SUPER::argStack.get_count() / 2;
181
23.8k
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
23.8k
      seen_hintmask = true;
183
23.8k
    }
184
175k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::determine_hintmask_size()
Line
Count
Source
177
47.5k
  {
178
47.5k
    if (!seen_hintmask)
179
7.52k
    {
180
7.52k
      vstem_count += SUPER::argStack.get_count() / 2;
181
7.52k
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
7.52k
      seen_hintmask = true;
183
7.52k
    }
184
47.5k
  }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::determine_hintmask_size()
Line
Count
Source
177
128k
  {
178
128k
    if (!seen_hintmask)
179
16.3k
    {
180
16.3k
      vstem_count += SUPER::argStack.get_count() / 2;
181
16.3k
      hintmask_size = (hstem_count + vstem_count + 7) >> 3;
182
16.3k
      seen_hintmask = true;
183
16.3k
    }
184
128k
  }
185
186
1.12M
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::set_endchar(bool)
Line
Count
Source
186
145k
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::set_endchar(bool)
Line
Count
Source
186
977k
  void set_endchar (bool endchar_flag_) { endchar_flag = endchar_flag_; }
187
89.9M
  bool is_endchar () const { return endchar_flag; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::is_endchar() const
Line
Count
Source
187
7.29M
  bool is_endchar () const { return endchar_flag; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::is_endchar() const
Line
Count
Source
187
82.6M
  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
23.6M
  const point_t &get_pt () const { return pt; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::get_pt() const
Line
Count
Source
191
2.71M
  const point_t &get_pt () const { return pt; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::get_pt() const
Line
Count
Source
191
20.9M
  const point_t &get_pt () const { return pt; }
192
193
18.1M
  void moveto (const point_t &pt_ ) { pt = pt_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned short, 2u> > >::moveto(CFF::point_t const&)
Line
Count
Source
193
1.75M
  void moveto (const point_t &pt_ ) { pt = pt_; }
CFF::cs_interp_env_t<CFF::number_t, CFF::Subrs<OT::IntType<unsigned int, 4u> > >::moveto(CFF::point_t const&)
Line
Count
Source
193
16.3M
  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
89.9M
  {
244
89.9M
    switch (op) {
245
246
1.26M
      case OpCode_return:
247
1.26M
  env.return_from_subr ();
248
1.26M
  break;
249
346k
      case OpCode_endchar:
250
346k
  OPSET::check_width (op, env, param);
251
346k
  env.set_endchar (true);
252
346k
  OPSET::flush_args_and_op (op, env, param);
253
346k
  break;
254
255
583k
      case OpCode_fixedcs:
256
583k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
583k
  break;
258
259
713k
      case OpCode_callsubr:
260
713k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
713k
  break;
262
263
818k
      case OpCode_callgsubr:
264
818k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
818k
  break;
266
267
188k
      case OpCode_hstem:
268
260k
      case OpCode_hstemhm:
269
260k
  OPSET::check_width (op, env, param);
270
260k
  OPSET::process_hstem (op, env, param);
271
260k
  break;
272
121k
      case OpCode_vstem:
273
329k
      case OpCode_vstemhm:
274
329k
  OPSET::check_width (op, env, param);
275
329k
  OPSET::process_vstem (op, env, param);
276
329k
  break;
277
66.6k
      case OpCode_hintmask:
278
175k
      case OpCode_cntrmask:
279
175k
  OPSET::check_width (op, env, param);
280
175k
  OPSET::process_hintmask (op, env, param);
281
175k
  break;
282
871k
      case OpCode_rmoveto:
283
871k
  OPSET::check_width (op, env, param);
284
871k
  PATH::rmoveto (env, param);
285
871k
  OPSET::process_post_move (op, env, param);
286
871k
  break;
287
141k
      case OpCode_hmoveto:
288
141k
  OPSET::check_width (op, env, param);
289
141k
  PATH::hmoveto (env, param);
290
141k
  OPSET::process_post_move (op, env, param);
291
141k
  break;
292
173k
      case OpCode_vmoveto:
293
173k
  OPSET::check_width (op, env, param);
294
173k
  PATH::vmoveto (env, param);
295
173k
  OPSET::process_post_move (op, env, param);
296
173k
  break;
297
874k
      case OpCode_rlineto:
298
874k
  PATH::rlineto (env, param);
299
874k
  process_post_path (op, env, param);
300
874k
  break;
301
559k
      case OpCode_hlineto:
302
559k
  PATH::hlineto (env, param);
303
559k
  process_post_path (op, env, param);
304
559k
  break;
305
488k
      case OpCode_vlineto:
306
488k
  PATH::vlineto (env, param);
307
488k
  process_post_path (op, env, param);
308
488k
  break;
309
1.14M
      case OpCode_rrcurveto:
310
1.14M
  PATH::rrcurveto (env, param);
311
1.14M
  process_post_path (op, env, param);
312
1.14M
  break;
313
697k
      case OpCode_rcurveline:
314
697k
  PATH::rcurveline (env, param);
315
697k
  process_post_path (op, env, param);
316
697k
  break;
317
657k
      case OpCode_rlinecurve:
318
657k
  PATH::rlinecurve (env, param);
319
657k
  process_post_path (op, env, param);
320
657k
  break;
321
481k
      case OpCode_vvcurveto:
322
481k
  PATH::vvcurveto (env, param);
323
481k
  process_post_path (op, env, param);
324
481k
  break;
325
1.22M
      case OpCode_hhcurveto:
326
1.22M
  PATH::hhcurveto (env, param);
327
1.22M
  process_post_path (op, env, param);
328
1.22M
  break;
329
891k
      case OpCode_vhcurveto:
330
891k
  PATH::vhcurveto (env, param);
331
891k
  process_post_path (op, env, param);
332
891k
  break;
333
1.29M
      case OpCode_hvcurveto:
334
1.29M
  PATH::hvcurveto (env, param);
335
1.29M
  process_post_path (op, env, param);
336
1.29M
  break;
337
338
2.46k
      case OpCode_hflex:
339
2.46k
  PATH::hflex (env, param);
340
2.46k
  OPSET::process_post_flex (op, env, param);
341
2.46k
  break;
342
343
1.57k
      case OpCode_flex:
344
1.57k
  PATH::flex (env, param);
345
1.57k
  OPSET::process_post_flex (op, env, param);
346
1.57k
  break;
347
348
3.96k
      case OpCode_hflex1:
349
3.96k
  PATH::hflex1 (env, param);
350
3.96k
  OPSET::process_post_flex (op, env, param);
351
3.96k
  break;
352
353
1.78k
      case OpCode_flex1:
354
1.78k
  PATH::flex1 (env, param);
355
1.78k
  OPSET::process_post_flex (op, env, param);
356
1.78k
  break;
357
358
75.9M
      default:
359
75.9M
  SUPER::process_op (op, env);
360
75.9M
  break;
361
89.9M
    }
362
89.9M
  }
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
4.59M
  {
244
4.59M
    switch (op) {
245
246
74.3k
      case OpCode_return:
247
74.3k
  env.return_from_subr ();
248
74.3k
  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
26.5k
      case OpCode_fixedcs:
256
26.5k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
26.5k
  break;
258
259
73.9k
      case OpCode_callsubr:
260
73.9k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
73.9k
  break;
262
263
33.4k
      case OpCode_callgsubr:
264
33.4k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
33.4k
  break;
266
267
34.9k
      case OpCode_hstem:
268
45.8k
      case OpCode_hstemhm:
269
45.8k
  OPSET::check_width (op, env, param);
270
45.8k
  OPSET::process_hstem (op, env, param);
271
45.8k
  break;
272
28.4k
      case OpCode_vstem:
273
43.4k
      case OpCode_vstemhm:
274
43.4k
  OPSET::check_width (op, env, param);
275
43.4k
  OPSET::process_vstem (op, env, param);
276
43.4k
  break;
277
21.7k
      case OpCode_hintmask:
278
31.4k
      case OpCode_cntrmask:
279
31.4k
  OPSET::check_width (op, env, param);
280
31.4k
  OPSET::process_hintmask (op, env, param);
281
31.4k
  break;
282
128k
      case OpCode_rmoveto:
283
128k
  OPSET::check_width (op, env, param);
284
128k
  PATH::rmoveto (env, param);
285
128k
  OPSET::process_post_move (op, env, param);
286
128k
  break;
287
27.9k
      case OpCode_hmoveto:
288
27.9k
  OPSET::check_width (op, env, param);
289
27.9k
  PATH::hmoveto (env, param);
290
27.9k
  OPSET::process_post_move (op, env, param);
291
27.9k
  break;
292
4.09k
      case OpCode_vmoveto:
293
4.09k
  OPSET::check_width (op, env, param);
294
4.09k
  PATH::vmoveto (env, param);
295
4.09k
  OPSET::process_post_move (op, env, param);
296
4.09k
  break;
297
121k
      case OpCode_rlineto:
298
121k
  PATH::rlineto (env, param);
299
121k
  process_post_path (op, env, param);
300
121k
  break;
301
99.4k
      case OpCode_hlineto:
302
99.4k
  PATH::hlineto (env, param);
303
99.4k
  process_post_path (op, env, param);
304
99.4k
  break;
305
61.3k
      case OpCode_vlineto:
306
61.3k
  PATH::vlineto (env, param);
307
61.3k
  process_post_path (op, env, param);
308
61.3k
  break;
309
42.9k
      case OpCode_rrcurveto:
310
42.9k
  PATH::rrcurveto (env, param);
311
42.9k
  process_post_path (op, env, param);
312
42.9k
  break;
313
27.4k
      case OpCode_rcurveline:
314
27.4k
  PATH::rcurveline (env, param);
315
27.4k
  process_post_path (op, env, param);
316
27.4k
  break;
317
19.1k
      case OpCode_rlinecurve:
318
19.1k
  PATH::rlinecurve (env, param);
319
19.1k
  process_post_path (op, env, param);
320
19.1k
  break;
321
27.8k
      case OpCode_vvcurveto:
322
27.8k
  PATH::vvcurveto (env, param);
323
27.8k
  process_post_path (op, env, param);
324
27.8k
  break;
325
43.9k
      case OpCode_hhcurveto:
326
43.9k
  PATH::hhcurveto (env, param);
327
43.9k
  process_post_path (op, env, param);
328
43.9k
  break;
329
42.2k
      case OpCode_vhcurveto:
330
42.2k
  PATH::vhcurveto (env, param);
331
42.2k
  process_post_path (op, env, param);
332
42.2k
  break;
333
47.8k
      case OpCode_hvcurveto:
334
47.8k
  PATH::hvcurveto (env, param);
335
47.8k
  process_post_path (op, env, param);
336
47.8k
  break;
337
338
54
      case OpCode_hflex:
339
54
  PATH::hflex (env, param);
340
54
  OPSET::process_post_flex (op, env, param);
341
54
  break;
342
343
118
      case OpCode_flex:
344
118
  PATH::flex (env, param);
345
118
  OPSET::process_post_flex (op, env, param);
346
118
  break;
347
348
116
      case OpCode_hflex1:
349
116
  PATH::hflex1 (env, param);
350
116
  OPSET::process_post_flex (op, env, param);
351
116
  break;
352
353
671
      case OpCode_flex1:
354
671
  PATH::flex1 (env, param);
355
671
  OPSET::process_post_flex (op, env, param);
356
671
  break;
357
358
3.56M
      default:
359
3.56M
  SUPER::process_op (op, env);
360
3.56M
  break;
361
4.59M
    }
362
4.59M
  }
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.66M
  {
244
2.66M
    switch (op) {
245
246
24.2k
      case OpCode_return:
247
24.2k
  env.return_from_subr ();
248
24.2k
  break;
249
0
      case OpCode_endchar:
250
0
  OPSET::check_width (op, env, param);
251
0
  env.set_endchar (true);
252
0
  OPSET::flush_args_and_op (op, env, param);
253
0
  break;
254
255
10.6k
      case OpCode_fixedcs:
256
10.6k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
10.6k
  break;
258
259
31.0k
      case OpCode_callsubr:
260
31.0k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
31.0k
  break;
262
263
8.49k
      case OpCode_callgsubr:
264
8.49k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
8.49k
  break;
266
267
24.9k
      case OpCode_hstem:
268
31.7k
      case OpCode_hstemhm:
269
31.7k
  OPSET::check_width (op, env, param);
270
31.7k
  OPSET::process_hstem (op, env, param);
271
31.7k
  break;
272
20.8k
      case OpCode_vstem:
273
29.1k
      case OpCode_vstemhm:
274
29.1k
  OPSET::check_width (op, env, param);
275
29.1k
  OPSET::process_vstem (op, env, param);
276
29.1k
  break;
277
11.0k
      case OpCode_hintmask:
278
16.0k
      case OpCode_cntrmask:
279
16.0k
  OPSET::check_width (op, env, param);
280
16.0k
  OPSET::process_hintmask (op, env, param);
281
16.0k
  break;
282
49.9k
      case OpCode_rmoveto:
283
49.9k
  OPSET::check_width (op, env, param);
284
49.9k
  PATH::rmoveto (env, param);
285
49.9k
  OPSET::process_post_move (op, env, param);
286
49.9k
  break;
287
9.24k
      case OpCode_hmoveto:
288
9.24k
  OPSET::check_width (op, env, param);
289
9.24k
  PATH::hmoveto (env, param);
290
9.24k
  OPSET::process_post_move (op, env, param);
291
9.24k
  break;
292
2.13k
      case OpCode_vmoveto:
293
2.13k
  OPSET::check_width (op, env, param);
294
2.13k
  PATH::vmoveto (env, param);
295
2.13k
  OPSET::process_post_move (op, env, param);
296
2.13k
  break;
297
46.1k
      case OpCode_rlineto:
298
46.1k
  PATH::rlineto (env, param);
299
46.1k
  process_post_path (op, env, param);
300
46.1k
  break;
301
45.4k
      case OpCode_hlineto:
302
45.4k
  PATH::hlineto (env, param);
303
45.4k
  process_post_path (op, env, param);
304
45.4k
  break;
305
30.7k
      case OpCode_vlineto:
306
30.7k
  PATH::vlineto (env, param);
307
30.7k
  process_post_path (op, env, param);
308
30.7k
  break;
309
33.2k
      case OpCode_rrcurveto:
310
33.2k
  PATH::rrcurveto (env, param);
311
33.2k
  process_post_path (op, env, param);
312
33.2k
  break;
313
21.0k
      case OpCode_rcurveline:
314
21.0k
  PATH::rcurveline (env, param);
315
21.0k
  process_post_path (op, env, param);
316
21.0k
  break;
317
12.9k
      case OpCode_rlinecurve:
318
12.9k
  PATH::rlinecurve (env, param);
319
12.9k
  process_post_path (op, env, param);
320
12.9k
  break;
321
17.8k
      case OpCode_vvcurveto:
322
17.8k
  PATH::vvcurveto (env, param);
323
17.8k
  process_post_path (op, env, param);
324
17.8k
  break;
325
35.1k
      case OpCode_hhcurveto:
326
35.1k
  PATH::hhcurveto (env, param);
327
35.1k
  process_post_path (op, env, param);
328
35.1k
  break;
329
32.6k
      case OpCode_vhcurveto:
330
32.6k
  PATH::vhcurveto (env, param);
331
32.6k
  process_post_path (op, env, param);
332
32.6k
  break;
333
34.1k
      case OpCode_hvcurveto:
334
34.1k
  PATH::hvcurveto (env, param);
335
34.1k
  process_post_path (op, env, param);
336
34.1k
  break;
337
338
12
      case OpCode_hflex:
339
12
  PATH::hflex (env, param);
340
12
  OPSET::process_post_flex (op, env, param);
341
12
  break;
342
343
52
      case OpCode_flex:
344
52
  PATH::flex (env, param);
345
52
  OPSET::process_post_flex (op, env, param);
346
52
  break;
347
348
55
      case OpCode_hflex1:
349
55
  PATH::hflex1 (env, param);
350
55
  OPSET::process_post_flex (op, env, param);
351
55
  break;
352
353
624
      case OpCode_flex1:
354
624
  PATH::flex1 (env, param);
355
624
  OPSET::process_post_flex (op, env, param);
356
624
  break;
357
358
2.14M
      default:
359
2.14M
  SUPER::process_op (op, env);
360
2.14M
  break;
361
2.66M
    }
362
2.66M
  }
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
26.5M
  {
244
26.5M
    switch (op) {
245
246
568k
      case OpCode_return:
247
568k
  env.return_from_subr ();
248
568k
  break;
249
8.67k
      case OpCode_endchar:
250
8.67k
  OPSET::check_width (op, env, param);
251
8.67k
  env.set_endchar (true);
252
8.67k
  OPSET::flush_args_and_op (op, env, param);
253
8.67k
  break;
254
255
321k
      case OpCode_fixedcs:
256
321k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
321k
  break;
258
259
120k
      case OpCode_callsubr:
260
120k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
120k
  break;
262
263
516k
      case OpCode_callgsubr:
264
516k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
516k
  break;
266
267
55.0k
      case OpCode_hstem:
268
85.5k
      case OpCode_hstemhm:
269
85.5k
  OPSET::check_width (op, env, param);
270
85.5k
  OPSET::process_hstem (op, env, param);
271
85.5k
  break;
272
27.9k
      case OpCode_vstem:
273
150k
      case OpCode_vstemhm:
274
150k
  OPSET::check_width (op, env, param);
275
150k
  OPSET::process_vstem (op, env, param);
276
150k
  break;
277
21.6k
      case OpCode_hintmask:
278
75.1k
      case OpCode_cntrmask:
279
75.1k
  OPSET::check_width (op, env, param);
280
75.1k
  OPSET::process_hintmask (op, env, param);
281
75.1k
  break;
282
117k
      case OpCode_rmoveto:
283
117k
  OPSET::check_width (op, env, param);
284
117k
  PATH::rmoveto (env, param);
285
117k
  OPSET::process_post_move (op, env, param);
286
117k
  break;
287
53.8k
      case OpCode_hmoveto:
288
53.8k
  OPSET::check_width (op, env, param);
289
53.8k
  PATH::hmoveto (env, param);
290
53.8k
  OPSET::process_post_move (op, env, param);
291
53.8k
  break;
292
72.7k
      case OpCode_vmoveto:
293
72.7k
  OPSET::check_width (op, env, param);
294
72.7k
  PATH::vmoveto (env, param);
295
72.7k
  OPSET::process_post_move (op, env, param);
296
72.7k
  break;
297
119k
      case OpCode_rlineto:
298
119k
  PATH::rlineto (env, param);
299
119k
  process_post_path (op, env, param);
300
119k
  break;
301
164k
      case OpCode_hlineto:
302
164k
  PATH::hlineto (env, param);
303
164k
  process_post_path (op, env, param);
304
164k
  break;
305
138k
      case OpCode_vlineto:
306
138k
  PATH::vlineto (env, param);
307
138k
  process_post_path (op, env, param);
308
138k
  break;
309
120k
      case OpCode_rrcurveto:
310
120k
  PATH::rrcurveto (env, param);
311
120k
  process_post_path (op, env, param);
312
120k
  break;
313
143k
      case OpCode_rcurveline:
314
143k
  PATH::rcurveline (env, param);
315
143k
  process_post_path (op, env, param);
316
143k
  break;
317
107k
      case OpCode_rlinecurve:
318
107k
  PATH::rlinecurve (env, param);
319
107k
  process_post_path (op, env, param);
320
107k
  break;
321
69.0k
      case OpCode_vvcurveto:
322
69.0k
  PATH::vvcurveto (env, param);
323
69.0k
  process_post_path (op, env, param);
324
69.0k
  break;
325
110k
      case OpCode_hhcurveto:
326
110k
  PATH::hhcurveto (env, param);
327
110k
  process_post_path (op, env, param);
328
110k
  break;
329
236k
      case OpCode_vhcurveto:
330
236k
  PATH::vhcurveto (env, param);
331
236k
  process_post_path (op, env, param);
332
236k
  break;
333
293k
      case OpCode_hvcurveto:
334
293k
  PATH::hvcurveto (env, param);
335
293k
  process_post_path (op, env, param);
336
293k
  break;
337
338
664
      case OpCode_hflex:
339
664
  PATH::hflex (env, param);
340
664
  OPSET::process_post_flex (op, env, param);
341
664
  break;
342
343
171
      case OpCode_flex:
344
171
  PATH::flex (env, param);
345
171
  OPSET::process_post_flex (op, env, param);
346
171
  break;
347
348
312
      case OpCode_hflex1:
349
312
  PATH::hflex1 (env, param);
350
312
  OPSET::process_post_flex (op, env, param);
351
312
  break;
352
353
200
      case OpCode_flex1:
354
200
  PATH::flex1 (env, param);
355
200
  OPSET::process_post_flex (op, env, param);
356
200
  break;
357
358
22.9M
      default:
359
22.9M
  SUPER::process_op (op, env);
360
22.9M
  break;
361
26.5M
    }
362
26.5M
  }
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
56.0M
  {
244
56.0M
    switch (op) {
245
246
594k
      case OpCode_return:
247
594k
  env.return_from_subr ();
248
594k
  break;
249
338k
      case OpCode_endchar:
250
338k
  OPSET::check_width (op, env, param);
251
338k
  env.set_endchar (true);
252
338k
  OPSET::flush_args_and_op (op, env, param);
253
338k
  break;
254
255
224k
      case OpCode_fixedcs:
256
224k
  env.argStack.push_fixed_from_substr (env.str_ref);
257
224k
  break;
258
259
487k
      case OpCode_callsubr:
260
487k
  env.call_subr (env.localSubrs, CSType_LocalSubr);
261
487k
  break;
262
263
260k
      case OpCode_callgsubr:
264
260k
  env.call_subr (env.globalSubrs, CSType_GlobalSubr);
265
260k
  break;
266
267
73.2k
      case OpCode_hstem:
268
97.2k
      case OpCode_hstemhm:
269
97.2k
  OPSET::check_width (op, env, param);
270
97.2k
  OPSET::process_hstem (op, env, param);
271
97.2k
  break;
272
43.8k
      case OpCode_vstem:
273
106k
      case OpCode_vstemhm:
274
106k
  OPSET::check_width (op, env, param);
275
106k
  OPSET::process_vstem (op, env, param);
276
106k
  break;
277
12.1k
      case OpCode_hintmask:
278
53.2k
      case OpCode_cntrmask:
279
53.2k
  OPSET::check_width (op, env, param);
280
53.2k
  OPSET::process_hintmask (op, env, param);
281
53.2k
  break;
282
574k
      case OpCode_rmoveto:
283
574k
  OPSET::check_width (op, env, param);
284
574k
  PATH::rmoveto (env, param);
285
574k
  OPSET::process_post_move (op, env, param);
286
574k
  break;
287
50.8k
      case OpCode_hmoveto:
288
50.8k
  OPSET::check_width (op, env, param);
289
50.8k
  PATH::hmoveto (env, param);
290
50.8k
  OPSET::process_post_move (op, env, param);
291
50.8k
  break;
292
94.2k
      case OpCode_vmoveto:
293
94.2k
  OPSET::check_width (op, env, param);
294
94.2k
  PATH::vmoveto (env, param);
295
94.2k
  OPSET::process_post_move (op, env, param);
296
94.2k
  break;
297
587k
      case OpCode_rlineto:
298
587k
  PATH::rlineto (env, param);
299
587k
  process_post_path (op, env, param);
300
587k
  break;
301
250k
      case OpCode_hlineto:
302
250k
  PATH::hlineto (env, param);
303
250k
  process_post_path (op, env, param);
304
250k
  break;
305
257k
      case OpCode_vlineto:
306
257k
  PATH::vlineto (env, param);
307
257k
  process_post_path (op, env, param);
308
257k
  break;
309
949k
      case OpCode_rrcurveto:
310
949k
  PATH::rrcurveto (env, param);
311
949k
  process_post_path (op, env, param);
312
949k
  break;
313
505k
      case OpCode_rcurveline:
314
505k
  PATH::rcurveline (env, param);
315
505k
  process_post_path (op, env, param);
316
505k
  break;
317
518k
      case OpCode_rlinecurve:
318
518k
  PATH::rlinecurve (env, param);
319
518k
  process_post_path (op, env, param);
320
518k
  break;
321
367k
      case OpCode_vvcurveto:
322
367k
  PATH::vvcurveto (env, param);
323
367k
  process_post_path (op, env, param);
324
367k
  break;
325
1.03M
      case OpCode_hhcurveto:
326
1.03M
  PATH::hhcurveto (env, param);
327
1.03M
  process_post_path (op, env, param);
328
1.03M
  break;
329
579k
      case OpCode_vhcurveto:
330
579k
  PATH::vhcurveto (env, param);
331
579k
  process_post_path (op, env, param);
332
579k
  break;
333
924k
      case OpCode_hvcurveto:
334
924k
  PATH::hvcurveto (env, param);
335
924k
  process_post_path (op, env, param);
336
924k
  break;
337
338
1.73k
      case OpCode_hflex:
339
1.73k
  PATH::hflex (env, param);
340
1.73k
  OPSET::process_post_flex (op, env, param);
341
1.73k
  break;
342
343
1.23k
      case OpCode_flex:
344
1.23k
  PATH::flex (env, param);
345
1.23k
  OPSET::process_post_flex (op, env, param);
346
1.23k
  break;
347
348
3.48k
      case OpCode_hflex1:
349
3.48k
  PATH::hflex1 (env, param);
350
3.48k
  OPSET::process_post_flex (op, env, param);
351
3.48k
  break;
352
353
293
      case OpCode_flex1:
354
293
  PATH::flex1 (env, param);
355
293
  OPSET::process_post_flex (op, env, param);
356
293
  break;
357
358
47.2M
      default:
359
47.2M
  SUPER::process_op (op, env);
360
47.2M
  break;
361
56.0M
    }
362
56.0M
  }
363
364
  static void process_hstem (op_code_t op, ENV &env, PARAM& param)
365
260k
  {
366
260k
    env.hstem_count += env.argStack.get_count () / 2;
367
260k
    OPSET::flush_args_and_op (op, env, param);
368
260k
  }
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
45.8k
  {
366
45.8k
    env.hstem_count += env.argStack.get_count () / 2;
367
45.8k
    OPSET::flush_args_and_op (op, env, param);
368
45.8k
  }
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
31.7k
  {
366
31.7k
    env.hstem_count += env.argStack.get_count () / 2;
367
31.7k
    OPSET::flush_args_and_op (op, env, param);
368
31.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_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
85.5k
  {
366
85.5k
    env.hstem_count += env.argStack.get_count () / 2;
367
85.5k
    OPSET::flush_args_and_op (op, env, param);
368
85.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_hstem(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Line
Count
Source
365
97.2k
  {
366
97.2k
    env.hstem_count += env.argStack.get_count () / 2;
367
97.2k
    OPSET::flush_args_and_op (op, env, param);
368
97.2k
  }
369
370
  static void process_vstem (op_code_t op, ENV &env, PARAM& param)
371
329k
  {
372
329k
    env.vstem_count += env.argStack.get_count () / 2;
373
329k
    OPSET::flush_args_and_op (op, env, param);
374
329k
  }
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
43.4k
  {
372
43.4k
    env.vstem_count += env.argStack.get_count () / 2;
373
43.4k
    OPSET::flush_args_and_op (op, env, param);
374
43.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
29.1k
  {
372
29.1k
    env.vstem_count += env.argStack.get_count () / 2;
373
29.1k
    OPSET::flush_args_and_op (op, env, param);
374
29.1k
  }
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
150k
  {
372
150k
    env.vstem_count += env.argStack.get_count () / 2;
373
150k
    OPSET::flush_args_and_op (op, env, param);
374
150k
  }
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
106k
  {
372
106k
    env.vstem_count += env.argStack.get_count () / 2;
373
106k
    OPSET::flush_args_and_op (op, env, param);
374
106k
  }
375
376
  static void process_hintmask (op_code_t op, ENV &env, PARAM& param)
377
175k
  {
378
175k
    env.determine_hintmask_size ();
379
175k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
172k
    {
381
172k
      OPSET::flush_hintmask (op, env, param);
382
172k
      env.str_ref.inc (env.hintmask_size);
383
172k
    }
384
175k
  }
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
31.4k
  {
378
31.4k
    env.determine_hintmask_size ();
379
31.4k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
30.9k
    {
381
30.9k
      OPSET::flush_hintmask (op, env, param);
382
30.9k
      env.str_ref.inc (env.hintmask_size);
383
30.9k
    }
384
31.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_hintmask(unsigned int, CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Line
Count
Source
377
16.0k
  {
378
16.0k
    env.determine_hintmask_size ();
379
16.0k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
15.7k
    {
381
15.7k
      OPSET::flush_hintmask (op, env, param);
382
15.7k
      env.str_ref.inc (env.hintmask_size);
383
15.7k
    }
384
16.0k
  }
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
75.1k
  {
378
75.1k
    env.determine_hintmask_size ();
379
75.1k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
73.7k
    {
381
73.7k
      OPSET::flush_hintmask (op, env, param);
382
73.7k
      env.str_ref.inc (env.hintmask_size);
383
73.7k
    }
384
75.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_hintmask(unsigned int, CFF::cff2_cs_interp_env_t<CFF::number_t>&, cff2_path_param_t&)
Line
Count
Source
377
53.2k
  {
378
53.2k
    env.determine_hintmask_size ();
379
53.2k
    if (likely (env.str_ref.avail (env.hintmask_size)))
380
52.3k
    {
381
52.3k
      OPSET::flush_hintmask (op, env, param);
382
52.3k
      env.str_ref.inc (env.hintmask_size);
383
52.3k
    }
384
53.2k
  }
385
386
  static void process_post_flex (op_code_t op, ENV &env, PARAM& param)
387
9.79k
  {
388
9.79k
    OPSET::flush_args_and_op (op, env, param);
389
9.79k
  }
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
959
  {
388
959
    OPSET::flush_args_and_op (op, env, param);
389
959
  }
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
743
  {
388
743
    OPSET::flush_args_and_op (op, env, param);
389
743
  }
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
1.34k
  {
388
1.34k
    OPSET::flush_args_and_op (op, env, param);
389
1.34k
  }
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
6.74k
  {
388
6.74k
    OPSET::flush_args_and_op (op, env, param);
389
6.74k
  }
390
391
  static void check_width (op_code_t op, ENV &env, PARAM& param)
392
1.87M
  {}
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
564k
  {}
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
1.31M
  {}
393
394
  static void process_post_move (op_code_t op, ENV &env, PARAM& param)
395
1.18M
  {
396
1.18M
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
1.18M
    OPSET::flush_args_and_op (op, env, param);
402
1.18M
  }
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
160k
  {
396
160k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
160k
    OPSET::flush_args_and_op (op, env, param);
402
160k
  }
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
61.3k
  {
396
61.3k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
61.3k
    OPSET::flush_args_and_op (op, env, param);
402
61.3k
  }
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
244k
  {
396
244k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
244k
    OPSET::flush_args_and_op (op, env, param);
402
244k
  }
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
720k
  {
396
720k
    if (!env.seen_moveto)
397
0
    {
398
0
      env.determine_hintmask_size ();
399
0
      env.seen_moveto = true;
400
0
    }
401
720k
    OPSET::flush_args_and_op (op, env, param);
402
720k
  }
403
404
  static void process_post_path (op_code_t op, ENV &env, PARAM& param)
405
8.32M
  {
406
8.32M
    OPSET::flush_args_and_op (op, env, param);
407
8.32M
  }
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
533k
  {
406
533k
    OPSET::flush_args_and_op (op, env, param);
407
533k
  }
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
309k
  {
406
309k
    OPSET::flush_args_and_op (op, env, param);
407
309k
  }
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
1.50M
  {
406
1.50M
    OPSET::flush_args_and_op (op, env, param);
407
1.50M
  }
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
5.97M
  {
406
5.97M
    OPSET::flush_args_and_op (op, env, param);
407
5.97M
  }
408
409
  static void flush_args_and_op (op_code_t op, ENV &env, PARAM& param)
410
10.6M
  {
411
10.6M
    OPSET::flush_args (env, param);
412
10.6M
    OPSET::flush_op (op, env, param);
413
10.6M
  }
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
864k
  {
411
864k
    OPSET::flush_args (env, param);
412
864k
    OPSET::flush_op (op, env, param);
413
864k
  }
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
463k
  {
411
463k
    OPSET::flush_args (env, param);
412
463k
    OPSET::flush_op (op, env, param);
413
463k
  }
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
2.06M
  {
411
2.06M
    OPSET::flush_args (env, param);
412
2.06M
    OPSET::flush_op (op, env, param);
413
2.06M
  }
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
7.29M
  {
411
7.29M
    OPSET::flush_args (env, param);
412
7.29M
    OPSET::flush_op (op, env, param);
413
7.29M
  }
414
415
  static void flush_args (ENV &env, PARAM& param)
416
10.6M
  {
417
10.6M
    env.pop_n_args (env.argStack.get_count ());
418
10.6M
  }
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
864k
  {
417
864k
    env.pop_n_args (env.argStack.get_count ());
418
864k
  }
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
463k
  {
417
463k
    env.pop_n_args (env.argStack.get_count ());
418
463k
  }
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
2.06M
  {
417
2.06M
    env.pop_n_args (env.argStack.get_count ());
418
2.06M
  }
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
7.29M
  {
417
7.29M
    env.pop_n_args (env.argStack.get_count ());
418
7.29M
  }
419
420
  static void flush_op (op_code_t op, ENV &env, PARAM& param)
421
10.6M
  {
422
10.6M
  }
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
864k
  {
422
864k
  }
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
463k
  {
422
463k
  }
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
2.06M
  {
422
2.06M
  }
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
7.29M
  {
422
7.29M
  }
423
424
  static void flush_hintmask (op_code_t op, ENV &env, PARAM& param)
425
172k
  {
426
172k
    OPSET::flush_args_and_op (op, env, param);
427
172k
  }
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
30.9k
  {
426
30.9k
    OPSET::flush_args_and_op (op, env, param);
427
30.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
15.7k
  {
426
15.7k
    OPSET::flush_args_and_op (op, env, param);
427
15.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> >::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
73.7k
  {
426
73.7k
    OPSET::flush_args_and_op (op, env, param);
427
73.7k
  }
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
52.3k
  {
426
52.3k
    OPSET::flush_args_and_op (op, env, param);
427
52.3k
  }
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
871k
  {
456
871k
    point_t pt1 = env.get_pt ();
457
871k
    const number_t &dy = env.pop_arg ();
458
871k
    const number_t &dx = env.pop_arg ();
459
871k
    pt1.move (dx, dy);
460
871k
    PATH::moveto (env, param, pt1);
461
871k
  }
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
128k
  {
456
128k
    point_t pt1 = env.get_pt ();
457
128k
    const number_t &dy = env.pop_arg ();
458
128k
    const number_t &dx = env.pop_arg ();
459
128k
    pt1.move (dx, dy);
460
128k
    PATH::moveto (env, param, pt1);
461
128k
  }
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
49.9k
  {
456
49.9k
    point_t pt1 = env.get_pt ();
457
49.9k
    const number_t &dy = env.pop_arg ();
458
49.9k
    const number_t &dx = env.pop_arg ();
459
49.9k
    pt1.move (dx, dy);
460
49.9k
    PATH::moveto (env, param, pt1);
461
49.9k
  }
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
117k
  {
456
117k
    point_t pt1 = env.get_pt ();
457
117k
    const number_t &dy = env.pop_arg ();
458
117k
    const number_t &dx = env.pop_arg ();
459
117k
    pt1.move (dx, dy);
460
117k
    PATH::moveto (env, param, pt1);
461
117k
  }
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
574k
  {
456
574k
    point_t pt1 = env.get_pt ();
457
574k
    const number_t &dy = env.pop_arg ();
458
574k
    const number_t &dx = env.pop_arg ();
459
574k
    pt1.move (dx, dy);
460
574k
    PATH::moveto (env, param, pt1);
461
574k
  }
462
463
  static void hmoveto (ENV &env, PARAM& param)
464
141k
  {
465
141k
    point_t pt1 = env.get_pt ();
466
141k
    pt1.move_x (env.pop_arg ());
467
141k
    PATH::moveto (env, param, pt1);
468
141k
  }
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
27.9k
  {
465
27.9k
    point_t pt1 = env.get_pt ();
466
27.9k
    pt1.move_x (env.pop_arg ());
467
27.9k
    PATH::moveto (env, param, pt1);
468
27.9k
  }
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
9.24k
  {
465
9.24k
    point_t pt1 = env.get_pt ();
466
9.24k
    pt1.move_x (env.pop_arg ());
467
9.24k
    PATH::moveto (env, param, pt1);
468
9.24k
  }
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
53.8k
  {
465
53.8k
    point_t pt1 = env.get_pt ();
466
53.8k
    pt1.move_x (env.pop_arg ());
467
53.8k
    PATH::moveto (env, param, pt1);
468
53.8k
  }
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
50.8k
  {
465
50.8k
    point_t pt1 = env.get_pt ();
466
50.8k
    pt1.move_x (env.pop_arg ());
467
50.8k
    PATH::moveto (env, param, pt1);
468
50.8k
  }
469
470
  static void vmoveto (ENV &env, PARAM& param)
471
173k
  {
472
173k
    point_t pt1 = env.get_pt ();
473
173k
    pt1.move_y (env.pop_arg ());
474
173k
    PATH::moveto (env, param, pt1);
475
173k
  }
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
4.09k
  {
472
4.09k
    point_t pt1 = env.get_pt ();
473
4.09k
    pt1.move_y (env.pop_arg ());
474
4.09k
    PATH::moveto (env, param, pt1);
475
4.09k
  }
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
2.13k
  {
472
2.13k
    point_t pt1 = env.get_pt ();
473
2.13k
    pt1.move_y (env.pop_arg ());
474
2.13k
    PATH::moveto (env, param, pt1);
475
2.13k
  }
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
72.7k
  {
472
72.7k
    point_t pt1 = env.get_pt ();
473
72.7k
    pt1.move_y (env.pop_arg ());
474
72.7k
    PATH::moveto (env, param, pt1);
475
72.7k
  }
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
94.2k
  {
472
94.2k
    point_t pt1 = env.get_pt ();
473
94.2k
    pt1.move_y (env.pop_arg ());
474
94.2k
    PATH::moveto (env, param, pt1);
475
94.2k
  }
476
477
  static void rlineto (ENV &env, PARAM& param)
478
874k
  {
479
2.19M
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
1.31M
    {
481
1.31M
      point_t pt1 = env.get_pt ();
482
1.31M
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
1.31M
      PATH::line (env, param, pt1);
484
1.31M
    }
485
874k
  }
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
121k
  {
479
325k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
204k
    {
481
204k
      point_t pt1 = env.get_pt ();
482
204k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
204k
      PATH::line (env, param, pt1);
484
204k
    }
485
121k
  }
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
46.1k
  {
479
126k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
79.9k
    {
481
79.9k
      point_t pt1 = env.get_pt ();
482
79.9k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
79.9k
      PATH::line (env, param, pt1);
484
79.9k
    }
485
46.1k
  }
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
119k
  {
479
513k
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
394k
    {
481
394k
      point_t pt1 = env.get_pt ();
482
394k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
394k
      PATH::line (env, param, pt1);
484
394k
    }
485
119k
  }
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
587k
  {
479
1.22M
    for (unsigned int i = 0; i + 2 <= env.argStack.get_count (); i += 2)
480
638k
    {
481
638k
      point_t pt1 = env.get_pt ();
482
638k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
483
638k
      PATH::line (env, param, pt1);
484
638k
    }
485
587k
  }
486
487
  static void hlineto (ENV &env, PARAM& param)
488
559k
  {
489
559k
    point_t pt1;
490
559k
    unsigned int i = 0;
491
1.32M
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
761k
    {
493
761k
      pt1 = env.get_pt ();
494
761k
      pt1.move_x (env.eval_arg (i));
495
761k
      PATH::line (env, param, pt1);
496
761k
      pt1.move_y (env.eval_arg (i+1));
497
761k
      PATH::line (env, param, pt1);
498
761k
    }
499
559k
    if (i < env.argStack.get_count ())
500
378k
    {
501
378k
      pt1 = env.get_pt ();
502
378k
      pt1.move_x (env.eval_arg (i));
503
378k
      PATH::line (env, param, pt1);
504
378k
    }
505
559k
  }
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
99.4k
  {
489
99.4k
    point_t pt1;
490
99.4k
    unsigned int i = 0;
491
177k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
77.6k
    {
493
77.6k
      pt1 = env.get_pt ();
494
77.6k
      pt1.move_x (env.eval_arg (i));
495
77.6k
      PATH::line (env, param, pt1);
496
77.6k
      pt1.move_y (env.eval_arg (i+1));
497
77.6k
      PATH::line (env, param, pt1);
498
77.6k
    }
499
99.4k
    if (i < env.argStack.get_count ())
500
70.8k
    {
501
70.8k
      pt1 = env.get_pt ();
502
70.8k
      pt1.move_x (env.eval_arg (i));
503
70.8k
      PATH::line (env, param, pt1);
504
70.8k
    }
505
99.4k
  }
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
45.4k
  {
489
45.4k
    point_t pt1;
490
45.4k
    unsigned int i = 0;
491
80.3k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
34.9k
    {
493
34.9k
      pt1 = env.get_pt ();
494
34.9k
      pt1.move_x (env.eval_arg (i));
495
34.9k
      PATH::line (env, param, pt1);
496
34.9k
      pt1.move_y (env.eval_arg (i+1));
497
34.9k
      PATH::line (env, param, pt1);
498
34.9k
    }
499
45.4k
    if (i < env.argStack.get_count ())
500
28.4k
    {
501
28.4k
      pt1 = env.get_pt ();
502
28.4k
      pt1.move_x (env.eval_arg (i));
503
28.4k
      PATH::line (env, param, pt1);
504
28.4k
    }
505
45.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
164k
  {
489
164k
    point_t pt1;
490
164k
    unsigned int i = 0;
491
555k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
390k
    {
493
390k
      pt1 = env.get_pt ();
494
390k
      pt1.move_x (env.eval_arg (i));
495
390k
      PATH::line (env, param, pt1);
496
390k
      pt1.move_y (env.eval_arg (i+1));
497
390k
      PATH::line (env, param, pt1);
498
390k
    }
499
164k
    if (i < env.argStack.get_count ())
500
77.1k
    {
501
77.1k
      pt1 = env.get_pt ();
502
77.1k
      pt1.move_x (env.eval_arg (i));
503
77.1k
      PATH::line (env, param, pt1);
504
77.1k
    }
505
164k
  }
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
250k
  {
489
250k
    point_t pt1;
490
250k
    unsigned int i = 0;
491
507k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
492
257k
    {
493
257k
      pt1 = env.get_pt ();
494
257k
      pt1.move_x (env.eval_arg (i));
495
257k
      PATH::line (env, param, pt1);
496
257k
      pt1.move_y (env.eval_arg (i+1));
497
257k
      PATH::line (env, param, pt1);
498
257k
    }
499
250k
    if (i < env.argStack.get_count ())
500
201k
    {
501
201k
      pt1 = env.get_pt ();
502
201k
      pt1.move_x (env.eval_arg (i));
503
201k
      PATH::line (env, param, pt1);
504
201k
    }
505
250k
  }
506
507
  static void vlineto (ENV &env, PARAM& param)
508
488k
  {
509
488k
    point_t pt1;
510
488k
    unsigned int i = 0;
511
1.55M
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
1.06M
    {
513
1.06M
      pt1 = env.get_pt ();
514
1.06M
      pt1.move_y (env.eval_arg (i));
515
1.06M
      PATH::line (env, param, pt1);
516
1.06M
      pt1.move_x (env.eval_arg (i+1));
517
1.06M
      PATH::line (env, param, pt1);
518
1.06M
    }
519
488k
    if (i < env.argStack.get_count ())
520
300k
    {
521
300k
      pt1 = env.get_pt ();
522
300k
      pt1.move_y (env.eval_arg (i));
523
300k
      PATH::line (env, param, pt1);
524
300k
    }
525
488k
  }
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
61.3k
  {
509
61.3k
    point_t pt1;
510
61.3k
    unsigned int i = 0;
511
124k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
63.1k
    {
513
63.1k
      pt1 = env.get_pt ();
514
63.1k
      pt1.move_y (env.eval_arg (i));
515
63.1k
      PATH::line (env, param, pt1);
516
63.1k
      pt1.move_x (env.eval_arg (i+1));
517
63.1k
      PATH::line (env, param, pt1);
518
63.1k
    }
519
61.3k
    if (i < env.argStack.get_count ())
520
33.8k
    {
521
33.8k
      pt1 = env.get_pt ();
522
33.8k
      pt1.move_y (env.eval_arg (i));
523
33.8k
      PATH::line (env, param, pt1);
524
33.8k
    }
525
61.3k
  }
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
30.7k
  {
509
30.7k
    point_t pt1;
510
30.7k
    unsigned int i = 0;
511
63.6k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
32.8k
    {
513
32.8k
      pt1 = env.get_pt ();
514
32.8k
      pt1.move_y (env.eval_arg (i));
515
32.8k
      PATH::line (env, param, pt1);
516
32.8k
      pt1.move_x (env.eval_arg (i+1));
517
32.8k
      PATH::line (env, param, pt1);
518
32.8k
    }
519
30.7k
    if (i < env.argStack.get_count ())
520
13.6k
    {
521
13.6k
      pt1 = env.get_pt ();
522
13.6k
      pt1.move_y (env.eval_arg (i));
523
13.6k
      PATH::line (env, param, pt1);
524
13.6k
    }
525
30.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
138k
  {
509
138k
    point_t pt1;
510
138k
    unsigned int i = 0;
511
814k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
675k
    {
513
675k
      pt1 = env.get_pt ();
514
675k
      pt1.move_y (env.eval_arg (i));
515
675k
      PATH::line (env, param, pt1);
516
675k
      pt1.move_x (env.eval_arg (i+1));
517
675k
      PATH::line (env, param, pt1);
518
675k
    }
519
138k
    if (i < env.argStack.get_count ())
520
84.3k
    {
521
84.3k
      pt1 = env.get_pt ();
522
84.3k
      pt1.move_y (env.eval_arg (i));
523
84.3k
      PATH::line (env, param, pt1);
524
84.3k
    }
525
138k
  }
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
257k
  {
509
257k
    point_t pt1;
510
257k
    unsigned int i = 0;
511
555k
    for (; i + 2 <= env.argStack.get_count (); i += 2)
512
298k
    {
513
298k
      pt1 = env.get_pt ();
514
298k
      pt1.move_y (env.eval_arg (i));
515
298k
      PATH::line (env, param, pt1);
516
298k
      pt1.move_x (env.eval_arg (i+1));
517
298k
      PATH::line (env, param, pt1);
518
298k
    }
519
257k
    if (i < env.argStack.get_count ())
520
168k
    {
521
168k
      pt1 = env.get_pt ();
522
168k
      pt1.move_y (env.eval_arg (i));
523
168k
      PATH::line (env, param, pt1);
524
168k
    }
525
257k
  }
526
527
  static void rrcurveto (ENV &env, PARAM& param)
528
1.14M
  {
529
3.42M
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
2.28M
    {
531
2.28M
      point_t pt1 = env.get_pt ();
532
2.28M
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
2.28M
      point_t pt2 = pt1;
534
2.28M
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
2.28M
      point_t pt3 = pt2;
536
2.28M
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
2.28M
      PATH::curve (env, param, pt1, pt2, pt3);
538
2.28M
    }
539
1.14M
  }
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
42.9k
  {
529
131k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
88.4k
    {
531
88.4k
      point_t pt1 = env.get_pt ();
532
88.4k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
88.4k
      point_t pt2 = pt1;
534
88.4k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
88.4k
      point_t pt3 = pt2;
536
88.4k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
88.4k
      PATH::curve (env, param, pt1, pt2, pt3);
538
88.4k
    }
539
42.9k
  }
CFF::path_procs_t<cff1_path_procs_path_t, CFF::cff1_cs_interp_env_t, cff1_path_param_t>::rrcurveto(CFF::cff1_cs_interp_env_t&, cff1_path_param_t&)
Line
Count
Source
528
33.2k
  {
529
100k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
67.6k
    {
531
67.6k
      point_t pt1 = env.get_pt ();
532
67.6k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
67.6k
      point_t pt2 = pt1;
534
67.6k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
67.6k
      point_t pt3 = pt2;
536
67.6k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
67.6k
      PATH::curve (env, param, pt1, pt2, pt3);
538
67.6k
    }
539
33.2k
  }
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
120k
  {
529
391k
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
270k
    {
531
270k
      point_t pt1 = env.get_pt ();
532
270k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
270k
      point_t pt2 = pt1;
534
270k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
270k
      point_t pt3 = pt2;
536
270k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
270k
      PATH::curve (env, param, pt1, pt2, pt3);
538
270k
    }
539
120k
  }
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
949k
  {
529
2.80M
    for (unsigned int i = 0; i + 6 <= env.argStack.get_count (); i += 6)
530
1.85M
    {
531
1.85M
      point_t pt1 = env.get_pt ();
532
1.85M
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
533
1.85M
      point_t pt2 = pt1;
534
1.85M
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
535
1.85M
      point_t pt3 = pt2;
536
1.85M
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
537
1.85M
      PATH::curve (env, param, pt1, pt2, pt3);
538
1.85M
    }
539
949k
  }
540
541
  static void rcurveline (ENV &env, PARAM& param)
542
697k
  {
543
697k
    unsigned int arg_count = env.argStack.get_count ();
544
697k
    if (unlikely (arg_count < 8))
545
156k
      return;
546
547
540k
    unsigned int i = 0;
548
540k
    unsigned int curve_limit = arg_count - 2;
549
1.41M
    for (; i + 6 <= curve_limit; i += 6)
550
870k
    {
551
870k
      point_t pt1 = env.get_pt ();
552
870k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
870k
      point_t pt2 = pt1;
554
870k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
870k
      point_t pt3 = pt2;
556
870k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
870k
      PATH::curve (env, param, pt1, pt2, pt3);
558
870k
    }
559
560
540k
    point_t pt1 = env.get_pt ();
561
540k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
540k
    PATH::line (env, param, pt1);
563
540k
  }
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
27.4k
  {
543
27.4k
    unsigned int arg_count = env.argStack.get_count ();
544
27.4k
    if (unlikely (arg_count < 8))
545
12.9k
      return;
546
547
14.5k
    unsigned int i = 0;
548
14.5k
    unsigned int curve_limit = arg_count - 2;
549
46.6k
    for (; i + 6 <= curve_limit; i += 6)
550
32.1k
    {
551
32.1k
      point_t pt1 = env.get_pt ();
552
32.1k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
32.1k
      point_t pt2 = pt1;
554
32.1k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
32.1k
      point_t pt3 = pt2;
556
32.1k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
32.1k
      PATH::curve (env, param, pt1, pt2, pt3);
558
32.1k
    }
559
560
14.5k
    point_t pt1 = env.get_pt ();
561
14.5k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
14.5k
    PATH::line (env, param, pt1);
563
14.5k
  }
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
21.0k
  {
543
21.0k
    unsigned int arg_count = env.argStack.get_count ();
544
21.0k
    if (unlikely (arg_count < 8))
545
9.23k
      return;
546
547
11.8k
    unsigned int i = 0;
548
11.8k
    unsigned int curve_limit = arg_count - 2;
549
36.6k
    for (; i + 6 <= curve_limit; i += 6)
550
24.8k
    {
551
24.8k
      point_t pt1 = env.get_pt ();
552
24.8k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
24.8k
      point_t pt2 = pt1;
554
24.8k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
24.8k
      point_t pt3 = pt2;
556
24.8k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
24.8k
      PATH::curve (env, param, pt1, pt2, pt3);
558
24.8k
    }
559
560
11.8k
    point_t pt1 = env.get_pt ();
561
11.8k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
11.8k
    PATH::line (env, param, pt1);
563
11.8k
  }
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
143k
  {
543
143k
    unsigned int arg_count = env.argStack.get_count ();
544
143k
    if (unlikely (arg_count < 8))
545
67.8k
      return;
546
547
75.8k
    unsigned int i = 0;
548
75.8k
    unsigned int curve_limit = arg_count - 2;
549
288k
    for (; i + 6 <= curve_limit; i += 6)
550
212k
    {
551
212k
      point_t pt1 = env.get_pt ();
552
212k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
212k
      point_t pt2 = pt1;
554
212k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
212k
      point_t pt3 = pt2;
556
212k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
212k
      PATH::curve (env, param, pt1, pt2, pt3);
558
212k
    }
559
560
75.8k
    point_t pt1 = env.get_pt ();
561
75.8k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
75.8k
    PATH::line (env, param, pt1);
563
75.8k
  }
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
505k
  {
543
505k
    unsigned int arg_count = env.argStack.get_count ();
544
505k
    if (unlikely (arg_count < 8))
545
66.9k
      return;
546
547
438k
    unsigned int i = 0;
548
438k
    unsigned int curve_limit = arg_count - 2;
549
1.03M
    for (; i + 6 <= curve_limit; i += 6)
550
601k
    {
551
601k
      point_t pt1 = env.get_pt ();
552
601k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
553
601k
      point_t pt2 = pt1;
554
601k
      pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
555
601k
      point_t pt3 = pt2;
556
601k
      pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
557
601k
      PATH::curve (env, param, pt1, pt2, pt3);
558
601k
    }
559
560
438k
    point_t pt1 = env.get_pt ();
561
438k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
562
438k
    PATH::line (env, param, pt1);
563
438k
  }
564
565
  static void rlinecurve (ENV &env, PARAM& param)
566
657k
  {
567
657k
    unsigned int arg_count = env.argStack.get_count ();
568
657k
    if (unlikely (arg_count < 8))
569
98.6k
      return;
570
571
559k
    unsigned int i = 0;
572
559k
    unsigned int line_limit = arg_count - 6;
573
1.68M
    for (; i + 2 <= line_limit; i += 2)
574
1.12M
    {
575
1.12M
      point_t pt1 = env.get_pt ();
576
1.12M
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
1.12M
      PATH::line (env, param, pt1);
578
1.12M
    }
579
580
559k
    point_t pt1 = env.get_pt ();
581
559k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
559k
    point_t pt2 = pt1;
583
559k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
559k
    point_t pt3 = pt2;
585
559k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
559k
    PATH::curve (env, param, pt1, pt2, pt3);
587
559k
  }
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
19.1k
  {
567
19.1k
    unsigned int arg_count = env.argStack.get_count ();
568
19.1k
    if (unlikely (arg_count < 8))
569
13.8k
      return;
570
571
5.25k
    unsigned int i = 0;
572
5.25k
    unsigned int line_limit = arg_count - 6;
573
39.9k
    for (; i + 2 <= line_limit; i += 2)
574
34.6k
    {
575
34.6k
      point_t pt1 = env.get_pt ();
576
34.6k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
34.6k
      PATH::line (env, param, pt1);
578
34.6k
    }
579
580
5.25k
    point_t pt1 = env.get_pt ();
581
5.25k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
5.25k
    point_t pt2 = pt1;
583
5.25k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
5.25k
    point_t pt3 = pt2;
585
5.25k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
5.25k
    PATH::curve (env, param, pt1, pt2, pt3);
587
5.25k
  }
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
12.9k
  {
567
12.9k
    unsigned int arg_count = env.argStack.get_count ();
568
12.9k
    if (unlikely (arg_count < 8))
569
10.1k
      return;
570
571
2.86k
    unsigned int i = 0;
572
2.86k
    unsigned int line_limit = arg_count - 6;
573
22.6k
    for (; i + 2 <= line_limit; i += 2)
574
19.7k
    {
575
19.7k
      point_t pt1 = env.get_pt ();
576
19.7k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
19.7k
      PATH::line (env, param, pt1);
578
19.7k
    }
579
580
2.86k
    point_t pt1 = env.get_pt ();
581
2.86k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
2.86k
    point_t pt2 = pt1;
583
2.86k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
2.86k
    point_t pt3 = pt2;
585
2.86k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
2.86k
    PATH::curve (env, param, pt1, pt2, pt3);
587
2.86k
  }
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
107k
  {
567
107k
    unsigned int arg_count = env.argStack.get_count ();
568
107k
    if (unlikely (arg_count < 8))
569
36.2k
      return;
570
571
70.8k
    unsigned int i = 0;
572
70.8k
    unsigned int line_limit = arg_count - 6;
573
411k
    for (; i + 2 <= line_limit; i += 2)
574
340k
    {
575
340k
      point_t pt1 = env.get_pt ();
576
340k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
340k
      PATH::line (env, param, pt1);
578
340k
    }
579
580
70.8k
    point_t pt1 = env.get_pt ();
581
70.8k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
70.8k
    point_t pt2 = pt1;
583
70.8k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
70.8k
    point_t pt3 = pt2;
585
70.8k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
70.8k
    PATH::curve (env, param, pt1, pt2, pt3);
587
70.8k
  }
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
518k
  {
567
518k
    unsigned int arg_count = env.argStack.get_count ();
568
518k
    if (unlikely (arg_count < 8))
569
38.4k
      return;
570
571
480k
    unsigned int i = 0;
572
480k
    unsigned int line_limit = arg_count - 6;
573
1.21M
    for (; i + 2 <= line_limit; i += 2)
574
733k
    {
575
733k
      point_t pt1 = env.get_pt ();
576
733k
      pt1.move (env.eval_arg (i), env.eval_arg (i+1));
577
733k
      PATH::line (env, param, pt1);
578
733k
    }
579
580
480k
    point_t pt1 = env.get_pt ();
581
480k
    pt1.move (env.eval_arg (i), env.eval_arg (i+1));
582
480k
    point_t pt2 = pt1;
583
480k
    pt2.move (env.eval_arg (i+2), env.eval_arg (i+3));
584
480k
    point_t pt3 = pt2;
585
480k
    pt3.move (env.eval_arg (i+4), env.eval_arg (i+5));
586
480k
    PATH::curve (env, param, pt1, pt2, pt3);
587
480k
  }
588
589
  static void vvcurveto (ENV &env, PARAM& param)
590
481k
  {
591
481k
    unsigned int i = 0;
592
481k
    point_t pt1 = env.get_pt ();
593
481k
    if ((env.argStack.get_count () & 1) != 0)
594
345k
      pt1.move_x (env.eval_arg (i++));
595
1.04M
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
561k
    {
597
561k
      pt1.move_y (env.eval_arg (i));
598
561k
      point_t pt2 = pt1;
599
561k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
561k
      point_t pt3 = pt2;
601
561k
      pt3.move_y (env.eval_arg (i+3));
602
561k
      PATH::curve (env, param, pt1, pt2, pt3);
603
561k
      pt1 = env.get_pt ();
604
561k
    }
605
481k
  }
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
27.8k
  {
591
27.8k
    unsigned int i = 0;
592
27.8k
    point_t pt1 = env.get_pt ();
593
27.8k
    if ((env.argStack.get_count () & 1) != 0)
594
11.1k
      pt1.move_x (env.eval_arg (i++));
595
51.2k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
23.4k
    {
597
23.4k
      pt1.move_y (env.eval_arg (i));
598
23.4k
      point_t pt2 = pt1;
599
23.4k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
23.4k
      point_t pt3 = pt2;
601
23.4k
      pt3.move_y (env.eval_arg (i+3));
602
23.4k
      PATH::curve (env, param, pt1, pt2, pt3);
603
23.4k
      pt1 = env.get_pt ();
604
23.4k
    }
605
27.8k
  }
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
17.8k
  {
591
17.8k
    unsigned int i = 0;
592
17.8k
    point_t pt1 = env.get_pt ();
593
17.8k
    if ((env.argStack.get_count () & 1) != 0)
594
7.83k
      pt1.move_x (env.eval_arg (i++));
595
33.9k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
16.1k
    {
597
16.1k
      pt1.move_y (env.eval_arg (i));
598
16.1k
      point_t pt2 = pt1;
599
16.1k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
16.1k
      point_t pt3 = pt2;
601
16.1k
      pt3.move_y (env.eval_arg (i+3));
602
16.1k
      PATH::curve (env, param, pt1, pt2, pt3);
603
16.1k
      pt1 = env.get_pt ();
604
16.1k
    }
605
17.8k
  }
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
69.0k
  {
591
69.0k
    unsigned int i = 0;
592
69.0k
    point_t pt1 = env.get_pt ();
593
69.0k
    if ((env.argStack.get_count () & 1) != 0)
594
20.6k
      pt1.move_x (env.eval_arg (i++));
595
196k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
127k
    {
597
127k
      pt1.move_y (env.eval_arg (i));
598
127k
      point_t pt2 = pt1;
599
127k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
127k
      point_t pt3 = pt2;
601
127k
      pt3.move_y (env.eval_arg (i+3));
602
127k
      PATH::curve (env, param, pt1, pt2, pt3);
603
127k
      pt1 = env.get_pt ();
604
127k
    }
605
69.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
367k
  {
591
367k
    unsigned int i = 0;
592
367k
    point_t pt1 = env.get_pt ();
593
367k
    if ((env.argStack.get_count () & 1) != 0)
594
305k
      pt1.move_x (env.eval_arg (i++));
595
762k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
596
394k
    {
597
394k
      pt1.move_y (env.eval_arg (i));
598
394k
      point_t pt2 = pt1;
599
394k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
600
394k
      point_t pt3 = pt2;
601
394k
      pt3.move_y (env.eval_arg (i+3));
602
394k
      PATH::curve (env, param, pt1, pt2, pt3);
603
394k
      pt1 = env.get_pt ();
604
394k
    }
605
367k
  }
606
607
  static void hhcurveto (ENV &env, PARAM& param)
608
1.22M
  {
609
1.22M
    unsigned int i = 0;
610
1.22M
    point_t pt1 = env.get_pt ();
611
1.22M
    if ((env.argStack.get_count () & 1) != 0)
612
959k
      pt1.move_y (env.eval_arg (i++));
613
2.70M
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
1.47M
    {
615
1.47M
      pt1.move_x (env.eval_arg (i));
616
1.47M
      point_t pt2 = pt1;
617
1.47M
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
1.47M
      point_t pt3 = pt2;
619
1.47M
      pt3.move_x (env.eval_arg (i+3));
620
1.47M
      PATH::curve (env, param, pt1, pt2, pt3);
621
1.47M
      pt1 = env.get_pt ();
622
1.47M
    }
623
1.22M
  }
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
43.9k
  {
609
43.9k
    unsigned int i = 0;
610
43.9k
    point_t pt1 = env.get_pt ();
611
43.9k
    if ((env.argStack.get_count () & 1) != 0)
612
25.5k
      pt1.move_y (env.eval_arg (i++));
613
96.8k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
52.8k
    {
615
52.8k
      pt1.move_x (env.eval_arg (i));
616
52.8k
      point_t pt2 = pt1;
617
52.8k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
52.8k
      point_t pt3 = pt2;
619
52.8k
      pt3.move_x (env.eval_arg (i+3));
620
52.8k
      PATH::curve (env, param, pt1, pt2, pt3);
621
52.8k
      pt1 = env.get_pt ();
622
52.8k
    }
623
43.9k
  }
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
35.1k
  {
609
35.1k
    unsigned int i = 0;
610
35.1k
    point_t pt1 = env.get_pt ();
611
35.1k
    if ((env.argStack.get_count () & 1) != 0)
612
20.8k
      pt1.move_y (env.eval_arg (i++));
613
77.4k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
42.3k
    {
615
42.3k
      pt1.move_x (env.eval_arg (i));
616
42.3k
      point_t pt2 = pt1;
617
42.3k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
42.3k
      point_t pt3 = pt2;
619
42.3k
      pt3.move_x (env.eval_arg (i+3));
620
42.3k
      PATH::curve (env, param, pt1, pt2, pt3);
621
42.3k
      pt1 = env.get_pt ();
622
42.3k
    }
623
35.1k
  }
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
110k
  {
609
110k
    unsigned int i = 0;
610
110k
    point_t pt1 = env.get_pt ();
611
110k
    if ((env.argStack.get_count () & 1) != 0)
612
69.2k
      pt1.move_y (env.eval_arg (i++));
613
270k
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
160k
    {
615
160k
      pt1.move_x (env.eval_arg (i));
616
160k
      point_t pt2 = pt1;
617
160k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
160k
      point_t pt3 = pt2;
619
160k
      pt3.move_x (env.eval_arg (i+3));
620
160k
      PATH::curve (env, param, pt1, pt2, pt3);
621
160k
      pt1 = env.get_pt ();
622
160k
    }
623
110k
  }
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
1.03M
  {
609
1.03M
    unsigned int i = 0;
610
1.03M
    point_t pt1 = env.get_pt ();
611
1.03M
    if ((env.argStack.get_count () & 1) != 0)
612
843k
      pt1.move_y (env.eval_arg (i++));
613
2.25M
    for (; i + 4 <= env.argStack.get_count (); i += 4)
614
1.22M
    {
615
1.22M
      pt1.move_x (env.eval_arg (i));
616
1.22M
      point_t pt2 = pt1;
617
1.22M
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
618
1.22M
      point_t pt3 = pt2;
619
1.22M
      pt3.move_x (env.eval_arg (i+3));
620
1.22M
      PATH::curve (env, param, pt1, pt2, pt3);
621
1.22M
      pt1 = env.get_pt ();
622
1.22M
    }
623
1.03M
  }
624
625
  static void vhcurveto (ENV &env, PARAM& param)
626
891k
  {
627
891k
    point_t pt1, pt2, pt3;
628
891k
    unsigned int i = 0;
629
891k
    if ((env.argStack.get_count () % 8) >= 4)
630
548k
    {
631
548k
      point_t pt1 = env.get_pt ();
632
548k
      pt1.move_y (env.eval_arg (i));
633
548k
      point_t pt2 = pt1;
634
548k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
548k
      point_t pt3 = pt2;
636
548k
      pt3.move_x (env.eval_arg (i+3));
637
548k
      i += 4;
638
639
639k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
91.0k
      {
641
91.0k
  PATH::curve (env, param, pt1, pt2, pt3);
642
91.0k
  pt1 = env.get_pt ();
643
91.0k
  pt1.move_x (env.eval_arg (i));
644
91.0k
  pt2 = pt1;
645
91.0k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
91.0k
  pt3 = pt2;
647
91.0k
  pt3.move_y (env.eval_arg (i+3));
648
91.0k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
91.0k
  pt1 = pt3;
651
91.0k
  pt1.move_y (env.eval_arg (i+4));
652
91.0k
  pt2 = pt1;
653
91.0k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
91.0k
  pt3 = pt2;
655
91.0k
  pt3.move_x (env.eval_arg (i+7));
656
91.0k
      }
657
548k
      if (i < env.argStack.get_count ())
658
391k
  pt3.move_y (env.eval_arg (i));
659
548k
      PATH::curve (env, param, pt1, pt2, pt3);
660
548k
    }
661
342k
    else
662
342k
    {
663
473k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
130k
      {
665
130k
  pt1 = env.get_pt ();
666
130k
  pt1.move_y (env.eval_arg (i));
667
130k
  pt2 = pt1;
668
130k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
130k
  pt3 = pt2;
670
130k
  pt3.move_x (env.eval_arg (i+3));
671
130k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
130k
  pt1 = pt3;
674
130k
  pt1.move_x (env.eval_arg (i+4));
675
130k
  pt2 = pt1;
676
130k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
130k
  pt3 = pt2;
678
130k
  pt3.move_y (env.eval_arg (i+7));
679
130k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
30.8k
    pt3.move_x (env.eval_arg (i+8));
681
130k
  PATH::curve (env, param, pt1, pt2, pt3);
682
130k
      }
683
342k
    }
684
891k
  }
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
42.2k
  {
627
42.2k
    point_t pt1, pt2, pt3;
628
42.2k
    unsigned int i = 0;
629
42.2k
    if ((env.argStack.get_count () % 8) >= 4)
630
20.5k
    {
631
20.5k
      point_t pt1 = env.get_pt ();
632
20.5k
      pt1.move_y (env.eval_arg (i));
633
20.5k
      point_t pt2 = pt1;
634
20.5k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
20.5k
      point_t pt3 = pt2;
636
20.5k
      pt3.move_x (env.eval_arg (i+3));
637
20.5k
      i += 4;
638
639
28.9k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
8.39k
      {
641
8.39k
  PATH::curve (env, param, pt1, pt2, pt3);
642
8.39k
  pt1 = env.get_pt ();
643
8.39k
  pt1.move_x (env.eval_arg (i));
644
8.39k
  pt2 = pt1;
645
8.39k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
8.39k
  pt3 = pt2;
647
8.39k
  pt3.move_y (env.eval_arg (i+3));
648
8.39k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
8.39k
  pt1 = pt3;
651
8.39k
  pt1.move_y (env.eval_arg (i+4));
652
8.39k
  pt2 = pt1;
653
8.39k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
8.39k
  pt3 = pt2;
655
8.39k
  pt3.move_x (env.eval_arg (i+7));
656
8.39k
      }
657
20.5k
      if (i < env.argStack.get_count ())
658
17.3k
  pt3.move_y (env.eval_arg (i));
659
20.5k
      PATH::curve (env, param, pt1, pt2, pt3);
660
20.5k
    }
661
21.7k
    else
662
21.7k
    {
663
34.8k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
13.1k
      {
665
13.1k
  pt1 = env.get_pt ();
666
13.1k
  pt1.move_y (env.eval_arg (i));
667
13.1k
  pt2 = pt1;
668
13.1k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
13.1k
  pt3 = pt2;
670
13.1k
  pt3.move_x (env.eval_arg (i+3));
671
13.1k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
13.1k
  pt1 = pt3;
674
13.1k
  pt1.move_x (env.eval_arg (i+4));
675
13.1k
  pt2 = pt1;
676
13.1k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
13.1k
  pt3 = pt2;
678
13.1k
  pt3.move_y (env.eval_arg (i+7));
679
13.1k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
4.51k
    pt3.move_x (env.eval_arg (i+8));
681
13.1k
  PATH::curve (env, param, pt1, pt2, pt3);
682
13.1k
      }
683
21.7k
    }
684
42.2k
  }
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
32.6k
  {
627
32.6k
    point_t pt1, pt2, pt3;
628
32.6k
    unsigned int i = 0;
629
32.6k
    if ((env.argStack.get_count () % 8) >= 4)
630
15.8k
    {
631
15.8k
      point_t pt1 = env.get_pt ();
632
15.8k
      pt1.move_y (env.eval_arg (i));
633
15.8k
      point_t pt2 = pt1;
634
15.8k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
15.8k
      point_t pt3 = pt2;
636
15.8k
      pt3.move_x (env.eval_arg (i+3));
637
15.8k
      i += 4;
638
639
21.0k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
5.21k
      {
641
5.21k
  PATH::curve (env, param, pt1, pt2, pt3);
642
5.21k
  pt1 = env.get_pt ();
643
5.21k
  pt1.move_x (env.eval_arg (i));
644
5.21k
  pt2 = pt1;
645
5.21k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
5.21k
  pt3 = pt2;
647
5.21k
  pt3.move_y (env.eval_arg (i+3));
648
5.21k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
5.21k
  pt1 = pt3;
651
5.21k
  pt1.move_y (env.eval_arg (i+4));
652
5.21k
  pt2 = pt1;
653
5.21k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
5.21k
  pt3 = pt2;
655
5.21k
  pt3.move_x (env.eval_arg (i+7));
656
5.21k
      }
657
15.8k
      if (i < env.argStack.get_count ())
658
14.0k
  pt3.move_y (env.eval_arg (i));
659
15.8k
      PATH::curve (env, param, pt1, pt2, pt3);
660
15.8k
    }
661
16.8k
    else
662
16.8k
    {
663
27.3k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
10.4k
      {
665
10.4k
  pt1 = env.get_pt ();
666
10.4k
  pt1.move_y (env.eval_arg (i));
667
10.4k
  pt2 = pt1;
668
10.4k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
10.4k
  pt3 = pt2;
670
10.4k
  pt3.move_x (env.eval_arg (i+3));
671
10.4k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
10.4k
  pt1 = pt3;
674
10.4k
  pt1.move_x (env.eval_arg (i+4));
675
10.4k
  pt2 = pt1;
676
10.4k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
10.4k
  pt3 = pt2;
678
10.4k
  pt3.move_y (env.eval_arg (i+7));
679
10.4k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
4.01k
    pt3.move_x (env.eval_arg (i+8));
681
10.4k
  PATH::curve (env, param, pt1, pt2, pt3);
682
10.4k
      }
683
16.8k
    }
684
32.6k
  }
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
236k
  {
627
236k
    point_t pt1, pt2, pt3;
628
236k
    unsigned int i = 0;
629
236k
    if ((env.argStack.get_count () % 8) >= 4)
630
55.2k
    {
631
55.2k
      point_t pt1 = env.get_pt ();
632
55.2k
      pt1.move_y (env.eval_arg (i));
633
55.2k
      point_t pt2 = pt1;
634
55.2k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
55.2k
      point_t pt3 = pt2;
636
55.2k
      pt3.move_x (env.eval_arg (i+3));
637
55.2k
      i += 4;
638
639
105k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
50.2k
      {
641
50.2k
  PATH::curve (env, param, pt1, pt2, pt3);
642
50.2k
  pt1 = env.get_pt ();
643
50.2k
  pt1.move_x (env.eval_arg (i));
644
50.2k
  pt2 = pt1;
645
50.2k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
50.2k
  pt3 = pt2;
647
50.2k
  pt3.move_y (env.eval_arg (i+3));
648
50.2k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
50.2k
  pt1 = pt3;
651
50.2k
  pt1.move_y (env.eval_arg (i+4));
652
50.2k
  pt2 = pt1;
653
50.2k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
50.2k
  pt3 = pt2;
655
50.2k
  pt3.move_x (env.eval_arg (i+7));
656
50.2k
      }
657
55.2k
      if (i < env.argStack.get_count ())
658
30.7k
  pt3.move_y (env.eval_arg (i));
659
55.2k
      PATH::curve (env, param, pt1, pt2, pt3);
660
55.2k
    }
661
181k
    else
662
181k
    {
663
244k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
63.5k
      {
665
63.5k
  pt1 = env.get_pt ();
666
63.5k
  pt1.move_y (env.eval_arg (i));
667
63.5k
  pt2 = pt1;
668
63.5k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
63.5k
  pt3 = pt2;
670
63.5k
  pt3.move_x (env.eval_arg (i+3));
671
63.5k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
63.5k
  pt1 = pt3;
674
63.5k
  pt1.move_x (env.eval_arg (i+4));
675
63.5k
  pt2 = pt1;
676
63.5k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
63.5k
  pt3 = pt2;
678
63.5k
  pt3.move_y (env.eval_arg (i+7));
679
63.5k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
12.5k
    pt3.move_x (env.eval_arg (i+8));
681
63.5k
  PATH::curve (env, param, pt1, pt2, pt3);
682
63.5k
      }
683
181k
    }
684
236k
  }
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
579k
  {
627
579k
    point_t pt1, pt2, pt3;
628
579k
    unsigned int i = 0;
629
579k
    if ((env.argStack.get_count () % 8) >= 4)
630
456k
    {
631
456k
      point_t pt1 = env.get_pt ();
632
456k
      pt1.move_y (env.eval_arg (i));
633
456k
      point_t pt2 = pt1;
634
456k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
635
456k
      point_t pt3 = pt2;
636
456k
      pt3.move_x (env.eval_arg (i+3));
637
456k
      i += 4;
638
639
483k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
640
27.1k
      {
641
27.1k
  PATH::curve (env, param, pt1, pt2, pt3);
642
27.1k
  pt1 = env.get_pt ();
643
27.1k
  pt1.move_x (env.eval_arg (i));
644
27.1k
  pt2 = pt1;
645
27.1k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
646
27.1k
  pt3 = pt2;
647
27.1k
  pt3.move_y (env.eval_arg (i+3));
648
27.1k
  PATH::curve (env, param, pt1, pt2, pt3);
649
650
27.1k
  pt1 = pt3;
651
27.1k
  pt1.move_y (env.eval_arg (i+4));
652
27.1k
  pt2 = pt1;
653
27.1k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
654
27.1k
  pt3 = pt2;
655
27.1k
  pt3.move_x (env.eval_arg (i+7));
656
27.1k
      }
657
456k
      if (i < env.argStack.get_count ())
658
328k
  pt3.move_y (env.eval_arg (i));
659
456k
      PATH::curve (env, param, pt1, pt2, pt3);
660
456k
    }
661
122k
    else
662
122k
    {
663
166k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
664
43.4k
      {
665
43.4k
  pt1 = env.get_pt ();
666
43.4k
  pt1.move_y (env.eval_arg (i));
667
43.4k
  pt2 = pt1;
668
43.4k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
669
43.4k
  pt3 = pt2;
670
43.4k
  pt3.move_x (env.eval_arg (i+3));
671
43.4k
  PATH::curve (env, param, pt1, pt2, pt3);
672
673
43.4k
  pt1 = pt3;
674
43.4k
  pt1.move_x (env.eval_arg (i+4));
675
43.4k
  pt2 = pt1;
676
43.4k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
677
43.4k
  pt3 = pt2;
678
43.4k
  pt3.move_y (env.eval_arg (i+7));
679
43.4k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
680
9.70k
    pt3.move_x (env.eval_arg (i+8));
681
43.4k
  PATH::curve (env, param, pt1, pt2, pt3);
682
43.4k
      }
683
122k
    }
684
579k
  }
685
686
  static void hvcurveto (ENV &env, PARAM& param)
687
1.29M
  {
688
1.29M
    point_t pt1, pt2, pt3;
689
1.29M
    unsigned int i = 0;
690
1.29M
    if ((env.argStack.get_count () % 8) >= 4)
691
1.03M
    {
692
1.03M
      point_t pt1 = env.get_pt ();
693
1.03M
      pt1.move_x (env.eval_arg (i));
694
1.03M
      point_t pt2 = pt1;
695
1.03M
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
1.03M
      point_t pt3 = pt2;
697
1.03M
      pt3.move_y (env.eval_arg (i+3));
698
1.03M
      i += 4;
699
700
1.57M
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
536k
      {
702
536k
  PATH::curve (env, param, pt1, pt2, pt3);
703
536k
  pt1 = env.get_pt ();
704
536k
  pt1.move_y (env.eval_arg (i));
705
536k
  pt2 = pt1;
706
536k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
536k
  pt3 = pt2;
708
536k
  pt3.move_x (env.eval_arg (i+3));
709
536k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
536k
  pt1 = pt3;
712
536k
  pt1.move_x (env.eval_arg (i+4));
713
536k
  pt2 = pt1;
714
536k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
536k
  pt3 = pt2;
716
536k
  pt3.move_y (env.eval_arg (i+7));
717
536k
      }
718
1.03M
      if (i < env.argStack.get_count ())
719
910k
  pt3.move_x (env.eval_arg (i));
720
1.03M
      PATH::curve (env, param, pt1, pt2, pt3);
721
1.03M
    }
722
261k
    else
723
261k
    {
724
625k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
364k
      {
726
364k
  pt1 = env.get_pt ();
727
364k
  pt1.move_x (env.eval_arg (i));
728
364k
  pt2 = pt1;
729
364k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
364k
  pt3 = pt2;
731
364k
  pt3.move_y (env.eval_arg (i+3));
732
364k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
364k
  pt1 = pt3;
735
364k
  pt1.move_y (env.eval_arg (i+4));
736
364k
  pt2 = pt1;
737
364k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
364k
  pt3 = pt2;
739
364k
  pt3.move_x (env.eval_arg (i+7));
740
364k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
81.7k
    pt3.move_y (env.eval_arg (i+8));
742
364k
  PATH::curve (env, param, pt1, pt2, pt3);
743
364k
      }
744
261k
    }
745
1.29M
  }
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
47.8k
  {
688
47.8k
    point_t pt1, pt2, pt3;
689
47.8k
    unsigned int i = 0;
690
47.8k
    if ((env.argStack.get_count () % 8) >= 4)
691
23.3k
    {
692
23.3k
      point_t pt1 = env.get_pt ();
693
23.3k
      pt1.move_x (env.eval_arg (i));
694
23.3k
      point_t pt2 = pt1;
695
23.3k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
23.3k
      point_t pt3 = pt2;
697
23.3k
      pt3.move_y (env.eval_arg (i+3));
698
23.3k
      i += 4;
699
700
35.3k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
12.0k
      {
702
12.0k
  PATH::curve (env, param, pt1, pt2, pt3);
703
12.0k
  pt1 = env.get_pt ();
704
12.0k
  pt1.move_y (env.eval_arg (i));
705
12.0k
  pt2 = pt1;
706
12.0k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
12.0k
  pt3 = pt2;
708
12.0k
  pt3.move_x (env.eval_arg (i+3));
709
12.0k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
12.0k
  pt1 = pt3;
712
12.0k
  pt1.move_x (env.eval_arg (i+4));
713
12.0k
  pt2 = pt1;
714
12.0k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
12.0k
  pt3 = pt2;
716
12.0k
  pt3.move_y (env.eval_arg (i+7));
717
12.0k
      }
718
23.3k
      if (i < env.argStack.get_count ())
719
18.7k
  pt3.move_x (env.eval_arg (i));
720
23.3k
      PATH::curve (env, param, pt1, pt2, pt3);
721
23.3k
    }
722
24.5k
    else
723
24.5k
    {
724
41.9k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
17.4k
      {
726
17.4k
  pt1 = env.get_pt ();
727
17.4k
  pt1.move_x (env.eval_arg (i));
728
17.4k
  pt2 = pt1;
729
17.4k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
17.4k
  pt3 = pt2;
731
17.4k
  pt3.move_y (env.eval_arg (i+3));
732
17.4k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
17.4k
  pt1 = pt3;
735
17.4k
  pt1.move_y (env.eval_arg (i+4));
736
17.4k
  pt2 = pt1;
737
17.4k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
17.4k
  pt3 = pt2;
739
17.4k
  pt3.move_x (env.eval_arg (i+7));
740
17.4k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
3.09k
    pt3.move_y (env.eval_arg (i+8));
742
17.4k
  PATH::curve (env, param, pt1, pt2, pt3);
743
17.4k
      }
744
24.5k
    }
745
47.8k
  }
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
34.1k
  {
688
34.1k
    point_t pt1, pt2, pt3;
689
34.1k
    unsigned int i = 0;
690
34.1k
    if ((env.argStack.get_count () % 8) >= 4)
691
17.7k
    {
692
17.7k
      point_t pt1 = env.get_pt ();
693
17.7k
      pt1.move_x (env.eval_arg (i));
694
17.7k
      point_t pt2 = pt1;
695
17.7k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
17.7k
      point_t pt3 = pt2;
697
17.7k
      pt3.move_y (env.eval_arg (i+3));
698
17.7k
      i += 4;
699
700
26.7k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
9.02k
      {
702
9.02k
  PATH::curve (env, param, pt1, pt2, pt3);
703
9.02k
  pt1 = env.get_pt ();
704
9.02k
  pt1.move_y (env.eval_arg (i));
705
9.02k
  pt2 = pt1;
706
9.02k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
9.02k
  pt3 = pt2;
708
9.02k
  pt3.move_x (env.eval_arg (i+3));
709
9.02k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
9.02k
  pt1 = pt3;
712
9.02k
  pt1.move_x (env.eval_arg (i+4));
713
9.02k
  pt2 = pt1;
714
9.02k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
9.02k
  pt3 = pt2;
716
9.02k
  pt3.move_y (env.eval_arg (i+7));
717
9.02k
      }
718
17.7k
      if (i < env.argStack.get_count ())
719
14.9k
  pt3.move_x (env.eval_arg (i));
720
17.7k
      PATH::curve (env, param, pt1, pt2, pt3);
721
17.7k
    }
722
16.3k
    else
723
16.3k
    {
724
25.1k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
8.85k
      {
726
8.85k
  pt1 = env.get_pt ();
727
8.85k
  pt1.move_x (env.eval_arg (i));
728
8.85k
  pt2 = pt1;
729
8.85k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
8.85k
  pt3 = pt2;
731
8.85k
  pt3.move_y (env.eval_arg (i+3));
732
8.85k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
8.85k
  pt1 = pt3;
735
8.85k
  pt1.move_y (env.eval_arg (i+4));
736
8.85k
  pt2 = pt1;
737
8.85k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
8.85k
  pt3 = pt2;
739
8.85k
  pt3.move_x (env.eval_arg (i+7));
740
8.85k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
1.44k
    pt3.move_y (env.eval_arg (i+8));
742
8.85k
  PATH::curve (env, param, pt1, pt2, pt3);
743
8.85k
      }
744
16.3k
    }
745
34.1k
  }
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
293k
  {
688
293k
    point_t pt1, pt2, pt3;
689
293k
    unsigned int i = 0;
690
293k
    if ((env.argStack.get_count () % 8) >= 4)
691
158k
    {
692
158k
      point_t pt1 = env.get_pt ();
693
158k
      pt1.move_x (env.eval_arg (i));
694
158k
      point_t pt2 = pt1;
695
158k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
158k
      point_t pt3 = pt2;
697
158k
      pt3.move_y (env.eval_arg (i+3));
698
158k
      i += 4;
699
700
483k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
325k
      {
702
325k
  PATH::curve (env, param, pt1, pt2, pt3);
703
325k
  pt1 = env.get_pt ();
704
325k
  pt1.move_y (env.eval_arg (i));
705
325k
  pt2 = pt1;
706
325k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
325k
  pt3 = pt2;
708
325k
  pt3.move_x (env.eval_arg (i+3));
709
325k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
325k
  pt1 = pt3;
712
325k
  pt1.move_x (env.eval_arg (i+4));
713
325k
  pt2 = pt1;
714
325k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
325k
  pt3 = pt2;
716
325k
  pt3.move_y (env.eval_arg (i+7));
717
325k
      }
718
158k
      if (i < env.argStack.get_count ())
719
118k
  pt3.move_x (env.eval_arg (i));
720
158k
      PATH::curve (env, param, pt1, pt2, pt3);
721
158k
    }
722
135k
    else
723
135k
    {
724
337k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
201k
      {
726
201k
  pt1 = env.get_pt ();
727
201k
  pt1.move_x (env.eval_arg (i));
728
201k
  pt2 = pt1;
729
201k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
201k
  pt3 = pt2;
731
201k
  pt3.move_y (env.eval_arg (i+3));
732
201k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
201k
  pt1 = pt3;
735
201k
  pt1.move_y (env.eval_arg (i+4));
736
201k
  pt2 = pt1;
737
201k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
201k
  pt3 = pt2;
739
201k
  pt3.move_x (env.eval_arg (i+7));
740
201k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
39.1k
    pt3.move_y (env.eval_arg (i+8));
742
201k
  PATH::curve (env, param, pt1, pt2, pt3);
743
201k
      }
744
135k
    }
745
293k
  }
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
924k
  {
688
924k
    point_t pt1, pt2, pt3;
689
924k
    unsigned int i = 0;
690
924k
    if ((env.argStack.get_count () % 8) >= 4)
691
839k
    {
692
839k
      point_t pt1 = env.get_pt ();
693
839k
      pt1.move_x (env.eval_arg (i));
694
839k
      point_t pt2 = pt1;
695
839k
      pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
696
839k
      point_t pt3 = pt2;
697
839k
      pt3.move_y (env.eval_arg (i+3));
698
839k
      i += 4;
699
700
1.02M
      for (; i + 8 <= env.argStack.get_count (); i += 8)
701
190k
      {
702
190k
  PATH::curve (env, param, pt1, pt2, pt3);
703
190k
  pt1 = env.get_pt ();
704
190k
  pt1.move_y (env.eval_arg (i));
705
190k
  pt2 = pt1;
706
190k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
707
190k
  pt3 = pt2;
708
190k
  pt3.move_x (env.eval_arg (i+3));
709
190k
  PATH::curve (env, param, pt1, pt2, pt3);
710
711
190k
  pt1 = pt3;
712
190k
  pt1.move_x (env.eval_arg (i+4));
713
190k
  pt2 = pt1;
714
190k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
715
190k
  pt3 = pt2;
716
190k
  pt3.move_y (env.eval_arg (i+7));
717
190k
      }
718
839k
      if (i < env.argStack.get_count ())
719
758k
  pt3.move_x (env.eval_arg (i));
720
839k
      PATH::curve (env, param, pt1, pt2, pt3);
721
839k
    }
722
84.9k
    else
723
84.9k
    {
724
221k
      for (; i + 8 <= env.argStack.get_count (); i += 8)
725
136k
      {
726
136k
  pt1 = env.get_pt ();
727
136k
  pt1.move_x (env.eval_arg (i));
728
136k
  pt2 = pt1;
729
136k
  pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
730
136k
  pt3 = pt2;
731
136k
  pt3.move_y (env.eval_arg (i+3));
732
136k
  PATH::curve (env, param, pt1, pt2, pt3);
733
734
136k
  pt1 = pt3;
735
136k
  pt1.move_y (env.eval_arg (i+4));
736
136k
  pt2 = pt1;
737
136k
  pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
738
136k
  pt3 = pt2;
739
136k
  pt3.move_x (env.eval_arg (i+7));
740
136k
  if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
741
38.0k
    pt3.move_y (env.eval_arg (i+8));
742
136k
  PATH::curve (env, param, pt1, pt2, pt3);
743
136k
      }
744
84.9k
    }
745
924k
  }
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
2.46k
  {
759
2.46k
    if (likely (env.argStack.get_count () == 7))
760
814
    {
761
814
      point_t pt1 = env.get_pt ();
762
814
      pt1.move_x (env.eval_arg (0));
763
814
      point_t pt2 = pt1;
764
814
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
814
      point_t pt3 = pt2;
766
814
      pt3.move_x (env.eval_arg (3));
767
814
      point_t pt4 = pt3;
768
814
      pt4.move_x (env.eval_arg (4));
769
814
      point_t pt5 = pt4;
770
814
      pt5.move_x (env.eval_arg (5));
771
814
      pt5.y = pt1.y;
772
814
      point_t pt6 = pt5;
773
814
      pt6.move_x (env.eval_arg (6));
774
775
814
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
814
    }
777
1.65k
    else
778
1.65k
      env.set_error ();
779
2.46k
  }
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
54
  {
759
54
    if (likely (env.argStack.get_count () == 7))
760
0
    {
761
0
      point_t pt1 = env.get_pt ();
762
0
      pt1.move_x (env.eval_arg (0));
763
0
      point_t pt2 = pt1;
764
0
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
0
      point_t pt3 = pt2;
766
0
      pt3.move_x (env.eval_arg (3));
767
0
      point_t pt4 = pt3;
768
0
      pt4.move_x (env.eval_arg (4));
769
0
      point_t pt5 = pt4;
770
0
      pt5.move_x (env.eval_arg (5));
771
0
      pt5.y = pt1.y;
772
0
      point_t pt6 = pt5;
773
0
      pt6.move_x (env.eval_arg (6));
774
775
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
0
    }
777
54
    else
778
54
      env.set_error ();
779
54
  }
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
12
  {
759
12
    if (likely (env.argStack.get_count () == 7))
760
0
    {
761
0
      point_t pt1 = env.get_pt ();
762
0
      pt1.move_x (env.eval_arg (0));
763
0
      point_t pt2 = pt1;
764
0
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
0
      point_t pt3 = pt2;
766
0
      pt3.move_x (env.eval_arg (3));
767
0
      point_t pt4 = pt3;
768
0
      pt4.move_x (env.eval_arg (4));
769
0
      point_t pt5 = pt4;
770
0
      pt5.move_x (env.eval_arg (5));
771
0
      pt5.y = pt1.y;
772
0
      point_t pt6 = pt5;
773
0
      pt6.move_x (env.eval_arg (6));
774
775
0
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
0
    }
777
12
    else
778
12
      env.set_error ();
779
12
  }
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
664
  {
759
664
    if (likely (env.argStack.get_count () == 7))
760
515
    {
761
515
      point_t pt1 = env.get_pt ();
762
515
      pt1.move_x (env.eval_arg (0));
763
515
      point_t pt2 = pt1;
764
515
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
515
      point_t pt3 = pt2;
766
515
      pt3.move_x (env.eval_arg (3));
767
515
      point_t pt4 = pt3;
768
515
      pt4.move_x (env.eval_arg (4));
769
515
      point_t pt5 = pt4;
770
515
      pt5.move_x (env.eval_arg (5));
771
515
      pt5.y = pt1.y;
772
515
      point_t pt6 = pt5;
773
515
      pt6.move_x (env.eval_arg (6));
774
775
515
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
515
    }
777
149
    else
778
149
      env.set_error ();
779
664
  }
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.73k
  {
759
1.73k
    if (likely (env.argStack.get_count () == 7))
760
299
    {
761
299
      point_t pt1 = env.get_pt ();
762
299
      pt1.move_x (env.eval_arg (0));
763
299
      point_t pt2 = pt1;
764
299
      pt2.move (env.eval_arg (1), env.eval_arg (2));
765
299
      point_t pt3 = pt2;
766
299
      pt3.move_x (env.eval_arg (3));
767
299
      point_t pt4 = pt3;
768
299
      pt4.move_x (env.eval_arg (4));
769
299
      point_t pt5 = pt4;
770
299
      pt5.move_x (env.eval_arg (5));
771
299
      pt5.y = pt1.y;
772
299
      point_t pt6 = pt5;
773
299
      pt6.move_x (env.eval_arg (6));
774
775
299
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
776
299
    }
777
1.43k
    else
778
1.43k
      env.set_error ();
779
1.73k
  }
780
781
  static void flex (ENV &env, PARAM& param)
782
1.57k
  {
783
1.57k
    if (likely (env.argStack.get_count () == 13))
784
169
    {
785
169
      point_t pt1 = env.get_pt ();
786
169
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
169
      point_t pt2 = pt1;
788
169
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
169
      point_t pt3 = pt2;
790
169
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
169
      point_t pt4 = pt3;
792
169
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
169
      point_t pt5 = pt4;
794
169
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
169
      point_t pt6 = pt5;
796
169
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
169
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
169
    }
800
1.40k
    else
801
1.40k
      env.set_error ();
802
1.57k
  }
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
118
  {
783
118
    if (likely (env.argStack.get_count () == 13))
784
31
    {
785
31
      point_t pt1 = env.get_pt ();
786
31
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
31
      point_t pt2 = pt1;
788
31
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
31
      point_t pt3 = pt2;
790
31
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
31
      point_t pt4 = pt3;
792
31
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
31
      point_t pt5 = pt4;
794
31
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
31
      point_t pt6 = pt5;
796
31
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
31
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
31
    }
800
87
    else
801
87
      env.set_error ();
802
118
  }
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
52
  {
783
52
    if (likely (env.argStack.get_count () == 13))
784
25
    {
785
25
      point_t pt1 = env.get_pt ();
786
25
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
25
      point_t pt2 = pt1;
788
25
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
25
      point_t pt3 = pt2;
790
25
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
25
      point_t pt4 = pt3;
792
25
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
25
      point_t pt5 = pt4;
794
25
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
25
      point_t pt6 = pt5;
796
25
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
25
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
25
    }
800
27
    else
801
27
      env.set_error ();
802
52
  }
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
171
  {
783
171
    if (likely (env.argStack.get_count () == 13))
784
73
    {
785
73
      point_t pt1 = env.get_pt ();
786
73
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
73
      point_t pt2 = pt1;
788
73
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
73
      point_t pt3 = pt2;
790
73
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
73
      point_t pt4 = pt3;
792
73
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
73
      point_t pt5 = pt4;
794
73
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
73
      point_t pt6 = pt5;
796
73
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
73
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
73
    }
800
98
    else
801
98
      env.set_error ();
802
171
  }
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
1.23k
  {
783
1.23k
    if (likely (env.argStack.get_count () == 13))
784
40
    {
785
40
      point_t pt1 = env.get_pt ();
786
40
      pt1.move (env.eval_arg (0), env.eval_arg (1));
787
40
      point_t pt2 = pt1;
788
40
      pt2.move (env.eval_arg (2), env.eval_arg (3));
789
40
      point_t pt3 = pt2;
790
40
      pt3.move (env.eval_arg (4), env.eval_arg (5));
791
40
      point_t pt4 = pt3;
792
40
      pt4.move (env.eval_arg (6), env.eval_arg (7));
793
40
      point_t pt5 = pt4;
794
40
      pt5.move (env.eval_arg (8), env.eval_arg (9));
795
40
      point_t pt6 = pt5;
796
40
      pt6.move (env.eval_arg (10), env.eval_arg (11));
797
798
40
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
799
40
    }
800
1.19k
    else
801
1.19k
      env.set_error ();
802
1.23k
  }
803
804
  static void hflex1 (ENV &env, PARAM& param)
805
3.96k
  {
806
3.96k
    if (likely (env.argStack.get_count () == 9))
807
256
    {
808
256
      point_t pt1 = env.get_pt ();
809
256
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
256
      point_t pt2 = pt1;
811
256
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
256
      point_t pt3 = pt2;
813
256
      pt3.move_x (env.eval_arg (4));
814
256
      point_t pt4 = pt3;
815
256
      pt4.move_x (env.eval_arg (5));
816
256
      point_t pt5 = pt4;
817
256
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
256
      point_t pt6 = pt5;
819
256
      pt6.move_x (env.eval_arg (8));
820
256
      pt6.y = env.get_pt ().y;
821
822
256
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
256
    }
824
3.71k
    else
825
3.71k
      env.set_error ();
826
3.96k
  }
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
116
  {
806
116
    if (likely (env.argStack.get_count () == 9))
807
42
    {
808
42
      point_t pt1 = env.get_pt ();
809
42
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
42
      point_t pt2 = pt1;
811
42
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
42
      point_t pt3 = pt2;
813
42
      pt3.move_x (env.eval_arg (4));
814
42
      point_t pt4 = pt3;
815
42
      pt4.move_x (env.eval_arg (5));
816
42
      point_t pt5 = pt4;
817
42
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
42
      point_t pt6 = pt5;
819
42
      pt6.move_x (env.eval_arg (8));
820
42
      pt6.y = env.get_pt ().y;
821
822
42
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
42
    }
824
74
    else
825
74
      env.set_error ();
826
116
  }
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
55
  {
806
55
    if (likely (env.argStack.get_count () == 9))
807
21
    {
808
21
      point_t pt1 = env.get_pt ();
809
21
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
21
      point_t pt2 = pt1;
811
21
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
21
      point_t pt3 = pt2;
813
21
      pt3.move_x (env.eval_arg (4));
814
21
      point_t pt4 = pt3;
815
21
      pt4.move_x (env.eval_arg (5));
816
21
      point_t pt5 = pt4;
817
21
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
21
      point_t pt6 = pt5;
819
21
      pt6.move_x (env.eval_arg (8));
820
21
      pt6.y = env.get_pt ().y;
821
822
21
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
21
    }
824
34
    else
825
34
      env.set_error ();
826
55
  }
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
312
  {
806
312
    if (likely (env.argStack.get_count () == 9))
807
132
    {
808
132
      point_t pt1 = env.get_pt ();
809
132
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
132
      point_t pt2 = pt1;
811
132
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
132
      point_t pt3 = pt2;
813
132
      pt3.move_x (env.eval_arg (4));
814
132
      point_t pt4 = pt3;
815
132
      pt4.move_x (env.eval_arg (5));
816
132
      point_t pt5 = pt4;
817
132
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
132
      point_t pt6 = pt5;
819
132
      pt6.move_x (env.eval_arg (8));
820
132
      pt6.y = env.get_pt ().y;
821
822
132
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
132
    }
824
180
    else
825
180
      env.set_error ();
826
312
  }
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
3.48k
  {
806
3.48k
    if (likely (env.argStack.get_count () == 9))
807
61
    {
808
61
      point_t pt1 = env.get_pt ();
809
61
      pt1.move (env.eval_arg (0), env.eval_arg (1));
810
61
      point_t pt2 = pt1;
811
61
      pt2.move (env.eval_arg (2), env.eval_arg (3));
812
61
      point_t pt3 = pt2;
813
61
      pt3.move_x (env.eval_arg (4));
814
61
      point_t pt4 = pt3;
815
61
      pt4.move_x (env.eval_arg (5));
816
61
      point_t pt5 = pt4;
817
61
      pt5.move (env.eval_arg (6), env.eval_arg (7));
818
61
      point_t pt6 = pt5;
819
61
      pt6.move_x (env.eval_arg (8));
820
61
      pt6.y = env.get_pt ().y;
821
822
61
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
823
61
    }
824
3.42k
    else
825
3.42k
      env.set_error ();
826
3.48k
  }
827
828
  static void flex1 (ENV &env, PARAM& param)
829
1.78k
  {
830
1.78k
    if (likely (env.argStack.get_count () == 11))
831
1.30k
    {
832
1.30k
      point_t d;
833
7.81k
      for (unsigned int i = 0; i < 10; i += 2)
834
6.51k
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
1.30k
      point_t pt1 = env.get_pt ();
837
1.30k
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
1.30k
      point_t pt2 = pt1;
839
1.30k
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
1.30k
      point_t pt3 = pt2;
841
1.30k
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
1.30k
      point_t pt4 = pt3;
843
1.30k
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
1.30k
      point_t pt5 = pt4;
845
1.30k
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
1.30k
      point_t pt6 = pt5;
847
848
1.30k
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
86
      {
850
86
  pt6.move_x (env.eval_arg (10));
851
86
  pt6.y = env.get_pt ().y;
852
86
      }
853
1.21k
      else
854
1.21k
      {
855
1.21k
  pt6.x = env.get_pt ().x;
856
1.21k
  pt6.move_y (env.eval_arg (10));
857
1.21k
      }
858
859
1.30k
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
1.30k
    }
861
486
    else
862
486
      env.set_error ();
863
1.78k
  }
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
671
  {
830
671
    if (likely (env.argStack.get_count () == 11))
831
604
    {
832
604
      point_t d;
833
3.62k
      for (unsigned int i = 0; i < 10; i += 2)
834
3.02k
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
604
      point_t pt1 = env.get_pt ();
837
604
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
604
      point_t pt2 = pt1;
839
604
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
604
      point_t pt3 = pt2;
841
604
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
604
      point_t pt4 = pt3;
843
604
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
604
      point_t pt5 = pt4;
845
604
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
604
      point_t pt6 = pt5;
847
848
604
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
16
      {
850
16
  pt6.move_x (env.eval_arg (10));
851
16
  pt6.y = env.get_pt ().y;
852
16
      }
853
588
      else
854
588
      {
855
588
  pt6.x = env.get_pt ().x;
856
588
  pt6.move_y (env.eval_arg (10));
857
588
      }
858
859
604
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
604
    }
861
67
    else
862
67
      env.set_error ();
863
671
  }
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
624
  {
830
624
    if (likely (env.argStack.get_count () == 11))
831
600
    {
832
600
      point_t d;
833
3.60k
      for (unsigned int i = 0; i < 10; i += 2)
834
3.00k
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
600
      point_t pt1 = env.get_pt ();
837
600
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
600
      point_t pt2 = pt1;
839
600
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
600
      point_t pt3 = pt2;
841
600
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
600
      point_t pt4 = pt3;
843
600
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
600
      point_t pt5 = pt4;
845
600
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
600
      point_t pt6 = pt5;
847
848
600
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
16
      {
850
16
  pt6.move_x (env.eval_arg (10));
851
16
  pt6.y = env.get_pt ().y;
852
16
      }
853
584
      else
854
584
      {
855
584
  pt6.x = env.get_pt ().x;
856
584
  pt6.move_y (env.eval_arg (10));
857
584
      }
858
859
600
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
600
    }
861
24
    else
862
24
      env.set_error ();
863
624
  }
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
200
  {
830
200
    if (likely (env.argStack.get_count () == 11))
831
72
    {
832
72
      point_t d;
833
432
      for (unsigned int i = 0; i < 10; i += 2)
834
360
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
72
      point_t pt1 = env.get_pt ();
837
72
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
72
      point_t pt2 = pt1;
839
72
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
72
      point_t pt3 = pt2;
841
72
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
72
      point_t pt4 = pt3;
843
72
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
72
      point_t pt5 = pt4;
845
72
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
72
      point_t pt6 = pt5;
847
848
72
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
39
      {
850
39
  pt6.move_x (env.eval_arg (10));
851
39
  pt6.y = env.get_pt ().y;
852
39
      }
853
33
      else
854
33
      {
855
33
  pt6.x = env.get_pt ().x;
856
33
  pt6.move_y (env.eval_arg (10));
857
33
      }
858
859
72
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
72
    }
861
128
    else
862
128
      env.set_error ();
863
200
  }
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
293
  {
830
293
    if (likely (env.argStack.get_count () == 11))
831
26
    {
832
26
      point_t d;
833
156
      for (unsigned int i = 0; i < 10; i += 2)
834
130
  d.move (env.eval_arg (i), env.eval_arg (i+1));
835
836
26
      point_t pt1 = env.get_pt ();
837
26
      pt1.move (env.eval_arg (0), env.eval_arg (1));
838
26
      point_t pt2 = pt1;
839
26
      pt2.move (env.eval_arg (2), env.eval_arg (3));
840
26
      point_t pt3 = pt2;
841
26
      pt3.move (env.eval_arg (4), env.eval_arg (5));
842
26
      point_t pt4 = pt3;
843
26
      pt4.move (env.eval_arg (6), env.eval_arg (7));
844
26
      point_t pt5 = pt4;
845
26
      pt5.move (env.eval_arg (8), env.eval_arg (9));
846
26
      point_t pt6 = pt5;
847
848
26
      if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
849
15
      {
850
15
  pt6.move_x (env.eval_arg (10));
851
15
  pt6.y = env.get_pt ().y;
852
15
      }
853
11
      else
854
11
      {
855
11
  pt6.x = env.get_pt ().x;
856
11
  pt6.move_y (env.eval_arg (10));
857
11
      }
858
859
26
      curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
860
26
    }
861
267
    else
862
267
      env.set_error ();
863
293
  }
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
2.54k
  {
870
2.54k
    PATH::curve (env, param, pt1, pt2, pt3);
871
2.54k
    PATH::curve (env, param, pt4, pt5, pt6);
872
2.54k
  }
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
677
  {
870
677
    PATH::curve (env, param, pt1, pt2, pt3);
871
677
    PATH::curve (env, param, pt4, pt5, pt6);
872
677
  }
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
646
  {
870
646
    PATH::curve (env, param, pt1, pt2, pt3);
871
646
    PATH::curve (env, param, pt4, pt5, pt6);
872
646
  }
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
792
  {
870
792
    PATH::curve (env, param, pt1, pt2, pt3);
871
792
    PATH::curve (env, param, pt4, pt5, pt6);
872
792
  }
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
426
  {
870
426
    PATH::curve (env, param, pt1, pt2, pt3);
871
426
    PATH::curve (env, param, pt4, pt5, pt6);
872
426
  }
873
};
874
875
template <typename ENV, typename OPSET, typename PARAM>
876
struct cs_interpreter_t : interpreter_t<ENV>
877
{
878
712k
  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
60.8k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_path_t, cff1_path_param_t>::cs_interpreter_t(CFF::cff1_cs_interp_env_t&)
Line
Count
Source
878
21.1k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_seac_t, get_seac_param_t>::cs_interpreter_t(CFF::cff1_cs_interp_env_t&)
CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_cs_opset_extents_t, cff2_extents_param_t>::cs_interpreter_t(CFF::cff2_cs_interp_env_t<CFF::number_t>&)
Line
Count
Source
878
27.1k
  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
603k
  cs_interpreter_t (ENV& env_) : interpreter_t<ENV> (env_) {}
879
880
  bool interpret (PARAM& param)
881
712k
  {
882
712k
    SUPER::env.set_endchar (false);
883
884
712k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
90.2M
    for (;;) {
886
90.2M
      if (unlikely (!--max_ops))
887
2.23k
      {
888
2.23k
  SUPER::env.set_error ();
889
2.23k
  break;
890
2.23k
      }
891
90.2M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
90.2M
      if (unlikely (SUPER::env.in_error ()))
893
303k
  return false;
894
89.9M
      if (SUPER::env.is_endchar ())
895
407k
  break;
896
89.9M
    }
897
898
409k
    return true;
899
712k
  }
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
60.8k
  {
882
60.8k
    SUPER::env.set_endchar (false);
883
884
60.8k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
4.63M
    for (;;) {
886
4.63M
      if (unlikely (!--max_ops))
887
0
      {
888
0
  SUPER::env.set_error ();
889
0
  break;
890
0
      }
891
4.63M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
4.63M
      if (unlikely (SUPER::env.in_error ()))
893
14.0k
  return false;
894
4.62M
      if (SUPER::env.is_endchar ())
895
46.7k
  break;
896
4.62M
    }
897
898
46.7k
    return true;
899
60.8k
  }
CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_path_t, cff1_path_param_t>::interpret(cff1_path_param_t&)
Line
Count
Source
881
21.1k
  {
882
21.1k
    SUPER::env.set_endchar (false);
883
884
21.1k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
2.67M
    for (;;) {
886
2.67M
      if (unlikely (!--max_ops))
887
0
      {
888
0
  SUPER::env.set_error ();
889
0
  break;
890
0
      }
891
2.67M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
2.67M
      if (unlikely (SUPER::env.in_error ()))
893
7.03k
  return false;
894
2.67M
      if (SUPER::env.is_endchar ())
895
14.1k
  break;
896
2.67M
    }
897
898
14.1k
    return true;
899
21.1k
  }
Unexecuted instantiation: CFF::cs_interpreter_t<CFF::cff1_cs_interp_env_t, cff1_cs_opset_seac_t, get_seac_param_t>::interpret(get_seac_param_t&)
CFF::cs_interpreter_t<CFF::cff2_cs_interp_env_t<CFF::number_t>, cff2_cs_opset_extents_t, cff2_extents_param_t>::interpret(cff2_extents_param_t&)
Line
Count
Source
881
27.1k
  {
882
27.1k
    SUPER::env.set_endchar (false);
883
884
27.1k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
26.7M
    for (;;) {
886
26.7M
      if (unlikely (!--max_ops))
887
1.52k
      {
888
1.52k
  SUPER::env.set_error ();
889
1.52k
  break;
890
1.52k
      }
891
26.7M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
26.7M
      if (unlikely (SUPER::env.in_error ()))
893
16.9k
  return false;
894
26.6M
      if (SUPER::env.is_endchar ())
895
8.67k
  break;
896
26.6M
    }
897
898
10.2k
    return true;
899
27.1k
  }
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
603k
  {
882
603k
    SUPER::env.set_endchar (false);
883
884
603k
    unsigned max_ops = HB_CFF_MAX_OPS;
885
56.2M
    for (;;) {
886
56.2M
      if (unlikely (!--max_ops))
887
714
      {
888
714
  SUPER::env.set_error ();
889
714
  break;
890
714
      }
891
56.2M
      OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
892
56.2M
      if (unlikely (SUPER::env.in_error ()))
893
265k
  return false;
894
55.9M
      if (SUPER::env.is_endchar ())
895
338k
  break;
896
55.9M
    }
897
898
338k
    return true;
899
603k
  }
900
901
  private:
902
  typedef interpreter_t<ENV> SUPER;
903
};
904
905
} /* namespace CFF */
906
907
#endif /* HB_CFF_INTERP_CS_COMMON_HH */