core: use ::operator delete for RVec heavy storage on Windows#22460
Open
wacfrr wants to merge 1 commit into
Open
core: use ::operator delete for RVec heavy storage on Windows#22460wacfrr wants to merge 1 commit into
wacfrr wants to merge 1 commit into
Conversation
Contributor
|
This will need a matching change in the RNTuple treatment of RVecs |
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:
Fixes a cross-module/cross-CRT heap allocation mismatch in
RVecon Windows platforms. This issue can lead to undefined behaviors, memory corruption, or silent exits when memory allocated insideRVecis freed across module boundaries (e.g., between a pre-compiled DLL and JIT-generated code).Changes or fixes:
math/vecops/src/RVec.cxx: InSmallVectorBase::grow_pod, replacedmalloc/realloc/freewith::operator new(std::nothrow)and::operator delete, guarded by#ifdef _WIN32.math/vecops/inc/ROOT/RVec.hxx: InSmallVectorTemplateBase::growand destructor-related deallocations, applied the same guarded replacement to ensure all heap operations are unified across the class layout.These changes are strictly restricted to Windows via platform macros; Linux and macOS targets remain completely untouched to preserve their high-performance native
reallocpaths.Checklist:
This PR fixes #22449