summaryrefslogtreecommitdiff
path: root/src/errors.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/errors.c')
-rw-r--r--src/errors.c17
1 files changed, 6 insertions, 11 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)