You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Daniel Rall <dl...@collab.net> on 2007/05/22 21:38:16 UTC

Inconsistent sub-pool usage in libsvn_ra_svn

On Mon, 21 May 2007, hwright@tigris.org wrote:
...
> --- branches/merge-sensitive-log/subversion/libsvn_ra_svn/client.c	(original)
> +++ branches/merge-sensitive-log/subversion/libsvn_ra_svn/client.c	Mon May 21 12:51:33 2007
> @@ -1179,7 +1179,7 @@
>                                 int limit,
>                                 svn_boolean_t discover_changed_paths,
>                                 svn_boolean_t strict_node_history,
> -                               svn_log_message_receiver_t receiver,
> +                               svn_log_message_receiver2_t receiver,
>                                 void *receiver_baton, apr_pool_t *pool)
>  {
>    svn_ra_svn__session_baton_t *sess_baton = session->priv;
> @@ -1248,8 +1248,17 @@
>          cphash = NULL;
>  
>        if (! (limit && ++nreceived > limit))
> -        SVN_ERR(receiver(receiver_baton, cphash, rev, author, date, message,
> -                         subpool));
> +        {
> +          svn_log_entry_t *log_entry = svn_log_entry_create(subpool);
> +
> +          log_entry->changed_paths = cphash;
> +          log_entry->revision = rev;
> +          log_entry->author = author;
> +          log_entry->date = date;
> +          log_entry->message = message;
> +
> +          SVN_ERR(receiver(receiver_baton, log_entry, subpool));
> +        }
>  
>        apr_pool_clear(subpool);
>      }

Anyone know why ra_svn_log() clears its subpool at the end of its
loop, rather than at the beginning (as per HACKING)?  I mentioned this
to Hyrum on IRC -- he said he noticed it too, but neither of us have
an answer.