svn commit: r328430 - head/sbin/devd

Warner Losh imp at bsdimp.com
Fri Jan 26 06:02:04 UTC 2018


On Thu, Jan 25, 2018 at 10:04 PM, Eitan Adler <eadler at freebsd.org> wrote:

> On 25 January 2018 at 21:02, Matt Joras <matt.joras at gmail.com> wrote:
> > On Thu, Jan 25, 2018 at 8:52 PM, Warner Losh <imp at bsdimp.com> wrote:
> >>
> >>
> >> On Thu, Jan 25, 2018 at 9:40 PM, Eitan Adler <eadler at freebsd.org>
> wrote:
> >>>
> >>> Author: eadler
> >>> Date: Fri Jan 26 04:40:41 2018
> >>> New Revision: 328430
> >>> URL: https://svnweb.freebsd.org/changeset/base/328430
> >>>
> >>> Log:
> >>>   devd: minor nits
> >>>
> >>>   - mark usage as noreturn
> >>>   - config does not need a virtual destructor
> >>
> >>
> >> Everything needs a virtual destructor...  Please back that part of this
> >> out...
> >>
> >> Warner
> > Needs? If there's not inheritance there's no _need_ to do it, and it's
> > arguably superfluous. That being said it's also an arguably
> > superfluous change to remove it.
>
> Yeah, I don't think this needs it. That said, readded in 328431. I
> removed it originally since it was the only virtual function in config
> and it seemed out of place. At the least, I went looking for what
> inherited from it.
>

It's a flaw in C++ that you have a choice here. All dtors should  be
virtual because you never know when you'll have new derived classes and
have to hunt down a hard-to-find bug because you didn't go back and make it
virtual. Of course, this flaw is there because of other flaws in the
language. This isn't one of the cases where having it is harmful, so
stylistically I always have them unless there's a good reason not to
because were I to create derived classes, I might forget to make it
virtual. It's an old habit, I'll admit.

Warner


More information about the svn-src-head mailing list