Skip to content

Commit

Permalink
Extract backward compatible codes for GLib 2.32 API change
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Jul 13, 2013
1 parent 74c485f commit 4e7a5f9
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 25 deletions.
2 changes: 2 additions & 0 deletions cutter/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ libcutter_public_headers = \
noinst_headers = \
cut-crash-backtrace.h \
cut-elf-loader.h \
cut-glib-compatible.h \
cut-loader.h \
cut-mach-o-loader.h \
cut-module-impl.h \
Expand Down Expand Up @@ -131,6 +132,7 @@ libcutter_sources = \
cut-elf-loader.c \
cut-factory-builder.c \
cut-file-stream-reader.c \
cut-glib-compatible.c \
cut-helper.c \
cut-iterated-test.c \
cut-listener.c \
Expand Down
46 changes: 46 additions & 0 deletions cutter/cut-glib-compatible.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* Copyright (C) 2013 Kouhei Sutou <kou@clear-code.com>
*
* 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 3 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif /* HAVE_CONFIG_H */

#include "cut-glib-compatible.h"

#if GLIB_CHECK_VERSION(2, 32, 0)
GMutex *
cut_glib_compatible_mutex_new(void)
{
GMutex *mutex;
mutex = g_new(GMutex, 1);
g_mutex_init(mutex);
return mutex;
}

void
cut_glib_compatible_mutex_free(GMutex *mutex)
{
g_mutex_clear(mutex);
g_free(mutex);
}
#endif

/*
vi:ts=4:nowrap:ai:expandtab:sw=4
*/
47 changes: 47 additions & 0 deletions cutter/cut-glib-compatible.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* Copyright (C) 2013 Kouhei Sutou <kou@clear-code.com>
*
* 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 3 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/

#ifndef __CUT_GLIB_COMPATIBLE_H__
#define __CUT_GLIB_COMPATIBLE_H__

#include <glib.h>

G_BEGIN_DECLS

#if !GLIB_CHECK_VERSION(2, 32, 0)
# define GPrivate GStaticPrivate
# define G_PRIVATE_INIT(notify) G_STATIC_PRIVATE_INIT
# define g_private_get(key) g_static_private_get(key)
# define g_private_set(key, value) g_static_private_set(key, value, NULL)
#else
# define g_mutex_new() cut_glib_compatible_mutex_new()
# define g_mutex_free(mutex) cut_glib_compatible_mutex_free(mutex)

GMutex *cut_glib_compatible_mutex_new (void);
void cut_glib_compatible_mutex_free(GMutex *mutex);

#endif

G_END_DECLS

#endif /* __CUT_GLIB_COMPATIBLE_H__ */

/*
vi:ts=4:nowrap:ai:expandtab:sw=4
*/
26 changes: 1 addition & 25 deletions cutter/cut-test-context.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,31 +53,7 @@
#include "cut-process.h"
#include "cut-backtrace-entry.h"
#include "cut-utils.h"

#if !GLIB_CHECK_VERSION(2, 32, 0)
# define GPrivate GStaticPrivate
# define G_PRIVATE_INIT(notify) G_STATIC_PRIVATE_INIT
# define g_private_get(key) g_static_private_get(key)
# define g_private_set(key, value) g_static_private_set(key, value, NULL)
#else
# define g_mutex_new() mutex_new()
# define g_mutex_free(mutex) mutex_free(mutex)
static GMutex *
mutex_new(void)
{
GMutex *mutex;
mutex = g_new(GMutex, 1);
g_mutex_init(mutex);
return mutex;
}

static void
mutex_free(GMutex *mutex)
{
g_mutex_clear(mutex);
g_free(mutex);
}
#endif
#include "cut-glib-compatible.h"

#define CUT_SIGNAL_EXPLICIT_JUMP G_MININT

Expand Down

0 comments on commit 4e7a5f9

Please sign in to comment.