diff options
| author | Vicent Marti <tanoku@gmail.com> | 2013-11-05 14:56:10 +0100 | 
|---|---|---|
| committer | Vicent Marti <tanoku@gmail.com> | 2013-11-05 14:56:10 +0100 | 
| commit | 1eab9f0e32178a9aac941583c69e1b9cf9849f77 (patch) | |
| tree | 7d1648b25f154516680397b4fb3941e50ef2c3b7 /src | |
| parent | 3b259cbd1afdc96a3c3eb7af5895b310c1ac2a7d (diff) | |
| download | libgit2-1eab9f0e32178a9aac941583c69e1b9cf9849f77.tar.gz | |
error: Simplify giterr_detach
Diffstat (limited to 'src')
| -rw-r--r-- | src/errors.c | 17 | ||||
| -rw-r--r-- | src/iterator.c | 11 | 
2 files changed, 12 insertions, 16 deletions
| diff --git a/src/errors.c b/src/errors.c index 70b5f2668..d04da4ca9 100644 --- a/src/errors.c +++ b/src/errors.c @@ -112,27 +112,22 @@ void giterr_clear(void)  #endif  } -git_error_t giterr_detach(git_buf *message) +int giterr_detach(git_error *cpy)  { -	git_error_t rval;  	git_error *error = GIT_GLOBAL->last_error; -	assert(message); - -	git_buf_free(message); +	assert(cpy);  	if (!error) -		return GITERR_NONE; - -	rval = error->klass; +		return -1; -	if (error != &g_git_oom_error) -		git_buf_attach(message, error->message, 0); +	cpy->message = error->message; +	cpy->klass = error->klass;  	error->message = NULL;  	giterr_clear(); -	return rval; +	return 0;  }  const git_error *giterr_last(void) diff --git a/src/iterator.c b/src/iterator.c index 369a079bc..8646399ab 100644 --- a/src/iterator.c +++ b/src/iterator.c @@ -991,8 +991,9 @@ static int fs_iterator__expand_dir(fs_iterator *fi)  		fi->base.start, fi->base.end, &ff->entries);  	if (error < 0) { -		git_buf     msg = GIT_BUF_INIT; -		git_error_t errt = giterr_detach(&msg); +		git_error last_error = {0}; + +		giterr_detach(&last_error);  		/* these callbacks may clear the error message */  		fs_iterator__free_frame(ff); @@ -1000,9 +1001,9 @@ static int fs_iterator__expand_dir(fs_iterator *fi)  		/* next time return value we skipped to */  		fi->base.flags &= ~GIT_ITERATOR_FIRST_ACCESS; -		if (msg.ptr) { -			giterr_set_str(errt, msg.ptr); -			git_buf_free(&msg); +		if (last_error.message) { +			giterr_set_str(last_error.klass, last_error.message); +			free(last_error.message);  		}  		return error; | 
