[Issue 21693] extern(C++) class instance dtors are never called, breaking RAII

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Mar 15 06:34:28 UTC 2021


https://issues.dlang.org/show_bug.cgi?id=21693

--- Comment #4 from Dlang Bot <dlang-bot at dlang.rocks> ---
dlang/dmd pull request #12265 "Issue 21693 - Lower scoped destruction of
extern(C++) class to destroy/dtor call" was merged into stable:

- e28736c522d9c81acef9c66c1f02da4375f08207 by MoonlightSentinel:
  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.

- aa2147b836b129e835828a6e6faef363ed3255a8 by MoonlightSentinel:
  fixup! Issue 21693 - Lower scoped destruction of extern(C++) class to destroy

https://github.com/dlang/dmd/pull/12265

--


More information about the Digitalmars-d-bugs mailing list