mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-12-20 18:34:35 +00:00
Bug: https://bugs.gentoo.org/880955 Signed-off-by: Alfred Wingate <parona@protonmail.com> Signed-off-by: Arsen Arsenović <arsen@gentoo.org>
89 lines
2.4 KiB
Diff
89 lines
2.4 KiB
Diff
https://bugs.gentoo.org/880955
|
|
|
|
Based on https://github.com/spk121/guile-gi/commit/94144d0beffa96bf62c03bc71b498b94dafacc46
|
|
|
|
--- a/src/gig_callback.c
|
|
+++ b/src/gig_callback.c
|
|
@@ -296,6 +296,12 @@ callback_binding_inner(struct callback_binding_args *args)
|
|
return (void *)1;
|
|
}
|
|
|
|
+inline static void *
|
|
+callback_binding_inner_v(void *args)
|
|
+{
|
|
+ return callback_binding_inner(args);
|
|
+}
|
|
+
|
|
void
|
|
callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_data)
|
|
{
|
|
@@ -314,7 +320,7 @@ callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_d
|
|
if (scm_is_true(scm_fluid_ref(gig_callback_thread_fluid)))
|
|
callback_binding_inner(&args);
|
|
else {
|
|
- if (NULL == scm_with_guile(callback_binding_inner, &args))
|
|
+ if (NULL == scm_with_guile(callback_binding_inner_v, &args))
|
|
scm_c_eval_string("(quit EXIT_FAILURE)");
|
|
}
|
|
}
|
|
@@ -365,6 +371,12 @@ c_callback_binding_inner(struct callback_binding_args *args)
|
|
return (void *)1;
|
|
}
|
|
|
|
+inline static void *
|
|
+c_callback_binding_inner_v(void *args)
|
|
+{
|
|
+ return c_callback_binding_inner(args);
|
|
+}
|
|
+
|
|
void
|
|
c_callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user_data)
|
|
{
|
|
@@ -383,7 +395,7 @@ c_callback_binding(ffi_cif *cif, gpointer ret, gpointer *ffi_args, gpointer user
|
|
if (scm_is_true(scm_fluid_ref(gig_callback_thread_fluid)))
|
|
c_callback_binding_inner(&args);
|
|
else {
|
|
- if (NULL == scm_with_guile(c_callback_binding_inner, &args))
|
|
+ if (NULL == scm_with_guile(c_callback_binding_inner_v, &args))
|
|
scm_c_eval_string("(quit EXIT_FAILURE)");
|
|
}
|
|
}
|
|
@@ -692,10 +704,16 @@ callback_free(GigCallback *gcb)
|
|
g_free(gcb);
|
|
}
|
|
|
|
+inline static void
|
|
+callback_free_v(void *gcb)
|
|
+{
|
|
+ callback_free(gcb);
|
|
+}
|
|
+
|
|
static void
|
|
gig_fini_callback(void)
|
|
{
|
|
g_debug("Freeing callbacks");
|
|
- g_slist_free_full(callback_list, (GDestroyNotify)callback_free);
|
|
+ g_slist_free_full(callback_list, (GDestroyNotify)callback_free_v);
|
|
callback_list = NULL;
|
|
}
|
|
--- a/src/gig_type_private.c
|
|
+++ b/src/gig_type_private.c
|
|
@@ -59,8 +59,14 @@ _boxed_funcs_free(GigBoxedFuncs *funcs)
|
|
g_free(funcs);
|
|
}
|
|
|
|
+inline static void
|
|
+_boxed_funcs_free_v(void *funcs)
|
|
+{
|
|
+ _boxed_funcs_free(funcs);
|
|
+}
|
|
+
|
|
void
|
|
_free_boxed_funcs()
|
|
{
|
|
- g_slist_free_full(_boxed_funcs, (GDestroyNotify)_boxed_funcs_free);
|
|
+ g_slist_free_full(_boxed_funcs, (GDestroyNotify)_boxed_funcs_free_v);
|
|
}
|
|
--
|
|
2.46.0
|
|
|