[Spice-devel] [PATCH 4/4] build: move G_DEFINE_BOXED in glib-compat.h
Hans de Goede
hdegoede at redhat.com
Fri Sep 23 00:28:26 PDT 2011
ACK
On 09/23/2011 01:22 AM, Marc-André Lureau wrote:
> ---
> gtk/Makefile.am | 2 +
> gtk/display/gnome-rr.c | 46 +-------------------------------
> gtk/glib-compat.h | 65 ++++++++++++++++++++++++++++++++++++++++++++++
> gtk/smartcard-manager.c | 2 +
> gtk/usb-device-manager.c | 2 +
> 5 files changed, 73 insertions(+), 44 deletions(-)
> create mode 100644 gtk/glib-compat.h
>
> diff --git a/gtk/Makefile.am b/gtk/Makefile.am
> index 31e2a77..43da8d2 100644
> --- a/gtk/Makefile.am
> +++ b/gtk/Makefile.am
> @@ -186,6 +186,7 @@ GUSB_SRCS =
> endif
>
> libspice_client_glib_2_0_la_SOURCES = \
> + glib-compat.h \
> spice-audio.c \
> spice-common.h \
> spice-util.c \
> @@ -317,6 +318,7 @@ libspice_client_glib_2_0_la_LIBADD += $(GTHREAD_LIBS)
> endif
>
> displaysrc = \
> + glib-compat.h \
> display/edid.h \
> display/edid-parse.c \
> display/display-name.c \
> diff --git a/gtk/display/gnome-rr.c b/gtk/display/gnome-rr.c
> index 71902bd..5de86dd 100644
> --- a/gtk/display/gnome-rr.c
> +++ b/gtk/display/gnome-rr.c
> @@ -30,6 +30,8 @@
>
> #include<gtk/gtk.h>
>
> +#include "../glib-compat.h"
> +
> #if defined(HAVE_X11)
> #include<X11/Xlib.h>
> #include<gdk/gdkx.h>
> @@ -77,50 +79,6 @@ static void gnome_rr_screen_initable_iface_init (GInitableIface *iface);
> G_DEFINE_TYPE_WITH_CODE (GnomeRRScreen, gnome_rr_screen, G_TYPE_OBJECT,
> G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, gnome_rr_screen_initable_iface_init))
>
> -#if !GLIB_CHECK_VERSION(2,26,0)
> -#define G_DEFINE_BOXED_TYPE(TypeName, type_name, copy_func, free_func) G_DEFINE_BOXED_TYPE_WITH_CODE (TypeName, type_name, copy_func, free_func, {})
> -#define G_DEFINE_BOXED_TYPE_WITH_CODE(TypeName, type_name, copy_func, free_func, _C_) _G_DEFINE_BOXED_TYPE_BEGIN (TypeName, type_name, copy_func, free_func) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
> -#if __GNUC__> 2 || (__GNUC__ == 2&& __GNUC_MINOR__>= 7)
> -#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \
> -GType \
> -type_name##_get_type (void) \
> -{ \
> - static volatile gsize g_define_type_id__volatile = 0; \
> - if (g_once_init_enter (&g_define_type_id__volatile)) \
> - { \
> - GType (* _g_register_boxed) \
> - (const gchar *, \
> - union \
> - { \
> - TypeName * (*do_copy_type) (TypeName *); \
> - TypeName * (*do_const_copy_type) (const TypeName *); \
> - GBoxedCopyFunc do_copy_boxed; \
> - } __attribute__((__transparent_union__)), \
> - union \
> - { \
> - void (* do_free_type) (TypeName *); \
> - GBoxedFreeFunc do_free_boxed; \
> - } __attribute__((__transparent_union__)) \
> - ) = g_boxed_type_register_static; \
> - GType g_define_type_id = \
> - _g_register_boxed (g_intern_static_string (#TypeName), copy_func, free_func); \
> - { /* custom code follows */
> -#else
> -#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \
> -GType \
> -type_name##_get_type (void) \
> -{ \
> - static volatile gsize g_define_type_id__volatile = 0; \
> - if (g_once_init_enter (&g_define_type_id__volatile)) \
> - { \
> - GType g_define_type_id = \
> - g_boxed_type_register_static (g_intern_static_string (#TypeName), \
> - (GBoxedCopyFunc) copy_func, \
> - (GBoxedFreeFunc) free_func); \
> - { /* custom code follows */
> -#endif /* __GNUC__ */
> -#endif /* glib 2.26 */
> -
> G_DEFINE_BOXED_TYPE (GnomeRRCrtc, gnome_rr_crtc, crtc_copy, crtc_free)
> G_DEFINE_BOXED_TYPE (GnomeRROutput, gnome_rr_output, output_copy, output_free)
> G_DEFINE_BOXED_TYPE (GnomeRRMode, gnome_rr_mode, mode_copy, mode_free)
> diff --git a/gtk/glib-compat.h b/gtk/glib-compat.h
> new file mode 100644
> index 0000000..b111c91
> --- /dev/null
> +++ b/gtk/glib-compat.h
> @@ -0,0 +1,65 @@
> +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
> +/*
> + This library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + This library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with this library; if not, see<http://www.gnu.org/licenses/>.
> +*/
> +#ifndef GLIB_COMPAT_H
> +#define GLIB_COMPAT_H
> +
> +#include<glib-object.h>
> +
> +#if !GLIB_CHECK_VERSION(2,26,0)
> +#define G_DEFINE_BOXED_TYPE(TypeName, type_name, copy_func, free_func) G_DEFINE_BOXED_TYPE_WITH_CODE (TypeName, type_name, copy_func, free_func, {})
> +#define G_DEFINE_BOXED_TYPE_WITH_CODE(TypeName, type_name, copy_func, free_func, _C_) _G_DEFINE_BOXED_TYPE_BEGIN (TypeName, type_name, copy_func, free_func) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
> +#if __GNUC__> 2 || (__GNUC__ == 2&& __GNUC_MINOR__>= 7)
> +#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \
> +GType \
> +type_name##_get_type (void) \
> +{ \
> + static volatile gsize g_define_type_id__volatile = 0; \
> + if (g_once_init_enter (&g_define_type_id__volatile)) \
> + { \
> + GType (* _g_register_boxed) \
> + (const gchar *, \
> + union \
> + { \
> + TypeName * (*do_copy_type) (TypeName *); \
> + TypeName * (*do_const_copy_type) (const TypeName *); \
> + GBoxedCopyFunc do_copy_boxed; \
> + } __attribute__((__transparent_union__)), \
> + union \
> + { \
> + void (* do_free_type) (TypeName *); \
> + GBoxedFreeFunc do_free_boxed; \
> + } __attribute__((__transparent_union__)) \
> + ) = g_boxed_type_register_static; \
> + GType g_define_type_id = \
> + _g_register_boxed (g_intern_static_string (#TypeName), copy_func, free_func); \
> + { /* custom code follows */
> +#else
> +#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \
> +GType \
> +type_name##_get_type (void) \
> +{ \
> + static volatile gsize g_define_type_id__volatile = 0; \
> + if (g_once_init_enter (&g_define_type_id__volatile)) \
> + { \
> + GType g_define_type_id = \
> + g_boxed_type_register_static (g_intern_static_string (#TypeName), \
> + (GBoxedCopyFunc) copy_func, \
> + (GBoxedFreeFunc) free_func); \
> + { /* custom code follows */
> +#endif /* __GNUC__ */
> +#endif /* glib 2.26 */
> +
> +#endif /* GLIB_COMPAT_H */
> diff --git a/gtk/smartcard-manager.c b/gtk/smartcard-manager.c
> index 806aee5..df29088 100644
> --- a/gtk/smartcard-manager.c
> +++ b/gtk/smartcard-manager.c
> @@ -20,6 +20,8 @@
> #include<glib-object.h>
> #include<string.h>
>
> +#include "glib-compat.h"
> +
> #ifdef USE_SMARTCARD
> #include<vcard_emul.h>
> #include<vevent.h>
> diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c
> index b14369a..f2dbf90 100644
> --- a/gtk/usb-device-manager.c
> +++ b/gtk/usb-device-manager.c
> @@ -24,6 +24,8 @@
> #include<glib-object.h>
> #include<gio/gio.h> /* For GInitable */
>
> +#include "glib-compat.h"
> +
> #ifdef USE_USBREDIR
> #include<gusb/gusb-source.h>
> #include<gusb/gusb-device-list.h>
More information about the Spice-devel
mailing list