[haiku-commits] Re: haiku: hrev52543 - src/kits/codec headers/os/codec

  • From: Dario Casalinuovo <b.vitruvio@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 18 Nov 2018 11:58:33 +0100

Good Morning, Axel

On Sun, Nov 18, 2018 at 9:44 AM Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> wrote:

Am 17/11/2018 um 18:44 schrieb Barrett17:
a9ccd74af7bd: codec_kit: Remove Perform
   * Undocumented and apparently unuseful pattern.

Why would you remove Perform()?


Originally I just could not reason of why it was there.

*It was never documented in the context of Haiku, even in the article about
binary compatibility.*

However, it looks like an ugly and obsolete way of achieving binary
compatibility.

It's a required tool to complete FBC
compatibility. See the interface kit where it's used like it's supposed
to be.


It seems something like a plan B in case a we go out of padding space. But
now I wonder why this is used only in some parts and completely missing
from others. I see it is used in the game kit, interface kit, few parts of
the app kit, and BMediaTrack and BMediaFile. So why new classes doesn't
have that? The network kit, package kit and so on?

If a class become so polluted to exhaust the (very large) padding I
normally add, like 20 virtual slots and 20*32 bit of additional padding in
the classes interested by this commit, I can think just one thing: the
class has been designed so badly it should be replaced? Additionally, I'd
probably not use that for performance reasons in most use-cases.

To better overcome the problem, the Haiku API should make more use of
interfaces (IDL), and smart base-classes. But, well if that makes you sleep
better at night, let's revert it :)

-- 
Saluti,
Dario

Other related posts: