On Tuesday, 14 September 2021 at 12:13:15 UTC, Steven
Schveighoffer wrote:
On 9/14/21 7:31 AM, eugene wrote:
On Monday, 13 September 2021 at 17:18:30 UTC, eugene wrote:
EventSource s = events[k].es;
ulong ecode = s.eventCode(events[k].event_mask);
// <<<<< SIGSEGV
Note that s likely still points at a valid memory address.
yeah, this address is obtained from OS (epoll_event struct),
compiler can not zero it.
However, when an object is destroyed, its vtable is nulled out
(precisely to cause a segfault if you try to use an
already-freed object).
that's right - calling eventCode() method results in segfault.