Thread overview
[Issue 21371] core.stdcpp.allocator: _Adjust_manually_vector_aligned checks for sentinel unconditionally (Windows only)
Nov 09, 2020
Dlang Bot
Mar 18, 2021
Dlang Bot
Apr 18, 2021
Dlang Bot
November 09, 2020
https://issues.dlang.org/show_bug.cgi?id=21371

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #1 from Dlang Bot <dlang-bot@dlang.rocks> ---
@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

--
March 18, 2021
https://issues.dlang.org/show_bug.cgi?id=21371

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
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

--
April 18, 2021
https://issues.dlang.org/show_bug.cgi?id=21371

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
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

--