Changeset 3515 in project for svn-client/trunk/svn-client.scm


Ignore:
Timestamp:
03/17/07 16:23:08 (13 years ago)
Author:
azul
Message:

Fixing memory leaks in the error handling code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • svn-client/trunk/svn-client.scm

    r2562 r3515  
    296296    {
    297297      svn_handle_error(err, stderr, FALSE);
     298      svn_error_clear(err);
    298299      return(C_SCHEME_FALSE);
    299300    }
     
    332333  svn_opt_revision_t rev1, rev2;
    333334  apr_file_t *outfile;
     335  svn_error_t *err;
    334336
    335337  svnwiki_user = user;
     
    341343  mkstemp(template);
    342344  apr_file_open(&outfile, template, APR_WRITE, APR_OS_DEFAULT, svn_pool);
    343   svn_client_diff(diff_opts, path, &rev1, path, &rev2, TRUE, FALSE, TRUE, outfile, NULL, svn_ctx, svn_pool);
     345  err = svn_client_diff(diff_opts, path, &rev1, path, &rev2, TRUE, FALSE, TRUE, outfile, NULL, svn_ctx, svn_pool);
     346  if (err)
     347    {
     348      svn_handle_error(err, stderr, FALSE);
     349      svn_error_clear(err);
     350      return(NULL);
     351    }
    344352  apr_file_close(outfile);
    345353  return(strdup(template));
     
    360368  svnwiki_pass = pass;
    361369
    362   svn_client_ls(&dirents, can_path, &head, FALSE, svn_ctx, svn_pool);
     370  err = svn_client_ls(&dirents, can_path, &head, FALSE, svn_ctx, svn_pool);
     371  if (err)
     372    {
     373      svn_handle_error(err, stderr, FALSE);
     374      svn_error_clear(err);
     375      return(C_SCHEME_FALSE);
     376    }
     377
    363378  for (tmp = apr_hash_first(svn_pool, dirents); tmp; tmp = apr_hash_next(tmp))
    364379    {
     
    373388                          result);
    374389    }
     390
    375391  return(result);
    376392EOF
     
    408424      apr_pool_destroy(pool);
    409425      svn_handle_error(err, stderr, FALSE);
     426      svn_error_clear(err);
    410427      return(C_SCHEME_FALSE);
    411428    }
     
    436453  (foreign-safe-lambda* scheme-object ((c-string path))
    437454#<<EOF
    438   return(svn_client_add(path, 0, svn_ctx, svn_pool) ? C_SCHEME_FALSE : C_SCHEME_TRUE);
     455  svn_error_t *err;
     456  err = svn_client_add(path, 0, svn_ctx, svn_pool);
     457  if (err)
     458    {
     459      svn_handle_error(err, stderr, FALSE);
     460      svn_error_clear(err);
     461      return(C_SCHEME_FALSE);
     462    }
     463  return(C_SCHEME_TRUE);
    439464EOF
    440465))
     
    519544    {
    520545      svn_handle_error(err, stderr, FALSE);
     546      svn_error_clear(err);
    521547      return(C_SCHEME_FALSE);
    522548    }
     
    558584    {
    559585      svn_handle_error(err, stderr, FALSE);
     586      svn_error_clear(err);
    560587      return(C_SCHEME_FALSE);
    561588    }
     
    625652    {
    626653      svn_handle_error(err, stderr, FALSE);
     654      svn_error_clear(err);
    627655      return(C_SCHEME_FALSE);
    628656    }
     
    647675    {
    648676      svn_handle_error(err, stderr, FALSE);
     677      svn_error_clear(err);
    649678      return(C_SCHEME_FALSE);
    650679    }
     
    698727      apr_pool_destroy(pool);
    699728      svn_handle_error(err, stderr, FALSE);
     729      svn_error_clear(err);
    700730      return(NULL);
    701731    }
     
    733763      apr_pool_destroy(pool);
    734764      svn_handle_error(err, stderr, FALSE);
     765      svn_error_clear(err);
    735766      return(C_SCHEME_FALSE);
    736767    }
Note: See TracChangeset for help on using the changeset viewer.