diff options
| author | Luiz Capitulino <lcapitulino@redhat.com> | 2011-12-05 16:04:05 -0200 |
|---|---|---|
| committer | Luiz Capitulino <lcapitulino@redhat.com> | 2012-03-15 10:39:52 -0300 |
| commit | 79020cfcbb78a85768174bb93ee3b7cfc6ffa353 (patch) | |
| tree | dcdc84f21626931efe67bfa3296850d7cc45d991 | |
| parent | a4acc064f7054877aeffe0ea27a492b15086b833 (diff) | |
| download | focaccia-qemu-79020cfcbb78a85768174bb93ee3b7cfc6ffa353.tar.gz focaccia-qemu-79020cfcbb78a85768174bb93ee3b7cfc6ffa353.zip | |
Error: Introduce error_copy()
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
| -rw-r--r-- | error.c | 13 | ||||
| -rw-r--r-- | error.h | 5 |
2 files changed, 18 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); diff --git a/error.h b/error.h index 6361f407fd..45ff6c1ffe 100644 --- a/error.h +++ b/error.h @@ -35,6 +35,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. */ const char *error_get_pretty(Error *err); |