On Jul 17, 2009, at 9:47 AM, Julian Foad wrote:
> Hyrum K. Wright wrote:
>> I *think* I fixed this in r38436, but I have no way of testing
>> locally, so I'll have to sit back and see if the buildbots go green.
>> (Or somebody else can run the test through valgrind and see if this
>> fixes the previously presented error.)
>
> I see... Looks likely. Quoting your change...
> [[[
> Index: subversion/libsvn_wc/entries.c
> ===================================================================
> --- subversion/libsvn_wc/entries.c (revision 38435)
> +++ subversion/libsvn_wc/entries.c (revision 38436)
> @@ -2353,20 +2353,20 @@ entries_write_body(svn_wc__db_t *db,
> scratch_pool, scratch_pool);
> if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
> {
> /* We could be looking at a newly added node, without a BASE
> node,
> and hence no dav cache, so just ignore the error. */
> svn_error_clear(err);
> }
> else if (err)
> return err;
> -
> - apr_hash_set(dav_cache, local_abspath, APR_HASH_KEY_STRING,
> child_cache);
> + else
> + apr_hash_set(dav_cache, local_abspath, APR_HASH_KEY_STRING,
> child_cache);
>
> SVN_ERR(svn_wc__db_base_get_children(&children, db, local_abspath,
> scratch_pool, scratch_pool));
>
> for (i = 0; i < children->nelts; i++)
> {
> ]]]
>
> The exact same construct appears a few lines further down as well,
> inside the children loop, so doesn't the same change need to be made
> there?
I don't think so. In the children loop, we continue if we find an
error. In the above, we aren't in a loop, and so have no ability to
use the continue statement.
-Hyrum
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2372086
Received on 2009-07-17 16:53:27 CEST