memorypool: add optional support for the system allocator in Rc#48305
Merged
memorypool: add optional support for the system allocator in Rc#48305
Conversation
deg4uss3r
approved these changes
Feb 11, 2026
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 enables our custom
Rctype to use the system allocator instead of a memory pool. The result is a single type that works either way, which will be useful for supporting collections of elements that have mixed memory backings. For ref-counted types not in collections, or for collections of ref-counted types where all elements use the system allocator,std::rc::Rcshould be preferred.Initially I considered making this work by forwarding calls to
std::rc::Rcbased on a flag, but that would have required adding branching overhead to every method. Instead, this change simply adds alternative construction/destruction logic and leaves clone/deref as-is.