Error: Introduce error_copy()

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
Luiz Capitulino 2011-12-05 16:04:05 -02:00
parent a4acc064f7
commit 79020cfcbb
2 changed files with 18 additions and 0 deletions

13
error.c
View File

@ -43,6 +43,19 @@ void error_set(Error **errp, const char *fmt, ...)
*errp = err;
}
Error *error_copy(const Error *err)
{
Error *err_new;
err_new = g_malloc0(sizeof(*err));
err_new->msg = g_strdup(err->msg);
err_new->fmt = err->fmt;
err_new->obj = err->obj;
QINCREF(err_new->obj);
return err_new;
}
bool error_is_set(Error **errp)
{
return (errp && *errp);

View File

@ -34,6 +34,11 @@ void error_set(Error **err, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
*/
bool error_is_set(Error **err);
/**
* Returns an exact copy of the error passed as an argument.
*/
Error *error_copy(const Error *err);
/**
* Get a human readable representation of an error object.
*/