From: Kouhei S. <nu...@co...> - 2017-08-02 15:11:05
|
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); { |