provide a short-cut version for this macro in case
authorTim Janik <timj@gtk.org>
Tue, 3 Feb 2004 20:30:23 +0000 (20:30 +0000)
committerTim Janik <timj@src.gnome.org>
Tue, 3 Feb 2004 20:30:23 +0000 (20:30 +0000)
Tue Feb  3 21:24:01 2004  Tim Janik  <timj@gtk.org>

        * gtype.h (_G_TYPE_CVH): provide a short-cut version for
        this macro in case value->g_type==checked_type for gcc, similar
        to instance and class check short-cuts. this speeds up code that
        makes frequent use of G_VALUE_HOLDS_*() (e.g. setters/getters).

        * gtype.c (type_data_last_unref_Wm): don't call class-cache functions
        for the uncached case, this rendered g_type_class_unref_uncached()
        useless. pointed out by Stefan Westerfeld.

docs/reference/glib/tmpl/string_utils.sgml
docs/reference/glib/tmpl/threads.sgml
gobject/ChangeLog
gobject/gtype.c
gobject/gtype.h

index f4ce415..92b4327 100644 (file)
@@ -819,6 +819,17 @@ nesting such as <literal>g_ascii_strup (g_strcanon (str, "abc", '?'))</literal>.
 @Returns: 
 
 
+<!-- ##### FUNCTION g_strsplit_set ##### -->
+<para>
+
+</para>
+
+@string: 
+@delimiters: 
+@max_tokens: 
+@Returns: 
+
+
 <!-- ##### FUNCTION g_strfreev ##### -->
 <para>
 
index 847ef3a..ab7107a 100644 (file)
@@ -1613,8 +1613,6 @@ Any one-time initialization function must have its own unique <structname>GOnce<
 struct.
 </para>
 
-@status: 
-@retval: 
 @Since: 2.4
 
 <!-- ##### ENUM GOnceStatus ##### -->
index 3a655df..22ec5b0 100644 (file)
@@ -1,3 +1,14 @@
+Tue Feb  3 21:24:01 2004  Tim Janik  <timj@gtk.org>
+
+       * gtype.h (_G_TYPE_CVH): provide a short-cut version for
+       this macro in case value->g_type==checked_type for gcc, similar
+       to instance and class check short-cuts. this speeds up code that
+       makes frequent use of G_VALUE_HOLDS_*() (e.g. setters/getters).
+
+       * gtype.c (type_data_last_unref_Wm): don't call class-cache functions
+       for the uncached case, this rendered g_type_class_unref_uncached()
+       useless. pointed out by Stefan Westerfeld.
+
 Sat Jan 24 18:20:13 2004  Tim Janik  <timj@gtk.org>
 
        * gtype.h: prefixed the parent_class variable defined by G_DEFINE_TYPE()
index 12fb283..3b773ae 100644 (file)
@@ -2009,8 +2009,9 @@ type_data_last_unref_Wm (GType    type,
                 type_descriptive_name_I (type));
       return;
     }
-  
-  if (node->is_classed && node->data && node->data->class.class && static_n_class_cache_funcs)
+
+  /* call class cache hooks */
+  if (node->is_classed && node->data && node->data->class.class && static_n_class_cache_funcs && !uncached)
     {
       guint i;
       
index 9bf7ac9..0e9daf8 100644 (file)
@@ -437,7 +437,6 @@ G_CONST_RETURN gchar* g_type_name_from_class        (GTypeClass     *g_class);
 #  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) cp)
 #endif /* G_DISABLE_CAST_CHECKS */
 #define _G_TYPE_CHI(ip)                        (g_type_check_instance ((GTypeInstance*) ip))
-#define _G_TYPE_CVH(vl, gt)             (g_type_check_value_holds ((GValue*) vl, gt))
 #define _G_TYPE_CHV(vl)                        (g_type_check_value ((GValue*) vl))
 #define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
 #define _G_TYPE_IGI(ip, gt, ct)         ((ct*) g_type_interface_peek (((GTypeInstance*) ip)->g_class, gt))
@@ -458,9 +457,18 @@ G_CONST_RETURN gchar* g_type_name_from_class       (GTypeClass     *g_class);
     __r = g_type_check_class_is_a (__class, __t); \
   __r; \
 }))
+#  define _G_TYPE_CVH(vl, gt)             (G_GNUC_EXTENSION ({ \
+  GValue *__val = (GValue*) vl; GType __t = gt; gboolean __r; \
+  if (__val && __val->g_type == __t) \
+    __r = TRUE; \
+  else \
+    __r = g_type_check_value_holds (__val, __t); \
+  __r; \
+}))
 #else  /* !__GNUC__ */
 #  define _G_TYPE_CIT(ip, gt)             (g_type_check_instance_is_a ((GTypeInstance*) ip, gt))
 #  define _G_TYPE_CCT(cp, gt)             (g_type_check_class_is_a ((GTypeClass*) cp, gt))
+#  define _G_TYPE_CVH(vl, gt)             (g_type_check_value_holds ((GValue*) vl, gt))
 #endif /* !__GNUC__ */
 #define        G_TYPE_FLAG_RESERVED_ID_BIT     ((GType) (1 << 0))
 extern GTypeDebugFlags                 _g_type_debug_flags;