[cff-common] Optimize INDEX::operator[]

Previous try showed slowdown in benchmarks, suprisingly.

Rewrite it keeping the function, hopefully allowing better optimization.
This commit is contained in:
Behdad Esfahbod 2022-05-10 14:58:53 -06:00
parent 3aace2431b
commit 9033c7f99d
1 changed files with 4 additions and 3 deletions

View File

@ -214,10 +214,11 @@ struct CFFIndex
unsigned int length_at (unsigned int index) const unsigned int length_at (unsigned int index) const
{ {
if (unlikely ((offset_at (index + 1) < offset_at (index)) || unsigned offset0 = offset_at (index);
(offset_at (index + 1) > offset_at (count)))) unsigned offset1 = offset_at (index + 1);
if (unlikely (offset1 < offset0 || offset1 > offset_at (count)))
return 0; return 0;
return offset_at (index + 1) - offset_at (index); return offset1 - offset0;
} }
const unsigned char *data_base () const const unsigned char *data_base () const