Skip to content

Allocator restructuring - #4998

Merged
ethomson merged 3 commits into
libgit2:masterfrom
pks-t:pks/allocator-restructuring
Feb 22, 2019
Merged

Allocator restructuring#4998
ethomson merged 3 commits into
libgit2:masterfrom
pks-t:pks/allocator-restructuring

Conversation

@pks-t

@pks-t pks-t commented Feb 21, 2019

Copy link
Copy Markdown
Member

I've been annoyed by our two allocators being located at seemingly arbitrary locations. Instead, I propose to move them into a common "allocators/" subdirectory, similar to our transports or streams.

Right now, our two allocator implementations are scattered around
the tree in "stdalloc.h" and "win32/w32_crtdbg_stacktrace.h".
Start grouping them together in a single directory "allocators/",
similar to how e.g. our streams are organized.
The Windows-specific crtdbg allocator is currently mixed into the
crtdbg stacktracing compilation unit, making it harder to find
than necessary. Extract it and move it into the new "allocators/"
subdirectory to improve discoverability.

This change means that the crtdbg compilation unit is now
compiled unconditionally, whereas it has previously only been
compiled on Windows platforms. Thus we now have additional guards
around the code so that it will only be compiled if
GIT_MSVC_CRTDBG is defined. This also allows us to move over the
fallback-implementation of `git_win32_crtdbg_init_allocator` into
the same compilation unit.
In commit 6e0dfc6 (Make stdalloc__reallocarray call
stdalloc__realloc, 2019-02-16), we have changed the stdalloc
allocator to reuse `stdalloc__realloc` to implement
`stdalloc__reallocarray`. This commit is making the same change
for the Windows-specific crtdbg allocator to avoid code
duplication.
@pks-t
pks-t force-pushed the pks/allocator-restructuring branch from 7c0be11 to 765ff6e Compare February 21, 2019 12:24
@pks-t

pks-t commented Feb 21, 2019

Copy link
Copy Markdown
Member Author

Fixed compilation with MSVC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants