diff options
author | Tim Janik <timj@gtk.org> | 1998-05-06 01:43:56 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-05-06 01:43:56 +0000 |
commit | 518a8a9c4ed18ea4571e3c9c43c1dbc387e6627b (patch) | |
tree | eb5b0af8fefd7e726af9b6d6d55d19f7f22997a9 /gtk/gtksignal.h | |
parent | c3e04d86ec5a4cd6eb6f62e89e63381f9a70d1fc (diff) | |
download | gtk+-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.h | 7 |
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, |