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

Re: svn commit: r1663450 - /subversion/trunk/subversion/libsvn_ra_svn/editorp.c

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Tue, 3 Mar 2015 16:19:31 +0000

[Switching back to plain text]

Stefan Fuhrmann wrote:
> Julian Foad wrote:
>> Thinking about how to prevent a repeat of the same kind of error,
>> defining svn_hash_sets and svn_hash_gets as functions with prototypes
>> would result in at least a compiler warning (for typical configurations).
>
> From r1484181 to r1509166, we already had various more sophisticated
> definitions for those macros. Some of them would have caught the type
> mismatch. I think it would be safe to change them into something like this:
>
> #define svn_hash_sets(ht, key, val)                               \
>   do {                                                            \
>     const char *svn_key__temp = (key);                            \
>     apr_hash_set(ht, svn_key__temp, strlen(svn_key__temp), val);  \
>   } while (0)

That would be safe, and works for *set*. We chose not to use strlen, so this would be

#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)

That style of definition doesn't work for *get*.

- Julian
Received on 2015-03-03 17:20:27 CET

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