Kouhei Sutou 2017-08-03 00:10:10 +0900 (Thu, 03 Aug 2017)
New Revision: e2d38e809d5512d2d90daff0525fe324131623f4
https://github.com/ruby-gnome2/ruby-gnome2/commit/e2d38e809d5512d2d90daff0525fe324131623f4
Message:
gi: support "gboolean *" output
Modified files:
gobject-introspection/ext/gobject-introspection/rb-gi-argument.c
Modified: gobject-introspection/ext/gobject-introspection/rb-gi-argument.c (+9 -1)
===================================================================
--- gobject-introspection/ext/gobject-introspection/rb-gi-argument.c 2017-07-31 12:27:28 +0900 (54236e0c5)
+++ gobject-introspection/ext/gobject-introspection/rb-gi-argument.c 2017-08-03 00:10:10 +0900 (7fc326d22)
@@ -131,12 +131,20 @@ array_c_to_ruby_sized(gconstpointer *elements,
switch (element_type_tag) {
case GI_TYPE_TAG_VOID:
- case GI_TYPE_TAG_BOOLEAN:
g_base_info_unref(element_type_info);
rb_raise(rb_eNotImpError,
"TODO: GIArgument(array)[c][%s] -> Ruby",
g_type_tag_to_string(element_type_tag));
break;
+ case GI_TYPE_TAG_BOOLEAN:
+ g_base_info_unref(element_type_info);
+ {
+ const gboolean *booleans = (const gboolean *)elements;
+ for (i = 0; i < n_elements; i++) {
+ rb_ary_push(rb_array, CBOOL2RVAL(booleans[i]));
+ }
+ }
+ break;
case GI_TYPE_TAG_INT8:
g_base_info_unref(element_type_info);
{
|