mirror of
https://github.com/2234839/web-font.git
synced 2026-09-04 23:02:27 +08:00
perf(gsub-reachable): 合并 lookupRelOffs 读取到 lookup parse 主循环
原实现先收集 lookupRelOffs 到中间数组,主循环再按下标回读。合并后直接在 主循环内读取偏移,省去中间数组分配与一次回读。FiraCode collectReachable -2.3%(0.116→0.113ms),reachable 集合 sha256 不变 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a1fe4da1ce
commit
694364769e
@ -104,19 +104,16 @@ export function collectReachableGsubTargets(
|
||||
const lookupListOff = r.u16(8);
|
||||
|
||||
const lookupCount = r.u16(lookupListOff);
|
||||
const lookupRelOffs: number[] = [];
|
||||
for (let i = 0; i < lookupCount; i++) {
|
||||
lookupRelOffs.push(r.u16(lookupListOff + 2 + i * 2));
|
||||
}
|
||||
|
||||
/** 解析每个 lookup 的 (effectiveType, subtableAbsOffs) */
|
||||
/** 解析每个 lookup 的 (effectiveType, subtableAbsOffs)。
|
||||
* 合并 lookupRelOffs 读取到主循环(避免先收集到中间数组再按下标回读)。 */
|
||||
interface LookupParsed {
|
||||
effectiveType: number;
|
||||
subtableAbsOffs: number[];
|
||||
}
|
||||
const lookups: LookupParsed[] = [];
|
||||
for (let i = 0; i < lookupCount; i++) {
|
||||
const lOff = lookupListOff + lookupRelOffs[i];
|
||||
const lOff = lookupListOff + r.u16(lookupListOff + 2 + i * 2);
|
||||
const lookupType = r.u16(lOff);
|
||||
const subTableCount = r.u16(lOff + 4);
|
||||
const subtableAbsOffs: number[] = [];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user