Don't panic on extensionless image paths in ImageLoader#25051
Closed
dreamersilly wants to merge 1 commit into
Closed
Don't panic on extensionless image paths in ImageLoader#25051dreamersilly wants to merge 1 commit into
dreamersilly wants to merge 1 commit into
Conversation
The FromExtension setting unwrapped the asset path's extension, so loading an image whose path has none panicked the IO task pool. Fall back to guessing the format from the file contents (the existing Guess logic, moved into a shared helper) and let a failed guess surface as the loader's normal FileTextureError.
Contributor
|
Welcome, new contributor! Please make sure you've read our contributing guide, as well as our policy regarding AI usage, and we look forward to reviewing your pull request shortly ✨ |
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.
Objective
Loading an image whose path has no file extension panics the IO task pool:
The
FromExtensionarm calls.extension().unwrap().to_str().unwrap()on the asset path. Extensionless textures are common in the wild, for example FBX.fbmembedded texture folders written by Reallusion AccuRIG, which is how I hit this.Solution
When the path has no extension (or a non unicode one), fall back to the existing
Guesslogic and sniff the format from the file contents. The guess code was already there in the arm below, so it moves into a shared helper. Guessing can still fail on genuinely unknown bytes, but that now surfaces as the loader's normalFileTextureErrorinstead of a panic.Testing
Reproduced on 0.19 and main with a PNG stripped of its extension: before, the panic above; after, the image loads.
cargo test -p bevy_imagepasses.