Author: julianfoad Date: Wed Mar 4 11:33:05 2015 New Revision: 1663940 URL: http://svn.apache.org/r1663940 Log: Change the way we declare the svn_hash__gets/sets private functions, to match the way svn_error__locate is defined.
This hides the private function's declaration from code during non-debug builds to ensure we are not accidentally calling it directly, while still allowing the declaration to be seen while compiling the definition. * subversion/include/svn_hash.h (SVN_HASH__GETS_SETS): New macro, defined when SVN_DEBUG is defined. (svn_hash__gets, svn_hash__sets): Declare only when SVN_HASH__GETS_SETS is defined. (svn_hash_gets, svn_hash_sets): Use the forwarding-through-a-function version when SVN_HASH__GETS_SETS is defined, rather than (directly) when SVN_DEBUG is defined. * subversion/libsvn_subr/hash.c Define SVN_HASH__GETS_SETS before including svn_hash.h. Modified: subversion/trunk/subversion/include/svn_hash.h subversion/trunk/subversion/libsvn_subr/hash.c Modified: subversion/trunk/subversion/include/svn_hash.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_hash.h?rev=1663940&r1=1663939&r2=1663940&view=diff ============================================================================== --- subversion/trunk/subversion/include/svn_hash.h (original) +++ subversion/trunk/subversion/include/svn_hash.h Wed Mar 4 11:33:05 2015 @@ -239,20 +239,23 @@ svn_hash_from_cstring_keys(apr_hash_t ** const apr_array_header_t *keys, apr_pool_t *pool); -/* In debug builds, the svn_hash_gets and svn_hash_sets macros forward their - * parameters through these functions in order to gain type checking for the - * 'key' parameter which the basic apr_hash_* APIs declare only as 'void *'. +/* For the Subversion developers, this #define makes the svn_hash_gets and + * svn_hash_sets macros forward their parameters through functions in order to + * gain type checking for the 'key' parameter which the basic apr_hash_* APIs + * declare only as 'void *'. */ +#ifdef SVN_DEBUG +#define SVN_HASH__GETS_SETS +#endif + +#ifdef SVN_HASH__GETS_SETS void * svn_hash__gets(apr_hash_t *ht, const char *key); -void -svn_hash__sets(apr_hash_t *ht, const char *key, const void *value); /** Shortcut for apr_hash_get() with a const char * key. * * @since New in 1.8. */ -#ifdef SVN_DEBUG #define svn_hash_gets(ht, key) \ svn_hash__gets(ht, key) #else @@ -260,11 +263,14 @@ svn_hash__sets(apr_hash_t *ht, const cha apr_hash_get(ht, key, APR_HASH_KEY_STRING) #endif +#ifdef SVN_HASH__GETS_SETS +void +svn_hash__sets(apr_hash_t *ht, const char *key, const void *value); + /** Shortcut for apr_hash_set() with a const char * key. * * @since New in 1.8. */ -#ifdef SVN_DEBUG #define svn_hash_sets(ht, key, val) \ svn_hash__sets(ht, key, val) #else Modified: subversion/trunk/subversion/libsvn_subr/hash.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/hash.c?rev=1663940&r1=1663939&r2=1663940&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_subr/hash.c (original) +++ subversion/trunk/subversion/libsvn_subr/hash.c Wed Mar 4 11:33:05 2015 @@ -31,10 +31,14 @@ #include <apr_hash.h> #include <apr_file_io.h> +#ifndef SVN_HASH__GETS_SETS +#define SVN_HASH__GETS_SETS +#endif +#include "svn_hash.h" + #include "svn_types.h" #include "svn_string.h" #include "svn_error.h" -#include "svn_hash.h" #include "svn_sorts.h" #include "svn_io.h" #include "svn_pools.h" @@ -45,7 +49,6 @@ #include "svn_private_config.h" - /*