[gegl] buffer (ops): follow up commit, using gegl_buffer_signal_connect
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] buffer (ops): follow up commit, using gegl_buffer_signal_connect
- Date: Wed, 18 Jun 2014 18:26:02 +0000 (UTC)
commit b8e2787a10696272c46bb7071bebe4756376201d
Author: Øyvind Kolås <pippin gimp org>
Date: Wed Jun 18 20:24:49 2014 +0200
buffer (ops): follow up commit, using gegl_buffer_signal_connect
This way of doing it is ugly - it might be that reimplementing a custom list
of callbacks instead of using gobject signals would be better.
operations/common/buffer-source.c | 4 +++-
operations/common/open-buffer.c | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/operations/common/buffer-source.c b/operations/common/buffer-source.c
index 68c9cb4..7c239ce 100644
--- a/operations/common/buffer-source.c
+++ b/operations/common/buffer-source.c
@@ -102,10 +102,11 @@ my_set_property (GObject *gobject,
// Invariant: valid buffer should always have valid signal handler
g_assert(p->buffer_changed_handler > 0);
g_signal_handler_disconnect (o->buffer, p->buffer_changed_handler);
+ /* XXX: should decrement signal connected count */
}
buffer = G_OBJECT (g_value_get_object (value));
if (buffer) {
- p->buffer_changed_handler = g_signal_connect (buffer, "changed", G_CALLBACK(buffer_changed),
operation);
+ p->buffer_changed_handler = gegl_buffer_signal_connect (buffer, "changed",
G_CALLBACK(buffer_changed), operation);
}
break;
default:
@@ -155,6 +156,7 @@ dispose (GObject *object)
// Invariant: valid buffer should always have valid signal handler
g_assert(p->buffer_changed_handler > 0);
g_signal_handler_disconnect (o->buffer, p->buffer_changed_handler);
+ /* XXX: should decrement signal connected count */
g_object_unref (o->buffer);
o->buffer = NULL;
}
diff --git a/operations/common/open-buffer.c b/operations/common/open-buffer.c
index 732c145..37c6cc1 100644
--- a/operations/common/open-buffer.c
+++ b/operations/common/open-buffer.c
@@ -50,8 +50,8 @@ static GeglBuffer *ensure_buffer (GeglOperation *operation)
buffer = gegl_buffer_open (o->path);
o->user_data = buffer;
}
- g_signal_connect (buffer, "changed",
- G_CALLBACK(buffer_changed), operation);
+ gegl_buffer_signal_connect (buffer, "changed",
+ G_CALLBACK(buffer_changed), operation);
return buffer;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]