danie...@apache.org wrote:

> URL: http://svn.apache.org/viewvc?rev=1329609&view=rev
> Log:
> Follow-up to r1329601:
> 
> * subversion/include/svn_error.h
>   (SVN_ERR_ASSERT2): New.
> 
> * subversion/libsvn_fs/fs-loader.c
>   (svn_fs_commit_txn): Use new macro to not-leak errors upon asserting.
> 
> Modified: subversion/trunk/subversion/include/svn_error.h
> ==============================================================================
> +/** Like SVN_ERR_ASSERT(), but append ERR to the returned error chain.
> + *
> + * If EXPR is true, return a malfunction error whose chain includes ERR.
> + * If EXPR is false, do nothing.  (In particular, this does not clear ERR.)

True and false are the wrong way around.

- Julian


> + *
> + * @since New in 1.8.
> + */
> +#ifdef __clang_analyzer__
> +#include <assert.h>
> +/* Just ignore ERR.  If the assert triggers, it'll be our least concern. */
> +#define SVN_ERR_ASSERT2(expr, err)       assert((expr))
> +#else
> +#define SVN_ERR_ASSERT2(expr, err)                                     \
> +  do {                                                                 \
> +    if (!(expr)) {                                                     \
> +      return svn_error_compose_create(                                 \
> +               svn_error__malfunction(TRUE, __FILE__, __LINE__, #expr), \
> +               (err));                                                  \
> +    }                                                                   \
> +  } while (0)
> +#endif

Reply via email to