[Issue 21693] extern(C++) class instance dtors are never called, breaking RAII
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Apr 9 08:07:29 UTC 2021
https://issues.dlang.org/show_bug.cgi?id=21693
--- Comment #9 from Dlang Bot <dlang-bot at dlang.rocks> ---
@MoonlightSentinel created dlang/dmd pull request #12408 "Merge stable into
master" mentioning this issue:
- Issue 21693 - Lower scoped destruction of extern(C++) class to destroy/dtor
call (#12265)
* Issue 21693 - Lower scoped destruction of extern(C++) class to destroy
Ensures proper RAII behaviour for stack allocated instances but doesn't
affect the behaviour for heap allocated instances.
The previous rewrite used `delete` which relies on `TypeInfo` and
crashed at runtime. Using `object.destroy` circumvents this issue (and
is also beneficial due to the deprecation of `delete`).
`destroy` can be used instead of `delete` because the instances live on
the heap and hence don't need to be deallocated.
https://github.com/dlang/dmd/pull/12408
--
More information about the Digitalmars-d-bugs
mailing list