That makes sense. Thanks all! :)
On Fri, Jul 12, 2019 at 1:09 PM Volker Krause <vkra...@kde.org> wrote: > > On Friday, 12 July 2019 11:24:35 CEST Harald Sitter wrote: > > But why was that BIC to begin with? Which of the "don'ts" did it violate? > > IIUC re-implementing a virtual method from a base class (in absence of > complications like multi-inheritance or co-variant return types) does not > change the ABI (it changes vtable content, but not vtable layout). > > It does however create cases where old binaries still call the old methods > (see https://community.kde.org/Policies/ > Binary_Compatibility_Issues_With_C%2B%2B#Adding_a_reimplemented_virtual_function). > That might not always be a relevant problem though. > > In my understanding this is the same for the final -> !final case discussed in > #plasma in this context. It does not impact the ABI at all (it does not even > change vtable content), but some optimizations in old binaries might no longer > reflect the new behavior. > > Regards, > Volker > > > On Fri, Jul 12, 2019 at 11:18 AM Kai Uwe Broulik <k...@privat.broulik.de> > wrote: > > > To avoid situations like [1] and [2] > > > > > > [1] > > > https://cgit.kde.org/kiconthemes.git/commit/?id=1e9af6c54470e890597739f8f2 > > > 189b0743a00b6f [2] > > > https://cgit.kde.org/kiconthemes.git/commit/?id=083bb8a80fd5941e6fcbaf1ec1 > > > 2a08d8f8c881a5> > > > Am 12.07.19 um 11:14 schrieb Harald Sitter: > > > > Hey > > > > > > > > our binary compatibility page [1] states that one should > > > > > > > > "reimplement event in QObject-derived classes, even if the body for > > > > the function is just calling the base class' implementation." > > > > > > > > Does anyone know the reason this helps maintain BC? > > > > > > > > [1] > > > > https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2 > > > > B%2B > > > > > > > > HS >