Daniel Rall wrote:
> And after actually looking at the body of this commit, one might
> notice that it just has the wrong change log message. ;-)
That would be correct. :)
/me really needs to keep log messages and working copies in sync.
-Hyrum
> On Wed, 21 Feb 2007, Daniel Rall wrote:
>
>> Looks like an unrelated change to svn_opt_resolve_revisions() slipped
>> into this commit.
>>
>> - Dan
>>
>> On Wed, 21 Feb 2007, hwright@tigris.org wrote:
>>
>>> Author: hwright
>>> Date: Wed Feb 21 08:49:45 2007
>>> New Revision: 23454
>>>
>>> Log:
>>> When harvesting copy committables, extend the use of the copy_pair loop
>>> iterpool to the actual call to harvest_committables(), and document why this
>>> is possible.
>>>
>>> The primary concern is that the commit_items added to the committables hash are
>>> not allocated from the loop pool. But, because add_committable() uses the hash
>>> pool to allocate the new commit_items, we can safely use the loop pool when
>>> calling harvest_committables().
>>>
>>> This is a followup to r23403.
>>>
>>> * subversion/libsvn_client/commit_util.c
>>> (add_committable, harvest_committables): Update comments to note the fact
>>> that the new committable is allocated from the same pool as the committables
>>> hash.
>>> (svn_client__get_copy_committables): Use the iterpool for calls to
>>> harvest_committables(), and add a comment explaining why this is possible.
>>>
>>>
>>> Modified:
>>> trunk/subversion/include/svn_opt.h
>>> trunk/subversion/libsvn_client/copy.c
>>> trunk/subversion/libsvn_client/ra.c
>>> trunk/subversion/libsvn_subr/opt.c
>>>
>>> Modified: trunk/subversion/include/svn_opt.h
>>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/include/svn_opt.h?pathrev=23454&r1=23453&r2=23454
>>> ==============================================================================
>>> --- trunk/subversion/include/svn_opt.h (original)
>>> +++ trunk/subversion/include/svn_opt.h Wed Feb 21 08:49:45 2007
>>> @@ -392,13 +392,16 @@
>>> * If @a notice_local_mods is set, @c svn_opt_revision_working is used,
>>> * instead of @c svn_opt_revision_base.
>>> *
>>> + * Use @a pool for allocations.
>>> + *
>>> * @since New in 1.5.
>>> */
>>> -void
>>> +svn_error_t *
>>> svn_opt_resolve_revisions(svn_opt_revision_t *peg_rev,
>>> svn_opt_revision_t *op_rev,
>>> svn_boolean_t is_url,
>>> - svn_boolean_t notice_local_mods);
>>> + svn_boolean_t notice_local_mods,
>>> + apr_pool_t *pool);
>>>
>>>
>>> /* Parsing arguments. */
>>>
>>> Modified: trunk/subversion/libsvn_client/copy.c
>>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_client/copy.c?pathrev=23454&r1=23453&r2=23454
>>> ==============================================================================
>>> --- trunk/subversion/libsvn_client/copy.c (original)
>>> +++ trunk/subversion/libsvn_client/copy.c Wed Feb 21 08:49:45 2007
>>> @@ -1343,10 +1343,11 @@
>>> pair->src_op_revision = *source->revision;
>>> pair->src_peg_revision = *source->peg_revision;
>>>
>>> - svn_opt_resolve_revisions(&pair->src_peg_revision,
>>> - &pair->src_op_revision,
>>> - svn_path_is_url(pair->src),
>>> - TRUE);
>>> + SVN_ERR(svn_opt_resolve_revisions(&pair->src_peg_revision,
>>> + &pair->src_op_revision,
>>> + svn_path_is_url(pair->src),
>>> + TRUE,
>>> + iterpool));
>>> src_basename = svn_path_basename(pair->src, iterpool);
>>>
>>> /* Check to see if all the sources are urls or all working copy
>>> @@ -1372,10 +1373,11 @@
>>> pair->src_op_revision = *source->revision;
>>> pair->src_peg_revision = *source->peg_revision;
>>>
>>> - svn_opt_resolve_revisions(&pair->src_peg_revision,
>>> - &pair->src_op_revision,
>>> - svn_path_is_url(pair->src),
>>> - TRUE);
>>> + SVN_ERR(svn_opt_resolve_revisions(&pair->src_peg_revision,
>>> + &pair->src_op_revision,
>>> + svn_path_is_url(pair->src),
>>> + TRUE,
>>> + pool));
>>>
>>> pair->dst = dst_path_in;
>>> APR_ARRAY_PUSH(copy_pairs, svn_client__copy_pair_t *) = pair;
>>>
>>> Modified: trunk/subversion/libsvn_client/ra.c
>>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_client/ra.c?pathrev=23454&r1=23453&r2=23454
>>> ==============================================================================
>>> --- trunk/subversion/libsvn_client/ra.c (original)
>>> +++ trunk/subversion/libsvn_client/ra.c Wed Feb 21 08:49:45 2007
>>> @@ -886,9 +886,10 @@
>>>
>>> start_rev = *revision;
>>> peg_revision = *peg_revision_p;
>>> - svn_opt_resolve_revisions(&peg_revision, &start_rev,
>>> - svn_path_is_url(path_or_url),
>>> - TRUE);
>>> + SVN_ERR(svn_opt_resolve_revisions(&peg_revision, &start_rev,
>>> + svn_path_is_url(path_or_url),
>>> + TRUE,
>>> + pool));
>>>
>>> SVN_ERR(svn_client__open_ra_session_internal(&ra_session, initial_url,
>>> NULL, NULL, NULL,
>>>
>>> Modified: trunk/subversion/libsvn_subr/opt.c
>>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_subr/opt.c?pathrev=23454&r1=23453&r2=23454
>>> ==============================================================================
>>> --- trunk/subversion/libsvn_subr/opt.c (original)
>>> +++ trunk/subversion/libsvn_subr/opt.c Wed Feb 21 08:49:45 2007
>>> @@ -610,11 +610,12 @@
>>> }
>>>
>>>
>>> -void
>>> +svn_error_t *
>>> svn_opt_resolve_revisions(svn_opt_revision_t *peg_rev,
>>> svn_opt_revision_t *op_rev,
>>> svn_boolean_t is_url,
>>> - svn_boolean_t notice_local_mods)
>>> + svn_boolean_t notice_local_mods,
>>> + apr_pool_t *pool)
>>> {
>>> if (peg_rev->kind == svn_opt_revision_unspecified)
>>> {
>>> @@ -634,7 +635,7 @@
>>> if (op_rev->kind == svn_opt_revision_unspecified)
>>> *op_rev = *peg_rev;
>>>
>>> - return;
>>> + return SVN_NO_ERROR;
>>> }
>
>
Received on Wed Feb 21 18:59:14 2007