breser_at_apache.org wrote on Mon, Dec 31, 2012 at 23:12:43 -0000:
> Author: breser
> Date: Mon Dec 31 23:12:42 2012
> New Revision: 1427254
>
> URL: http://svn.apache.org/viewvc?rev=1427254&view=rev
> Log:
> svnauthz-validate: Split main in main and sub_main so pool is cleaned up
> properly.
>
What's the benefit of this? Destroying the pool at process exit ---
it's not to reclaim memory. Is it to ensure some pool cleanup callback
fires?
> * tools/server-side/svnauthz-validate.c
> (sub_main): Rename old main to sub_main.
> (main): Move the svn_cmdline_init() and pool creation/destruction in new
> function here.
>
> Modified:
> subversion/trunk/tools/server-side/svnauthz-validate.c
>
> Modified: subversion/trunk/tools/server-side/svnauthz-validate.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/tools/server-side/svnauthz-validate.c?rev=1427254&r1=1427253&r2=1427254&view=diff
> ==============================================================================
> --- subversion/trunk/tools/server-side/svnauthz-validate.c (original)
> +++ subversion/trunk/tools/server-side/svnauthz-validate.c Mon Dec 31 23:12:42 2012
> @@ -105,10 +105,9 @@ get_authz_from_txn(svn_authz_t **authz,
> return SVN_NO_ERROR;
> }
>
> -int
> -main(int argc, const char **argv)
> +static int
> +sub_main(int argc, const char *argv[], apr_pool_t *pool)
> {
> - apr_pool_t *pool;
> svn_error_t *err;
> apr_status_t apr_err;
> svn_authz_t *authz;
> @@ -132,12 +131,6 @@ main(int argc, const char **argv)
> opts.username = opts.fspath = opts.repos_name = opts.txn = NULL;
> opts.repos_path = NULL;
>
> - /* Initialize the app. Send all error messages to 'stderr'. */
> - if (svn_cmdline_init(argv[0], stderr) != EXIT_SUCCESS)
> - return 2;
> -
> - pool = svn_pool_create(NULL);
> -
> /* Repeat svn_cmdline__getopt_init() inline. */
> apr_err = apr_getopt_init(&os, pool, argc, argv);
> if (apr_err)
> @@ -282,8 +275,6 @@ main(int argc, const char **argv)
> );
> }
>
> - svn_pool_destroy(pool);
> -
> if (err)
> {
> svn_handle_error2(err, stderr, FALSE, "svnauthz-validate: ");
> @@ -295,3 +286,21 @@ main(int argc, const char **argv)
> return 0;
> }
> }
> +
> +int
> +main(int argc, const char *argv[])
> +{
> + apr_pool_t *pool;
> + int exit_code;
> +
> + /* Initialize the app. Send all error messages to 'stderr'. */
> + if (svn_cmdline_init(argv[0], stderr) != EXIT_SUCCESS)
> + return 2;
> +
> + pool = svn_pool_create(NULL);
> +
> + exit_code = sub_main(argc, argv, pool);
> +
> + svn_pool_destroy(pool);
> + return exit_code;
> +}
>
>
Received on 2013-01-03 21:18:38 CET