summaryrefslogtreecommitdiff
path: root/error.c
diff options
context:
space:
mode:
authorLuiz Capitulino <lcapitulino@redhat.com>2011-12-05 16:04:05 -0200
committerLuiz Capitulino <lcapitulino@redhat.com>2012-03-15 10:39:52 -0300
commit79020cfcbb78a85768174bb93ee3b7cfc6ffa353 (patch)
treedcdc84f21626931efe67bfa3296850d7cc45d991 /error.c
parenta4acc064f7054877aeffe0ea27a492b15086b833 (diff)
downloadqemu-79020cfcbb78a85768174bb93ee3b7cfc6ffa353.tar.gz
qemu-79020cfcbb78a85768174bb93ee3b7cfc6ffa353.tar.bz2
qemu-79020cfcbb78a85768174bb93ee3b7cfc6ffa353.zip
Error: Introduce error_copy()
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Diffstat (limited to 'error.c')
-rw-r--r--error.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/error.c b/error.c
index 990050f792..d3455ab9e6 100644
--- a/error.c
+++ b/error.c
@@ -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);