[glib] ffi: Marshal flags like enums
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] ffi: Marshal flags like enums
- Date: Wed, 16 Sep 2015 16:46:01 +0000 (UTC)
commit 7b685eab8821686821c38e398536b0842b0ed131
Author: Ray Strode <rstrode redhat com>
Date: Wed Sep 16 18:01:04 2015 +0200
ffi: Marshal flags like enums
Flags are enums.
Fixes broken marshalling on BE 64bit architectures.
https://bugzilla.gnome.org/show_bug.cgi?id=754882
gobject/gclosure.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/gobject/gclosure.c b/gobject/gclosure.c
index 014e40a..3c6894a 100644
--- a/gobject/gclosure.c
+++ b/gobject/gclosure.c
@@ -1186,9 +1186,15 @@ value_to_ffi_type (const GValue *gvalue,
*value = enum_tmpval;
*tmpval_used = TRUE;
break;
+ case G_TYPE_FLAGS:
+ g_assert (enum_tmpval != NULL);
+ rettype = &ffi_type_uint;
+ *enum_tmpval = g_value_get_flags (gvalue);
+ *value = enum_tmpval;
+ *tmpval_used = TRUE;
+ break;
case G_TYPE_UCHAR:
case G_TYPE_UINT:
- case G_TYPE_FLAGS:
rettype = &ffi_type_uint;
*value = (gpointer)&(gvalue->data[0].v_uint);
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]