[gtk/wip/chergert/remove-emit-by-name] texttag: avoid use of g_signal_emit_by_name()



commit cc7ae525efe5432e63cc993bbeadc0bda3daad17
Author: Christian Hergert <chergert redhat com>
Date:   Wed Sep 4 19:39:24 2019 -0700

    texttag: avoid use of g_signal_emit_by_name()
    
    This avoids looking up the signal by name and instead uses the saved
    signal identifier from gtktexttagtable.c

 gtk/gtktexttag.c             | 6 ++----
 gtk/gtktexttagtable.c        | 8 ++++++++
 gtk/gtktexttagtableprivate.h | 3 +++
 3 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtktexttag.c b/gtk/gtktexttag.c
index 27fbdff6b7..d04606f463 100644
--- a/gtk/gtktexttag.c
+++ b/gtk/gtktexttag.c
@@ -77,6 +77,7 @@
 #include "gtktexttag.h"
 #include "gtktexttypes.h"
 #include "gtktexttagtable.h"
+#include "gtktexttagtableprivate.h"
 #include "gtkintl.h"
 #include "gtkmarshalers.h"
 #include "gtkprivate.h"
@@ -2029,10 +2030,7 @@ gtk_text_tag_changed (GtkTextTag *tag,
    * added, this would increase significantly the number of signal connections.
    */
   if (priv->table != NULL)
-    g_signal_emit_by_name (priv->table,
-                           "tag-changed",
-                           tag,
-                           size_changed);
+    _gtk_text_tag_table_tag_changed (priv->table, tag, size_changed);
 }
 
 static int
diff --git a/gtk/gtktexttagtable.c b/gtk/gtktexttagtable.c
index 0b2e6623c7..81a852ccc3 100644
--- a/gtk/gtktexttagtable.c
+++ b/gtk/gtktexttagtable.c
@@ -484,3 +484,11 @@ _gtk_text_tag_table_remove_buffer (GtkTextTagTable *table,
 
   priv->buffers = g_slist_remove (priv->buffers, buffer);
 }
+
+void
+_gtk_text_tag_table_tag_changed (GtkTextTagTable *table,
+                                 GtkTextTag      *tag,
+                                 gboolean         size_changed)
+{
+  g_signal_emit (table, signals[TAG_CHANGED], 0, tag, size_changed);
+}
diff --git a/gtk/gtktexttagtableprivate.h b/gtk/gtktexttagtableprivate.h
index 969cc4e2c8..0a8401e695 100644
--- a/gtk/gtktexttagtableprivate.h
+++ b/gtk/gtktexttagtableprivate.h
@@ -33,6 +33,9 @@ void _gtk_text_tag_table_add_buffer    (GtkTextTagTable *table,
                                         gpointer         buffer);
 void _gtk_text_tag_table_remove_buffer (GtkTextTagTable *table,
                                         gpointer         buffer);
+void _gtk_text_tag_table_tag_changed   (GtkTextTagTable *table,
+                                        GtkTextTag      *tag,
+                                        gboolean         size_changed);
 
 G_END_DECLS
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]