script: Fix IIRFilter crash on silent blocks and add crash test#56542
Merged
servo-wpt-sync merged 1 commit intoweb-platform-tests:masterfrom Dec 6, 2025
Merged
script: Fix IIRFilter crash on silent blocks and add crash test#56542servo-wpt-sync merged 1 commit intoweb-platform-tests:masterfrom
servo-wpt-sync merged 1 commit intoweb-platform-tests:masterfrom
Conversation
wpt-pr-bot
approved these changes
Dec 5, 2025
Collaborator
wpt-pr-bot
left a comment
There was a problem hiding this comment.
The review process for this patch is being conducted in the Servo project.
51bf405 to
8914452
Compare
Signed-off-by: Taym Haddadi <[email protected]>
8914452 to
5cd67ec
Compare
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.
Fix IIRFilter crash on silent blocks and add crash test.
Before fix:
let blocks: SmallVec<[Block; 1]> = SmallVec::new();followed byblocks.as_slice().iter().map(.), Because blocks was empty, the iterator never produced anything, so the resulting Chunk had zero blocks and caused:Now: we still use SmallVec<[Block; 1]>, but we actually push a block into it before returning: create Block::default(), call explicit_silence() on it, blocks.push(block), then Chunk { blocks }. This ensures the chunk contains one explicit silent block, which is what downstream code expects.
Actual fix is in:
servo/media#477
This PR uses the new media version containing fix and added crash test.
Testing: added crash test.
Fixes: servo/servo#41085
Reviewed in servo/servo#41091