Replace usage of Zstandard advanced API#113234
Merged
akien-mga merged 1 commit intogodotengine:masterfrom Nov 27, 2025
Merged
Conversation
akien-mga
approved these changes
Nov 27, 2025
Member
|
Thanks! |
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.
Fixes #113216.
#112011 apparently broke
builtin_zstd=no, because I had used parts of the Zstandard API that are considered "advanced", which are liable to have their signature changed at some point in the future. This means you need to build Zstandard withZSTD_STATIC_LINKING_ONLY, which the built-in one does, but which you obviously can't do with a system-provided libzstd.This fixes that by replacing
ZSTD_findDecompressedSizewithZSTD_getFrameContentSize, which should work just as well. It might perhaps cause issues if we ever switch to using streaming compression instead, but I believeZSTD_CCtx_setPledgedSrcSizeshould mitigate that (which I threw in already for good measure).I also had to replace
ZSTD_getParamsandZSTD_CCtx_setParamswith individually setting the parameters usingZSTD_CCtx_setParameter. When stepping through the compression in a debugger it seems Zstandard effectively ends up callingZSTD_getParamsunder the hood anyway, using whatever overrides you've provided throughZSTD_CCtx_setParameter, so this made no functional difference at all.I've confirmed that this builds with
builtin_zstd=noon Fedora 42.