perf: reuse raw_content in FileProgressStore::save #24701
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.
Previously FileProgressStore::save was reading the same file twice: once into raw_content to check for emptiness and then again inside serde_json::from_slice. This added an extra system call, allocation and parse input without changing the observable behavior.
This change reuses the already read raw_content buffer when deserializing the existing JSON state. The logic for handling missing, empty or invalid files remains the same, but we avoid redundant work on every save call.