Comment #0 by n8sh.secondary — 2020-11-09T05:34:06Z
This bug resulted in assertion failures when deleting large blocks of memory using core.stdcpp.allocator on Microsoft Windows. _Allocate_manually_vector_aligned sets a sentinel when version(_DEBUG). _Adjust_manually_vector_aligned checks for this sentinel when assertions are enabled without checking version(_DEBUG).
Comment #1 by dlang-bot — 2020-11-09T05:42:00Z
@n8sh created dlang/druntime pull request #3265 "core.stdcpp.allocator: _Adjust_manually_vector_aligned checks for sentinel unconditionally (Windows only)" fixing this issue:
- Fix Issue 21371 - core.stdcpp.allocator: _Adjust_manually_vector_aligned checks for sentinel unconditionally (Windows only)
This bug resulted in assertion failures when deleting large blocks of memory using core.stdcpp.allocator on Windows. _Allocate_manually_vector_aligned
only sets a sentinel when version(_DEBUG) so _Adjust_manually_vector_aligned
should only check for this sentinel when version(_DEBUG).
Additionally change the linkage of those functions from C++ to D to avoid
possible linker confusion.
https://github.com/dlang/druntime/pull/3265
Comment #2 by dlang-bot — 2021-03-18T13:55:57Z
dlang/druntime pull request #3265 "core.stdcpp.allocator: _Adjust_manually_vector_aligned checks for sentinel unconditionally (Windows only)" was merged into stable:
- c97b571c084ecd097a2d19f86a175085efec95a7 by Nathan Sashihara:
Fix Issue 21371 - core.stdcpp.allocator: _Adjust_manually_vector_aligned checks for sentinel unconditionally (Windows only)
This bug resulted in assertion failures when deleting large blocks of memory using core.stdcpp.allocator on Windows. _Allocate_manually_vector_aligned
only sets a sentinel when version(_DEBUG) so _Adjust_manually_vector_aligned
should only check for this sentinel when version(_DEBUG).
Additionally change the linkage of those functions from C++ to D to avoid
possible linker confusion.
Also changed the logic by which allocator.d infers _DEBUG to resemble the
the logic for _ITERATOR_DEBUG_LEVEL in utility.d.
https://github.com/dlang/druntime/pull/3265
Comment #3 by dlang-bot — 2021-04-18T14:24:29Z
dlang/druntime pull request #3434 "merge stable" was merged into master:
- 74287fbe7867896b23eeb01f5663ade8ea0d49e0 by Nathan Sashihara:
Fix Issue 21371 - core.stdcpp.allocator: _Adjust_manually_vector_aligned checks for sentinel unconditionally (Windows only)
This bug resulted in assertion failures when deleting large blocks of memory using core.stdcpp.allocator on Windows. _Allocate_manually_vector_aligned
only sets a sentinel when version(_DEBUG) so _Adjust_manually_vector_aligned
should only check for this sentinel when version(_DEBUG).
Additionally change the linkage of those functions from C++ to D to avoid
possible linker confusion.
Also changed the logic by which allocator.d infers _DEBUG to resemble the
the logic for _ITERATOR_DEBUG_LEVEL in utility.d.
https://github.com/dlang/druntime/pull/3434