[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1663780 - /subversion/trunk/subversion/include/svn_hash.h

From: Branko Čibej <brane_at_wandisco.com>
Date: Wed, 04 Mar 2015 09:48:38 +0100

On 04.03.2015 09:37, Bert Huijben wrote:
> As noted on irc we have one .def file that is used for release and
> maintenance builds. This generated file has all the function names
> that are published by a .DLL.
>
> If the function is not in the list, we can’t use it in maintainer
> builds from libraries != libsvn_subr. And if it is in the list, it
> must be available or the linker will return an error in release mode.

But the .def file generator doesn't look for #ifdef DEBUG blocks, right.
Otherwise we'd have had this problem for ages with svn_err__locate
(which, fwiw, is not declared within '#idfef DEBUG', as I implicitly
stated below).

-- Brane

> *From:* Branko Čibej <mailto:brane_at_wandisco.com>
> *Sent:* ‎Wednesday‎, ‎March‎ ‎4‎, ‎2015 ‎9‎:‎20‎ ‎AM
> *To:* dev_at_subversion.apache.org <mailto:dev_at_subversion.apache.org>
>
> On 03.03.2015 21:28, julianfoad_at_apache.org wrote:
> > Author: julianfoad
> > Date: Tue Mar 3 20:28:30 2015
> > New Revision: 1663780
> >
> > URL: http://svn.apache.org/r1663780
> > Log:
> > * subversion/include/svn_hash.h
> > (svn_hash__gets): Remove #if from prototype to match definition.
> >
> > Modified:
> > subversion/trunk/subversion/include/svn_hash.h
> >
> > Modified: subversion/trunk/subversion/include/svn_hash.h
> > URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_hash.h?rev=1663780&r1=1663779&r2=1663780&view=diff
> >
> ==============================================================================
> > --- subversion/trunk/subversion/include/svn_hash.h (original)
> > +++ subversion/trunk/subversion/include/svn_hash.h Tue Mar 3
> 20:28:30 2015
> > @@ -239,7 +239,6 @@ svn_hash_from_cstring_keys(apr_hash_t **
> > const apr_array_header_t *keys,
> > apr_pool_t *pool);
> >
> > -#ifdef SVN_DEBUG
> > /* In debug builds, the svn_hash_gets macro forwards the parameters
> > * through this function in order to have parameter type checking,
> > * particularly for the key. The svn_hash_sets macro gets parameter
> > @@ -247,7 +246,6 @@ svn_hash_from_cstring_keys(apr_hash_t **
> > */
> > void *
> > svn_hash__gets(apr_hash_t *ht, const char *key);
> > -#endif
>
> No, that's wrong. The should not be available in non-SVN_DEBUG mode
> because nobody should be calling svn_hash__gets directly. All calls
> should come from the expansion of the svn_hash_gets macro, which only
> expands to the call in SVN_DEBUG mode.
>
> The problem with the "missing prototype" warning should be solved in the
> same way we solve it for error tracing (see the definition of
> SVN_ERR__TRACING in svn_error.h and how it's used in libsvn_subr/error.c).
>
> -- Brane
>
Received on 2015-03-04 09:49:10 CET

This is an archived mail posted to the Subversion Dev mailing list.