On Wed, Aug 4, 2010 at 16:45,  <rhuij...@apache.org> wrote:
>...
> +++ subversion/trunk/subversion/libsvn_wc/deprecated.c Wed Aug  4 20:45:46 
> 2010
> @@ -2330,12 +2330,26 @@ svn_wc_props_modified_p(svn_boolean_t *m
>                         svn_wc_adm_access_t *adm_access,
>                         apr_pool_t *pool)
>  {
> -  svn_wc__db_t *db = svn_wc__adm_get_db(adm_access);
> +  svn_wc_context_t *wc_ctx;
>   const char *local_abspath;
> +  svn_error_t *err;
>
>   SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, pool));
> +  SVN_ERR(svn_wc__context_create_with_db(&wc_ctx, NULL /* config */,
> +                                         svn_wc__adm_get_db(adm_access), 
> pool));
> +
> +  err = svn_wc_props_modified_p2(modified_p,
> +                                 wc_ctx,
> +                                 local_abspath,
> +                                 pool);
>
> -  return svn_wc__props_modified(modified_p, db, local_abspath, pool);
> +  if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
> +    {
> +      svn_error_clear(err);
> +      *modified_p = FALSE;
> +    }
> +
> +  return svn_error_return(svn_wc_context_destroy(wc_ctx));

You leak an error here, if it isn't PATH_NOT_FOUND.

This is one of the reasons that I prefer the following pattern:

if (err)
  {
    if (!possible-to-handle)
      return svn_error_return(err);
    handle_error();
    svn_error_clear(err);
  }

The error is always returned or cleared. And quite visibly/readable.

>...

Cheers,
-g

Reply via email to