summaryrefslogtreecommitdiff
path: root/gobject
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>2001-05-10 13:58:40 +0000
committerTim Janik <timj@src.gnome.org>2001-05-10 13:58:40 +0000
commita5947b9df810b824dd35fa572a3ad74d03d0f800 (patch)
treeeeb99647c12b39f2f1371c229335f9e0eafc2e69 /gobject
parentea05dba9b6dade513ceeac009da0d4e3a8eae59e (diff)
downloadglib-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/ChangeLog12
-rw-r--r--gobject/gparamspecs.c25
-rw-r--r--gobject/gparamspecs.h5
-rw-r--r--gobject/gsignal.h11
-rw-r--r--gobject/gtype.c9
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*