>+
>+ err2 = svn_error_purge_tracing(err);
>+ for (child = err2; child; child = child->child)
>+ if (svn_error__is_tracing_link(child))
>+ {
>+ return svn_error_create(SVN_ERR_TEST_FAILED, err,
>+ "Tracing link found after purging the "
>+ "following chain:");
>+ }
>+
>+ svn_error_clear(err);
The doc of svn_error_purge_tracing(err) says err should *not* be cleared.
<snip>
/**
* Purge from @a err and its child chain any links associated with
* error tracing placeholders, and return the new top-level error
* chain item. @a err should be considered unusable after passing
* through this function, but should *not* be cleared (as the returned
* error shares memory with @a err). @a err can be #SVN_NO_ERROR.
*
* @since New in 1.7.
*/
svn_error_t *svn_error_purge_tracing(svn_error_t *err);
</snip>
Are you sure?
With regards
Kamesh Jayachandran