summaryrefslogtreecommitdiff
path: root/gtk/gtksignal.h
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>1998-05-06 01:43:56 +0000
committerTim Janik <timj@src.gnome.org>1998-05-06 01:43:56 +0000
commit518a8a9c4ed18ea4571e3c9c43c1dbc387e6627b (patch)
treeeb5b0af8fefd7e726af9b6d6d55d19f7f22997a9 /gtk/gtksignal.h
parentc3e04d86ec5a4cd6eb6f62e89e63381f9a70d1fc (diff)
downloadgtk+-518a8a9c4ed18ea4571e3c9c43c1dbc387e6627b.tar.gz
reimplemented the signal storage system to use a linear array rather than
Wed May 6 02:16:34 1998 Tim Janik <timj@gtk.org> * gtk/gtksignal.c: reimplemented the signal storage system to use a linear array rather than a hash table. be carefull *not* to keep any GtkSignal pointers across invokations of gtk_signal_next_and_invalidate() and therefore gtk_signal_new[v](). general code cleanups, made all allocations through memchunks. (gtk_signal_lookup): we now do the lookup of signals through a key_id for the signal names to avoid multiple hashing of the signal name on lookups for the several hirarchy levels of an object. Tue May 5 15:33:27 1998 Tim Janik <timj@gtk.org> * gtk/gtkmain.c (gtk_init): added gtk_signal_init() to avoid repeatedly checking for signal initialization in gtksignal.c. * gtk/gtktypeutils.c (TYPE_NODES_BLOCK_SIZE): reseted this to 200 after a long debugging period ;) Mon May 4 00:30:11 1998 Tim Janik <timj@gtk.org> * gtk/gtktypeutils.h (GTK_TYPE_IS_A): new macro to speedup gtk_type_is_a(). * gtk/gtktypeutils.c: reimplemented the type storage system to use a linear array rather than a hash table. it actually speeded up testgtk for a *considerable* amount. be carefull *not* to keep any GtkTypeNode pointers across invokations of gtk_type_node_next_and_invalidate() and therefore gtk_type_unique()! * gtk/gtkobject.h (GTK_IS_OBJECT_CLASS): new macro to test for the inheritance of a class pointer. (GTK_OBJECT): modifications for speedups. (GTK_IS_OBJECT): likewise. (GTK_OBJECT_CLASS): likewise. (suggested by owen). * gtk/gtkcontainer.h (GTK_IS_CONTAINER_CLASS): new macro. * gtk/gtkwidget.h (GTK_IS_WIDGET_CLASS): new macro. * gtk/gtk.defs (GtkTooltips): define GtkTooltips as object not as boxed, since its derivation changed 4 month ago ;(. showed up with the unique type name checking code in gtk_type_unique(). * random guint->GtkType and macro fixups.
Diffstat (limited to 'gtk/gtksignal.h')
-rw-r--r--gtk/gtksignal.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/gtk/gtksignal.h b/gtk/gtksignal.h
index 95961b6e09..293c0d6dd2 100644
--- a/gtk/gtksignal.h
+++ b/gtk/gtksignal.h
@@ -32,9 +32,9 @@ extern "C" {
#ifdef offsetof
-#define GTK_SIGNAL_OFFSET(t, f) ((int) offsetof (t, f))
+#define GTK_SIGNAL_OFFSET(t, f) ((gint) offsetof (t, f))
#else /* offsetof */
-#define GTK_SIGNAL_OFFSET(t, f) ((int) ((char*) &((t*) 0)->f))
+#define GTK_SIGNAL_OFFSET(t, f) ((gint) ((gchar*) &((t*) 0)->f))
#endif /* offsetof */
@@ -53,13 +53,14 @@ struct _GtkSignalQuery
GtkType object_type;
guint signal_id;
const gchar *signal_name;
- gboolean is_user_signal;
+ guint is_user_signal : 1;
GtkSignalRunType run_type;
GtkType return_val;
guint nparams;
const GtkType *params;
};
+void gtk_signal_init (void);
guint gtk_signal_new (const gchar *name,
GtkSignalRunType run_type,
GtkType object_type,