[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] extend svn_subst_translate_string2() with a REPAIR parameter

From: Julian Foad <julian.foad_at_wandisco.com>
Date: Tue, 25 Jan 2011 16:40:00 +0000

On Tue, 2011-01-25 at 08:28 -0800, Danny Trebbien wrote:
> > I made one tweak: in the test for detecting an error, after detecting
> > the error, we need to clear the error, otherwise the test harness
> > reports success on the individual test but reports a problem at the end
> > of the test run:
> >
> > PASS: lt-subst_translate-test 1: test svn_subst_translate_string2()
> > /home/julianfoad/bin/svn-c-test: line 35: 11406 Aborted
> >
> > So I added "svn_error_clear(err);" after "SVN_TEST_ASSERT(err->apr_err
> > == SVN_ERR_IO_INCONSISTENT_EOL);".
>
> Is the svn_error_t object reused?

It's not re-used.

Normally, an error ends up being handled by svn_handle_error2() or some
such function, which (after printing out the details) destroys the pool
that was allocated for it.

The problem was that the pool allocated for this particular error was
never being handled, and never being destroyed. Somewhere there is some
code that detects this at program exit time and throws an assertion
failure to warn us programmers of this "leak", because normally an error
not being handled indicates a mistake in the program logic (and a
leaking of memory).

> I thought that whenever an error
> occurs, a new svn_error_t object is allocated.

That's correct.

- Julian
Received on 2011-01-25 17:40:46 CET

This is an archived mail posted to the Subversion Dev mailing list.