Repository navigation
Conversation
behdad
force-pushed
the
write-fonts-review-pairpos-matrix
branch
from
October 12, 2026 23:18
f95f78e to
6012cd6
Compare
behdad
force-pushed
the
write-fonts-review-pairpos-matrix
branch
from
October 14, 2026 23:11
6012cd6 to
6484c7f
Compare
# Conflicts: # write-fonts/src/tables/gpos.rs
Propagate reviewed fixes and repaired ancestry through #2339. Assisted-by: OpenAI Codex
Contributor
Author
|
The PairPos matrix fix and its regression test have moved into #2263 as part of reviewing that earlier class-matrix boundary. After the stack repair, this PR has no remaining tree changes against #2338; it is now redundant. The downstream #2340 branch contains both histories, so retaining this node does not lose any changes. |
This tree is unchanged; the replacement evaluator already handles missing variation rows. Preserve the repaired parent ancestry. Assisted-by: OpenAI Codex
Preserve reviewed parent ancestry and each PR's existing feature changes. Assisted-by: OpenAI Codex
Preserve the independently validated TrueType changes and all feature code. Assisted-by: OpenAI Codex
Keep empty record counts and allocation bounds at each PR boundary. Assisted-by: OpenAI Codex
Move the existing #2338 correction into the width-reduction PR. Assisted-by: OpenAI Codex
Reject unsupported versions and oversized arrays before ownership. Keep current HarfBuzz references with complete feature parameters. Assisted-by: OpenAI Codex
Preserve zero float32 products and reject subnormal condition pinning. Assisted-by: OpenAI Codex
Bound pairwise work after deduplication, avoid temporary pair vectors, and keep the corrected HarfBuzz column order at introduction. Assisted-by: OpenAI Codex
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Converting a valid PairPos format 2 table to an owned table and writing it back failed when its matrix contained unused trailing classes. The writer derived dimensions from the ClassDefs, whose maximum class gives only the minimum required dimensions.
Use the existing matrix dimensions, validate class IDs and uniform row widths, and infer minimum dimensions for omitted zero-byte records. The regression reads, owns and writes a 2x2 matrix whose ClassDefs use only class zero, preserving its trailing values. Additional checks cover uneven rows, classes outside the matrix, and zero-byte fallback dimensions.
Validation: all 332 write-fonts unit and documentation tests passed.
Found while auditing #2263; this is separate from the mark-anchor class-width fix already included there.
Depends on #2338.
Validation of the combined fixes: 1,199 Skera, Skrifa and write-fonts tests passed with Rust 1.89 and the Skera CLI enabled; 8 existing tests were ignored. Clippy with all targets/features, formatting and diff checks passed.