[gegl] buffer (ops): follow up commit, using gegl_buffer_signal_connect



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]