From d558e87c65517e3646f3b8ebc8f11448e25ccbf2 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Fri, 6 Jun 2014 10:45:51 -0400 Subject: [PATCH] gtype: guard uses of new fundamental type check g_type_is_fundamentally_a (see bug 730984) is a new API/ABI and is marked with a version macro. We should therefore avoid its unconditional use from G_IS_OBJECT() and G_IS_PARAM_SPEC() which are APIs that have been around for a long time. This prevents deprecation warnings from being emitted when these functions are used with an older GLIB_VERSION_MAX_ALLOWED and also prevents linking to the new ABI in that case (so that it's possible to use the resulting binary with an older version of GLib). https://bugzilla.gnome.org/show_bug.cgi?id=731335 --- gobject/gobject.h | 4 ++++ gobject/gparam.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/gobject/gobject.h b/gobject/gobject.h index a2f9af3d8..522011fe3 100644 --- a/gobject/gobject.h +++ b/gobject/gobject.h @@ -62,7 +62,11 @@ G_BEGIN_DECLS * * Checks whether a valid #GTypeInstance pointer is of type %G_TYPE_OBJECT. */ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_42 #define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((object), G_TYPE_OBJECT)) +#else +#define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT)) +#endif /** * G_IS_OBJECT_CLASS: * @class: a #GObjectClass diff --git a/gobject/gparam.h b/gobject/gparam.h index 8f216e4ce..7f77ca821 100644 --- a/gobject/gparam.h +++ b/gobject/gparam.h @@ -50,7 +50,11 @@ G_BEGIN_DECLS * Checks whether @pspec "is a" valid #GParamSpec structure of type %G_TYPE_PARAM * or derived. */ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_42 #define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((pspec), G_TYPE_PARAM)) +#else +#define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM)) +#endif /** * G_PARAM_SPEC_CLASS: * @pclass: a valid #GParamSpecClass