Asbjørn Pettersen writes:
> I'm a little confused by the use of the svn_pool_create() and
> svn_pool_destroy() functions.
> The svn_pool_destroy() isn't always called !? especially on "subpools".
> The SVN_ERR() also return without calling destroy()
>
>
> Example:
> subversion/subversion/libsvn_client/checkout.c
>
> svn_client__checkout_internal()
> {
> // ....
> apr_pool_t *session_pool = svn_pool_create(pool);
>
> /* Get the RA connection. */
> SVN_ERR(svn_client__ra_session_from_path(&ra_session, &revnum,
> &session_url, url,
> peg_revision, revision, ctx,
> session_pool));
>
> SVN_ERR(svn_ra_check_path(ra_session, "", revnum, &kind, pool));
> if (kind == svn_node_none)
> // ------------- Why not a call destroy() here ?
> // svn_pool_destroy(session_pool);
Because the parent pool will destroy the subpool eventually, and in the
error case, this is expected to happen quite soon. This avoids code
cluttering a lot. There's some information of pool usage in hacking.
Regards,
//Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Oct 13 16:24:53 2006