> On Jan 11, 2016, at 8:25 AM, David Blaikie <dblai...@gmail.com> wrote: > > > > On Sun, Jan 10, 2016 at 11:42 PM, Owen Anderson via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > resistor created this revision. > resistor added reviewers: chandlerc, bkramer, klimek. > resistor added a subscriber: cfe-commits. > resistor set the repository for this revision to rL LLVM. > Herald added a subscriber: klimek. > > Managing it with IntrusiveRefCntPtr caused the virtual destructor not to be > called properly. > > Regardless of the broader discussion on this patch, I'm confused by why this > ^ would be the case. What is it that IntrusiveRefCntPtr is doing that's > causing problems with destruction? (& I'm all for changing this to > non-intrusive smart pointers over intrusive ones anyway, but I'd still like > to understand the extra motivation here) >
ThreadSafeRefCountedBase, which classes must inherit from in order to use IntrusiveRefCntPtr, does not handle virtual destructors properly. For the non-thread safe version, there is RefCountBaseVPTR which solves this problem. An alternative solution would have been to add a corresponding ThreadSafeRefCountedBaseVPTR, but IMO at that point one might as well use shared_ptr since it’s 90% of the way there. —Owen _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits