Repository navigation
Conversation
Avoid loading the image backend when creating a native painter for ordinary batch drawing. Resolve a typed image utility plugin on first use instead. Assisted-by: Codex:GPT-6
Member
|
There is alternative solution now: #23857 |
Contributor
Author
|
I think it's not the same, #23857 handles when |
Member
One tries to fix situation when |
Test Results 24 files 24 suites 4d 1h 54m 49s ⏱️ For more details on these failures, see this check. Results for commit 8a1723d. |
This branch has not been deployed
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.
This Pull request:
Changes or fixes:
🤖 Since 351f668f04e, loading the native pad painter also loads
ASImageUtilsand its image-format dependencies. A missing image library can therefore break ordinary batch histogram drawing. On macOS, an unresolvedlibgif.dylibprevents painter creation and causeshsimpleto crash.Introduce a typed
TVirtualImageUtilsplugin, implemented by aTASImageUtilsadapter around the existing helpers. Load and cache it on the first image operation, keeping the native painter independent of the image backend while preserving the existing X11 and Cocoa implementations.Using ROOT's plugin mechanism keeps image operations checked at compile time and avoids deprecated
TImageAPIs or manual runtime method lookup; fixing giflib alone would leave the unwanted dependency in place ( 👨 : this was my choice, from what I understood the plugin mechanism is what was better suited for this change).Validation:
hsimple, batch drawing, deferred plugin loading, and existing image-to-PDF regression tests pass.libASImageUtils.sounavailable. The batch regression was verified to fail with the original eager-link implementation.Checklist:
AI assistance: Codex (GPT-6) helped implement the plugin and regression tests and run validation.
cc @linev