On 29.12.2010 09:43, Branko Čibej wrote:
> On 28.12.2010 23:13, Peter Samuelson wrote:
>> [C. Michael Pilato]
>>>> svn_fspath__is_canonical
>>>> svn_fspath__dirname
>>>> svn_fspath__basename
>>>> svn_fspath__split
>>>> svn_fspath__join
>>>> svn_fspath__is_child
>>>> svn_fspath__skip_ancestor
>>>> svn_fspath__is_ancestor
>>>> svn_fspath__get_longest_ancestor
>>>> svn_error__locate
>>>>
>>>> svn_error__malfunction
>>> While we've mandated that "__" must be used for semi-public
>>> functions, we've never said that it can't be used for private ones.
>> Kamesh is talking about public, not private, functions.  I.e., ones
>> where we actually do have an ABI promise to keep.
>>
>> I looked at svn_error__locate last week.  It's really only useful in
>> --enable-maintainer-mode, but the way it's implemented, it ends up
>> being used by macros in the public (non-maintainer) ABI, so even if we
>> eliminate those callers, we have to supply the function itself forever.
>> I've addressed this as best we can, in r1053469.
> Now I'm really mystified. When I added those location-tracing functions
> and macros, they were only ever enabled with SVN_DEBUG turned on (i.e.,
> in maintainer-mode). Now I see that those #ifdef wrappers are gone, and
> can't recall an explanation as to why that's a good thing.
>
> Can anyone remember what that change was good for?

Found it, r843793 and I agree with the change. So, effectively,
svn_error__locate has been public since then, and r1053469 should be
reverted anyway because it breaks the ABI.

The name may or may not be misleading, depending on interpretation ...
no-one should call svn_error__locate directly, the public API are
effectively the macro wrappers.

-- Brane

Reply via email to