diff options
author | Tim Janik <timj@gtk.org> | 2001-05-10 13:58:40 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 2001-05-10 13:58:40 +0000 |
commit | a5947b9df810b824dd35fa572a3ad74d03d0f800 (patch) | |
tree | eeb99647c12b39f2f1371c229335f9e0eafc2e69 /gobject | |
parent | ea05dba9b6dade513ceeac009da0d4e3a8eae59e (diff) | |
download | glib-a5947b9df810b824dd35fa572a3ad74d03d0f800.tar.gz |
use g_str_hash() algorithm to generate hashes.
Thu May 10 15:19:01 2001 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_key_hash): use g_str_hash() algorithm
to generate hashes.
* gmem.c (standard_calloc): free() doesn't return a value
(Mark Murnane).
Thu May 10 14:00:48 2001 Tim Janik <timj@gtk.org>
* gparamspecs.[hc]: removed g_param_spec_stringc() in lack of
evidence of public need.
* gsignal.h: added g_signal_disconnect_by_func(),
g_signal_block_by_func() and g_signal_unblock_by_func() convenience
macros as per owen's request.
* gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo)
to size of longs and pointers.
Diffstat (limited to 'gobject')
-rw-r--r-- | gobject/ChangeLog | 12 | ||||
-rw-r--r-- | gobject/gparamspecs.c | 25 | ||||
-rw-r--r-- | gobject/gparamspecs.h | 5 | ||||
-rw-r--r-- | gobject/gsignal.h | 11 | ||||
-rw-r--r-- | gobject/gtype.c | 9 |
5 files changed, 28 insertions, 34 deletions
diff --git a/gobject/ChangeLog b/gobject/ChangeLog index b6fa6096f..a2182674d 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,15 @@ +Thu May 10 14:00:48 2001 Tim Janik <timj@gtk.org> + + * gparamspecs.[hc]: removed g_param_spec_stringc() in lack of + evidence of public need. + + * gsignal.h: added g_signal_disconnect_by_func(), + g_signal_block_by_func() and g_signal_unblock_by_func() convenience + macros as per owen's request. + + * gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo) + to size of longs and pointers. + 2001-05-05 James Henstridge <james@daa.com.au> * Makefile.am: glib-mkenums is not a compiled program, so shouldn't diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c index cc4472808..9b2f10461 100644 --- a/gobject/gparamspecs.c +++ b/gobject/gparamspecs.c @@ -1578,31 +1578,6 @@ g_param_spec_string (const gchar *name, } GParamSpec* -g_param_spec_stringc (const gchar *name, - const gchar *nick, - const gchar *blurb, - const gchar *default_value, - GParamFlags flags) -{ - GParamSpecString *sspec = g_param_spec_internal (G_TYPE_PARAM_STRING, - name, - nick, - blurb, - flags); - g_free (sspec->default_value); - sspec->default_value = g_strdup (default_value); - g_free (sspec->cset_first); - sspec->cset_first = g_strdup (G_CSET_a_2_z "_" G_CSET_A_2_Z); - g_free (sspec->cset_nth); - sspec->cset_nth = g_strdup (G_CSET_a_2_z - "_0123456789" - /* G_CSET_LATINS G_CSET_LATINC */ - G_CSET_A_2_Z); - - return G_PARAM_SPEC (sspec); -} - -GParamSpec* g_param_spec_param (const gchar *name, const gchar *nick, const gchar *blurb, diff --git a/gobject/gparamspecs.h b/gobject/gparamspecs.h index 3829d6cdb..89679b9ef 100644 --- a/gobject/gparamspecs.h +++ b/gobject/gparamspecs.h @@ -305,11 +305,6 @@ GParamSpec* g_param_spec_string (const gchar *name, const gchar *blurb, const gchar *default_value, GParamFlags flags); -GParamSpec* g_param_spec_stringc (const gchar *name, - const gchar *nick, - const gchar *blurb, - const gchar *default_value, - GParamFlags flags); GParamSpec* g_param_spec_param (const gchar *name, const gchar *nick, const gchar *blurb, diff --git a/gobject/gsignal.h b/gobject/gsignal.h index 4da55fd81..9c429b776 100644 --- a/gobject/gsignal.h +++ b/gobject/gsignal.h @@ -218,7 +218,16 @@ guint g_signal_handlers_disconnect_matched (gpointer instance, /* --- convenience --- */ #define g_signal_connectc(instance, detailed_signal, c_handler, data, swapped) \ g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (swapped), FALSE) - +#define g_signal_disconnect_by_func(instance, func, data) \ + g_signal_handlers_disconnect_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \ + 0, 0, NULL, (func), (data)) +#define g_signal_block_by_func(instance, func, data) \ + g_signal_handlers_block_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \ + 0, 0, NULL, (func), (data)) +#define g_signal_unblock_by_func(instance, func, data) \ + g_signal_handlers_unblock_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \ + 0, 0, NULL, (func), (data)) + /*< private >*/ void g_signal_handlers_destroy (gpointer instance); void _g_signals_destroy (GType itype); diff --git a/gobject/gtype.c b/gobject/gtype.c index f1d3dac0f..590598c57 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -99,6 +99,9 @@ static GStaticRWLock type_rw_lock = G_STATIC_RW_LOCK_INIT; G_TYPE_FLAG_DERIVABLE | \ G_TYPE_FLAG_DEEP_DERIVABLE) #define TYPE_FLAG_MASK (G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT) +#define SIZEOF_FUNDAMENTAL_INFO ((gssize) MAX (MAX (sizeof (GTypeFundamentalInfo), \ + sizeof (gpointer)), \ + sizeof (glong))) /* --- typedefs --- */ @@ -287,12 +290,12 @@ type_node_any_new_W (TypeNode *pnode, static_type_nodes[ftype] = g_renew (TypeNode*, static_type_nodes[ftype], 1 << g_bit_storage (static_branch_seqnos[ftype] - 1)); if (!pnode) - node_size += sizeof (GTypeFundamentalInfo); /* fundamental type info */ + node_size += SIZEOF_FUNDAMENTAL_INFO; /* fundamental type info */ node_size += SIZEOF_BASE_TYPE_NODE (); /* TypeNode structure */ node_size += (sizeof (GType) * (1 + n_supers + 1)); /* self + ancestors + 0 for ->supers[] */ node = g_malloc0 (node_size); if (!pnode) /* offset fundamental types */ - node = G_STRUCT_MEMBER_P (node, sizeof (GTypeFundamentalInfo)); + node = G_STRUCT_MEMBER_P (node, SIZEOF_FUNDAMENTAL_INFO); static_type_nodes[ftype][branch_last] = node; node->n_supers = n_supers; @@ -362,7 +365,7 @@ type_node_fundamental_info_L (TypeNode *node) if (ftype != NODE_TYPE (node)) node = lookup_type_node_L (ftype); - return node ? G_STRUCT_MEMBER_P (node, - (gssize) sizeof (GTypeFundamentalInfo)) : NULL; + return node ? G_STRUCT_MEMBER_P (node, - SIZEOF_FUNDAMENTAL_INFO) : NULL; } static TypeNode* |