diff options
Diffstat (limited to 'hieroglyph/hgpath.c')
-rw-r--r-- | hieroglyph/hgpath.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/hieroglyph/hgpath.c b/hieroglyph/hgpath.c index 90d0c1b..b772381 100644 --- a/hieroglyph/hgpath.c +++ b/hieroglyph/hgpath.c @@ -81,28 +81,26 @@ _hg_object_path_initialize(hg_object_t *object, static hg_quark_t _hg_object_path_copy(hg_object_t *object, hg_quark_iterate_func_t func, - gpointer user_data, - gpointer *ret, - GError **error) + hg_pointer_t user_data, + hg_pointer_t *ret) { hg_path_t *path = (hg_path_t *)object, *p = NULL; hg_path_node_t *on, *nn; hg_quark_t retval; - GError *err = NULL; hg_return_val_if_fail (object->type == HG_TYPE_PATH, Qnil); if (object->on_copying != Qnil) return object->on_copying; - object->on_copying = retval = hg_path_new(path->o.mem, (gpointer *)&p); + object->on_copying = retval = hg_path_new(path->o.mem, (hg_pointer_t *)&p); if (retval != Qnil) { p->length = path->length; - on = HG_MEM_LOCK (path->o.mem, path->qnode, &err); - nn = HG_MEM_LOCK (path->o.mem, p->qnode, &err); + on = HG_MEM_LOCK (path->o.mem, path->qnode, NULL); + nn = HG_MEM_LOCK (path->o.mem, p->qnode, NULL); if (on == NULL || nn == NULL) { - goto finalize; + goto bail; } memcpy(nn, on, sizeof (hg_path_node_t) * path->length); hg_mem_unlock_object(path->o.mem, path->qnode); @@ -113,20 +111,13 @@ _hg_object_path_copy(hg_object_t *object, else hg_mem_unlock_object(path->o.mem, retval); } - finalize: - if (err) { - if (error) { - *error = g_error_copy(err); - } else { - hg_warning("%s: %s (code: %d)", - __PRETTY_FUNCTION__, - err->message, - err->code); - } - g_error_free(err); + goto finalize; + bail: + if (p) { hg_object_free(p->o.mem, retval); retval = Qnil; } + finalize: return retval; } |