On Tue, Mar 3, 2015 at 7:10 PM, Julian Foad <julianf...@btopenworld.com> wrote:
> Stefan Fuhrmann wrote: > > Julian Foad wrote: > >> #define svn_hash_sets(ht, key, val) \ > >> do { \ > >> const char *svn_hash__key = (key); \ > >> apr_hash_set(ht, svn_hash__key, APR_HASH_KEY_STRING, val); \ > >> } while (0) > > > > But it would have caught the problem introduced in r1658194. > > > > So, that would be a 50% solution with no obvious drawbacks. > [...] > > > > I can't think of a way to sneak in a type check into the getter > > without evaluating the key twice. > > > > In maintainer mode, though, we could replace the macro(s) > > with a "proper" function. That would not produce overhead > > for production code nor would it interfere with API guarantees. > > Yes. > > I'll change the 'set' macro as above, and I'll introduce a private 'get' > function and make the (public) 'get' macro call the function in debug mode > only. (That's a poor man's version of declaring a function as 'inline'.) > > Committed: http://svn.apache.org/r1663760 > > Thank you! -- Stefan^2.