[Issue 14860] Destructor is not called for block assignment

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sun Aug 2 04:07:55 PDT 2015


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

--- Comment #2 from github-bugzilla at puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/35f1f6226aa523305e41f3dee68fbb0ce8fafdf4
Supplemental fix for issue 14860

`task[] = RTask.init;` has two bugs:

1. `RTask` is a nested struct, so `RTask.init` contains null context pointer.
2. That is a block assignment, so there is a possibility to call
   `RTask.~this()` on garbage objects (stack allocated `buf` is initialized by
`void`).

Fixed to use `emplaceRef` on each elements.

https://github.com/D-Programming-Language/phobos/commit/deeab6c867fbed479fe57604a52f25e360f0b410
Merge pull request #3522 from 9rnsr/fix14860

Supplemental fix for issue 14860

--


More information about the Digitalmars-d-bugs mailing list