summaryrefslogtreecommitdiff
path: root/hieroglyph/hgpath.c
diff options
context:
space:
mode:
Diffstat (limited to 'hieroglyph/hgpath.c')
-rw-r--r--hieroglyph/hgpath.c29
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;
}