[subset-cff] Micro-optimize collect_subr_refs_in_str

This commit is contained in:
Behdad Esfahbod 2022-11-26 17:08:00 -07:00
parent 9d18180c3c
commit 04d23b7ca8
1 changed files with 10 additions and 10 deletions

View File

@ -955,7 +955,7 @@ struct subr_subsetter_t
return true; return true;
} }
void collect_subr_refs_in_subr (const parsed_cs_str_t &str, unsigned int pos, void collect_subr_refs_in_subr (const parsed_cs_str_t &str,
unsigned int subr_num, parsed_cs_str_vec_t &subrs, unsigned int subr_num, parsed_cs_str_vec_t &subrs,
hb_set_t *closure, hb_set_t *closure,
const subr_subset_param_t &param) const subr_subset_param_t &param)
@ -968,23 +968,23 @@ struct subr_subsetter_t
void collect_subr_refs_in_str (const parsed_cs_str_t &str, const subr_subset_param_t &param) void collect_subr_refs_in_str (const parsed_cs_str_t &str, const subr_subset_param_t &param)
{ {
unsigned count = str.values.length; auto *value = str.values.arrayZ;
auto &values = str.values.arrayZ; auto *end = value + str.values.length;
for (unsigned int pos = 0; pos < count; pos++) for (; value < end; value++)
{ {
if (!values[pos].for_drop ()) if (!value->for_drop ())
{ {
switch (values[pos].op) switch (value->op)
{ {
case OpCode_callsubr: case OpCode_callsubr:
collect_subr_refs_in_subr (str, pos, collect_subr_refs_in_subr (str,
values[pos].subr_num, *param.parsed_local_subrs, value->subr_num, *param.parsed_local_subrs,
param.local_closure, param); param.local_closure, param);
break; break;
case OpCode_callgsubr: case OpCode_callgsubr:
collect_subr_refs_in_subr (str, pos, collect_subr_refs_in_subr (str,
values[pos].subr_num, *param.parsed_global_subrs, value->subr_num, *param.parsed_global_subrs,
param.global_closure, param); param.global_closure, param);
break; break;