Stefan wrote on Mon, Jun 27, 2016 at 02:49:51 +0200:
> > On Sun, Jun 26, 2016 at 09:26:27PM +0200, Stefan wrote:
> >> I'm just wondering why the backward compatibility for 1.9.0 (and 1.8.0)
> >> doesn't state 100% here [1].
> >>
> >> Checking out the details on 1.9.0 [2] and there the details on
> >> libsvn_subr [3] suggests 3 functions were removed:
> >> - svn__apr_hash_index_key ( apr_hash_index_key( apr_hash_index_t const* hi )
> >> - svn__apr_hash_index_klen ( apr_hash_index_key( apr_hash_index_t const*
> >> hi )
> >> - svn__apr_hash_index_val ( apr_hash_index_key( apr_hash_index_t const* hi )
…
> And now I also remember and realize that these removed symbols were
> actually private ones never intended to be exported (aka: double _ in
> the name). So 1.8/1.9 corrected this and ABI compatibility for these
> were intentionally broken.
I think these names were intentionally exported via
subversion/include/private/*.h by libsvn_subr for libsvn_*'s use, and
were removed when we bumped the minimum APR version to one that has
these functions natively (apr_hash_this_key() and friends).
I.e., the minimum APR supported by 1.8 doesn't have
apr_hash_index_key(), the minimum APR supported by 1.9 does have that
function, so 1.9 code uses the apr_* function directly without an
svn__* wrapper.
Cheers,
Daniel
Received on 2016-06-27 03:44:07 CEST