ldb_handler_fold: public or private?
simo
idra at samba.org
Mon Mar 21 06:43:24 MDT 2011
On Mon, 2011-03-21 at 13:30 +0100, Jelmer Vernooij wrote:
> On Mon, 2011-03-21 at 08:19 -0400, simo wrote:
> > On Sat, 2011-03-19 at 16:00 +0100, Jelmer Vernooij wrote:
> > > ldb_handler_fold is a convenience function that is used in
> > > source4/lib/ldb/common/attrib_handlers.c. It is currently public, but
> > > not declared in any header files. As far as I can tell it's just a
> > > trivial convenience function that was never intended to be public.
> > >
> > > However, as it is public it is technically part of our ABI.
> > >
> > > We can:
> > >
> > > 1) make it static (so the symbol is no longer exported)
> > > 2) keep it public and add it to one of the headers
> > > 3) keep it public but add a comment to remove it whenever we get a
> > > chance
> > >
> > > Is ldb_handler_fold useful for external users? How harmful would it be
> > > to remove it now, given that it's not in any public header and nobody
> > > should be using it?
> >
> > Does samba4 use it ?
> > If it does, then it depends on it being exported, and it should also be
> > public.
> > If nobody uses it, then we can probably mark it deprecated for a while
> > and finally remove it down the road.
> No, Samba doesn't use it. It's only used in the file where it's
> declared, it could just be static.
Well breaking the ABI for free gain us nothing.
I would put a comment on the function, and try to remember to turn it
into a static the next time we make some big ABI change.
Maybe we can define a macro that will do that automatically ...
Something like:
#if MAJORVER > X
static
#endif
So that it will be automatically made static the next time we change ver
even if we do not remember that, and then we can remove the if/endif
block the first time someone notices.
Simo.
--
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Principal Software Engineer at Red Hat, Inc. <simo at redhat.com>
More information about the samba-technical
mailing list