gobject-introspection 4.2.2 → 4.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/Rakefile +2 -2
- data/ext/gobject-introspection/rb-gi-arguments-out.c +16 -8
- data/ext/gobject-introspection/rb-gi-arguments.c +138 -37
- data/ext/gobject-introspection/rb-gi-private-arguments.h +5 -0
- data/gobject-introspection.gemspec +1 -1
- data/lib/gobject-introspection/loader.rb +5 -3
- metadata +6 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 35271806b1d69784715f1d2b32cec3e9c522156e322b28e67d88153f4b114373
|
|
4
|
+
data.tar.gz: 7ff88d676bf1cf71281ec663526986ff97f1555b3613be9845cc35006333ffc9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 86f9733cabb3d7dca03feef1db7888f3e4cce4b80f514e5b8e0c83fec98187564a841a0313309e31168a96f59f58612447493a046293b7b66066f139f2c3f80e
|
|
7
|
+
data.tar.gz: 64a2cf9fedcf690184727f4da0d2cfbc76162febeec36bebf92d4179741b324710546a3716f9fb43d94efb3d18f43cb17a4a82017782099f571c201fd90984b3
|
data/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Ruby/GObjectIntrospection is a Ruby binding of GObject Introspect.
|
|
|
5
5
|
## Requirements
|
|
6
6
|
|
|
7
7
|
* Ruby/GLib2 in
|
|
8
|
-
[Ruby-GNOME2](https://ruby-
|
|
8
|
+
[Ruby-GNOME2](https://ruby-gnome.github.io/)
|
|
9
9
|
* [GObject Introspection](http://live.gnome.org/GObjectIntrospection)
|
|
10
10
|
|
|
11
11
|
## Install
|
|
@@ -21,4 +21,4 @@ under the terms of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
|
|
|
21
21
|
|
|
22
22
|
## Project Website
|
|
23
23
|
|
|
24
|
-
https://ruby-
|
|
24
|
+
https://ruby-gnome.github.io/
|
data/Rakefile
CHANGED
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
18
18
|
|
|
19
19
|
$LOAD_PATH.unshift("./../glib2/lib")
|
|
20
|
-
require "
|
|
20
|
+
require "gnome/rake/package-task"
|
|
21
21
|
|
|
22
22
|
package_name = File.basename(__dir__)
|
|
23
23
|
spec = Gem::Specification.load("#{package_name}.gemspec")
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
GNOME::Rake::PackageTask.define(spec, __dir__) do |package|
|
|
26
26
|
end
|
|
@@ -103,14 +103,20 @@ rb_gi_arguments_out_free_array_c_interface(RBGIArguments *args,
|
|
|
103
103
|
g_free(*target);
|
|
104
104
|
break;
|
|
105
105
|
case GI_TRANSFER_EVERYTHING:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
106
|
+
if (metadata->element_type.interface_gtype == G_TYPE_NONE) {
|
|
107
|
+
/* This assumes that this memory was allocated by
|
|
108
|
+
* g_new0(MyStruct, n). */
|
|
109
|
+
g_free(*target);
|
|
110
|
+
} else {
|
|
111
|
+
rb_raise(rb_eNotImpError,
|
|
112
|
+
"TODO: [%s] %s free GIArgument(%s/%s)[%s]",
|
|
113
|
+
metadata->name,
|
|
114
|
+
rb_gi_direction_to_string(metadata->direction),
|
|
115
|
+
g_type_tag_to_string(metadata->type.tag),
|
|
116
|
+
rb_gi_array_type_to_string(metadata->array_type),
|
|
117
|
+
rb_gi_transfer_to_string(metadata->transfer));
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
114
120
|
}
|
|
115
121
|
xfree(target);
|
|
116
122
|
}
|
|
@@ -337,6 +343,7 @@ rb_gi_arguments_out_init_arg_array_c(RBGIArguments *args,
|
|
|
337
343
|
break;
|
|
338
344
|
case GI_TYPE_TAG_UTF8:
|
|
339
345
|
argument->v_pointer = ALLOC(gchar **);
|
|
346
|
+
*((gchar **)(argument->v_pointer)) = NULL;
|
|
340
347
|
metadata->free_func = rb_gi_arguments_out_free_array_c_string;
|
|
341
348
|
break;
|
|
342
349
|
case GI_TYPE_TAG_FILENAME:
|
|
@@ -349,6 +356,7 @@ rb_gi_arguments_out_init_arg_array_c(RBGIArguments *args,
|
|
|
349
356
|
break;
|
|
350
357
|
case GI_TYPE_TAG_INTERFACE:
|
|
351
358
|
argument->v_pointer = ALLOC(gpointer *);
|
|
359
|
+
*((gpointer *)(argument->v_pointer)) = NULL;
|
|
352
360
|
metadata->free_func = rb_gi_arguments_out_free_array_c_interface;
|
|
353
361
|
break;
|
|
354
362
|
case GI_TYPE_TAG_GLIST:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (C) 2012-
|
|
3
|
+
* Copyright (C) 2012-2024 Ruby-GNOME Project Team
|
|
4
4
|
*
|
|
5
5
|
* This library is free software; you can redistribute it and/or
|
|
6
6
|
* modify it under the terms of the GNU Lesser General Public
|
|
@@ -683,10 +683,10 @@ rb_gi_arguments_convert_arg_array_like_ensure(VALUE user_data)
|
|
|
683
683
|
return Qnil;
|
|
684
684
|
}
|
|
685
685
|
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
686
|
+
gint64
|
|
687
|
+
rb_gi_argument_out_array_get_length(GIArgument *arg,
|
|
688
|
+
RBGIArgMetadata *metadata,
|
|
689
|
+
gboolean is_pointer)
|
|
690
690
|
{
|
|
691
691
|
switch (metadata->type.tag) {
|
|
692
692
|
case GI_TYPE_TAG_VOID:
|
|
@@ -697,49 +697,49 @@ rb_gi_arguments_convert_arg_array_body_extract_length(GIArgument *arg,
|
|
|
697
697
|
return -1;
|
|
698
698
|
case GI_TYPE_TAG_INT8:
|
|
699
699
|
if (is_pointer) {
|
|
700
|
-
return *((gint8 *)arg->v_pointer);
|
|
700
|
+
return *((gint8 *)(arg->v_pointer));
|
|
701
701
|
} else {
|
|
702
702
|
return arg->v_int8;
|
|
703
703
|
}
|
|
704
704
|
case GI_TYPE_TAG_UINT8:
|
|
705
705
|
if (is_pointer) {
|
|
706
|
-
return *((guint8 *)arg->v_pointer);
|
|
706
|
+
return *((guint8 *)(arg->v_pointer));
|
|
707
707
|
} else {
|
|
708
708
|
return arg->v_uint8;
|
|
709
709
|
}
|
|
710
710
|
case GI_TYPE_TAG_INT16:
|
|
711
711
|
if (is_pointer) {
|
|
712
|
-
return *((gint16 *)arg->v_pointer);
|
|
712
|
+
return *((gint16 *)(arg->v_pointer));
|
|
713
713
|
} else {
|
|
714
714
|
return arg->v_int16;
|
|
715
715
|
}
|
|
716
716
|
case GI_TYPE_TAG_UINT16:
|
|
717
717
|
if (is_pointer) {
|
|
718
|
-
return *((guint16 *)arg->v_pointer);
|
|
718
|
+
return *((guint16 *)(arg->v_pointer));
|
|
719
719
|
} else {
|
|
720
720
|
return arg->v_uint16;
|
|
721
721
|
}
|
|
722
722
|
case GI_TYPE_TAG_INT32:
|
|
723
723
|
if (is_pointer) {
|
|
724
|
-
return *((gint32 *)arg->v_pointer);
|
|
724
|
+
return *((gint32 *)(arg->v_pointer));
|
|
725
725
|
} else {
|
|
726
726
|
return arg->v_int32;
|
|
727
727
|
}
|
|
728
728
|
case GI_TYPE_TAG_UINT32:
|
|
729
729
|
if (is_pointer) {
|
|
730
|
-
return *((guint32 *)arg->v_pointer);
|
|
730
|
+
return *((guint32 *)(arg->v_pointer));
|
|
731
731
|
} else {
|
|
732
732
|
return arg->v_uint32;
|
|
733
733
|
}
|
|
734
734
|
case GI_TYPE_TAG_INT64:
|
|
735
735
|
if (is_pointer) {
|
|
736
|
-
return *((gint64 *)arg->v_pointer);
|
|
736
|
+
return *((gint64 *)(arg->v_pointer));
|
|
737
737
|
} else {
|
|
738
738
|
return arg->v_int64;
|
|
739
739
|
}
|
|
740
740
|
case GI_TYPE_TAG_UINT64:
|
|
741
741
|
if (is_pointer) {
|
|
742
|
-
return *((guint64 *)arg->v_pointer);
|
|
742
|
+
return *((guint64 *)(arg->v_pointer));
|
|
743
743
|
} else {
|
|
744
744
|
return arg->v_uint64;
|
|
745
745
|
}
|
|
@@ -789,10 +789,9 @@ rb_gi_arguments_convert_arg_array_body_get_length(ArrayLikeToRubyData *data)
|
|
|
789
789
|
data->arg_metadata->struct_info,
|
|
790
790
|
data->arg_metadata->struct_memory);
|
|
791
791
|
int64_t length =
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
FALSE);
|
|
792
|
+
rb_gi_argument_out_array_get_length(&value,
|
|
793
|
+
&length_metadata,
|
|
794
|
+
FALSE);
|
|
796
795
|
/* TODO: Use ensure */
|
|
797
796
|
rb_gi_arg_metadata_clear(&length_metadata);
|
|
798
797
|
g_base_info_unref(field_info);
|
|
@@ -816,20 +815,16 @@ rb_gi_arguments_convert_arg_array_body_get_length(ArrayLikeToRubyData *data)
|
|
|
816
815
|
gboolean is_pointer =
|
|
817
816
|
!(length_metadata->array_metadata &&
|
|
818
817
|
length_metadata->array_metadata->output_buffer_p);
|
|
819
|
-
return
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
length_metadata,
|
|
823
|
-
is_pointer);
|
|
818
|
+
return rb_gi_argument_out_array_get_length(length_arg,
|
|
819
|
+
length_metadata,
|
|
820
|
+
is_pointer);
|
|
824
821
|
} else {
|
|
825
822
|
length_arg = &g_array_index(data->args->in_args,
|
|
826
823
|
GIArgument,
|
|
827
824
|
length_metadata->in_arg_index);
|
|
828
|
-
return
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
length_metadata,
|
|
832
|
-
FALSE);
|
|
825
|
+
return rb_gi_argument_out_array_get_length(length_arg,
|
|
826
|
+
length_metadata,
|
|
827
|
+
FALSE);
|
|
833
828
|
}
|
|
834
829
|
}
|
|
835
830
|
|
|
@@ -1105,26 +1100,116 @@ static VALUE
|
|
|
1105
1100
|
rb_gi_arguments_convert_arg_array_body_c_fixed_size(ArrayLikeToRubyData *data,
|
|
1106
1101
|
gint fixed_size)
|
|
1107
1102
|
{
|
|
1108
|
-
const char *array_c_type = "
|
|
1103
|
+
const char *array_c_type = "fixed-size";
|
|
1109
1104
|
switch (data->element_type_tag) {
|
|
1110
1105
|
case GI_TYPE_TAG_VOID:
|
|
1111
1106
|
case GI_TYPE_TAG_BOOLEAN:
|
|
1107
|
+
rb_raise(rb_eNotImpError,
|
|
1108
|
+
"TODO: GIArgument(array)[c][%s][%s] -> Ruby",
|
|
1109
|
+
array_c_type,
|
|
1110
|
+
g_type_tag_to_string(data->element_type_tag));
|
|
1111
|
+
return Qnil;
|
|
1112
1112
|
case GI_TYPE_TAG_INT8:
|
|
1113
|
+
{
|
|
1114
|
+
gint8 *array = (gint8 *)(data->arg->v_pointer);
|
|
1115
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1116
|
+
gint i;
|
|
1117
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1118
|
+
rb_ary_push(rb_array, RB_INT2NUM(array[i]));
|
|
1119
|
+
}
|
|
1120
|
+
return rb_array;
|
|
1121
|
+
}
|
|
1113
1122
|
case GI_TYPE_TAG_UINT8:
|
|
1123
|
+
{
|
|
1124
|
+
guint8 *array = (guint8 *)(data->arg->v_pointer);
|
|
1125
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1126
|
+
gint i;
|
|
1127
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1128
|
+
rb_ary_push(rb_array, RB_UINT2NUM(array[i]));
|
|
1129
|
+
}
|
|
1130
|
+
return rb_array;
|
|
1131
|
+
}
|
|
1114
1132
|
case GI_TYPE_TAG_INT16:
|
|
1133
|
+
{
|
|
1134
|
+
gint16 *array = (gint16 *)(data->arg->v_pointer);
|
|
1135
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1136
|
+
gint i;
|
|
1137
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1138
|
+
rb_ary_push(rb_array, RB_INT2NUM(array[i]));
|
|
1139
|
+
}
|
|
1140
|
+
return rb_array;
|
|
1141
|
+
}
|
|
1115
1142
|
case GI_TYPE_TAG_UINT16:
|
|
1143
|
+
{
|
|
1144
|
+
guint16 *array = (guint16 *)(data->arg->v_pointer);
|
|
1145
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1146
|
+
gint i;
|
|
1147
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1148
|
+
rb_ary_push(rb_array, RB_UINT2NUM(array[i]));
|
|
1149
|
+
}
|
|
1150
|
+
return rb_array;
|
|
1151
|
+
}
|
|
1116
1152
|
case GI_TYPE_TAG_INT32:
|
|
1153
|
+
{
|
|
1154
|
+
gint32 *array = (gint32 *)(data->arg->v_pointer);
|
|
1155
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1156
|
+
gint i;
|
|
1157
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1158
|
+
rb_ary_push(rb_array, RB_INT2NUM(array[i]));
|
|
1159
|
+
}
|
|
1160
|
+
return rb_array;
|
|
1161
|
+
}
|
|
1117
1162
|
case GI_TYPE_TAG_UINT32:
|
|
1163
|
+
{
|
|
1164
|
+
guint32 *array = (guint32 *)(data->arg->v_pointer);
|
|
1165
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1166
|
+
gint i;
|
|
1167
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1168
|
+
rb_ary_push(rb_array, RB_UINT2NUM(array[i]));
|
|
1169
|
+
}
|
|
1170
|
+
return rb_array;
|
|
1171
|
+
}
|
|
1118
1172
|
case GI_TYPE_TAG_INT64:
|
|
1173
|
+
{
|
|
1174
|
+
gint64 *array = (gint64 *)(data->arg->v_pointer);
|
|
1175
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1176
|
+
gint i;
|
|
1177
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1178
|
+
rb_ary_push(rb_array, RB_LL2NUM(array[i]));
|
|
1179
|
+
}
|
|
1180
|
+
return rb_array;
|
|
1181
|
+
}
|
|
1119
1182
|
case GI_TYPE_TAG_UINT64:
|
|
1183
|
+
{
|
|
1184
|
+
guint64 *array = (guint64 *)(data->arg->v_pointer);
|
|
1185
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1186
|
+
gint i;
|
|
1187
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1188
|
+
rb_ary_push(rb_array, RB_ULL2NUM(array[i]));
|
|
1189
|
+
}
|
|
1190
|
+
return rb_array;
|
|
1191
|
+
}
|
|
1120
1192
|
case GI_TYPE_TAG_FLOAT:
|
|
1193
|
+
{
|
|
1194
|
+
float *array = (float *)(data->arg->v_pointer);
|
|
1195
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1196
|
+
gint i;
|
|
1197
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1198
|
+
rb_ary_push(rb_array, rb_float_new(array[i]));
|
|
1199
|
+
}
|
|
1200
|
+
return rb_array;
|
|
1201
|
+
}
|
|
1121
1202
|
case GI_TYPE_TAG_DOUBLE:
|
|
1203
|
+
{
|
|
1204
|
+
double *array = (double *)(data->arg->v_pointer);
|
|
1205
|
+
VALUE rb_array = rb_ary_new_capa(fixed_size);
|
|
1206
|
+
gint i;
|
|
1207
|
+
for (i = 0; i < fixed_size; i++) {
|
|
1208
|
+
rb_ary_push(rb_array, rb_float_new(array[i]));
|
|
1209
|
+
}
|
|
1210
|
+
return rb_array;
|
|
1211
|
+
}
|
|
1122
1212
|
case GI_TYPE_TAG_GTYPE:
|
|
1123
|
-
rb_raise(rb_eNotImpError,
|
|
1124
|
-
"TODO: GIArgument(array)[c][%s][%s] -> Ruby",
|
|
1125
|
-
array_c_type,
|
|
1126
|
-
g_type_tag_to_string(data->element_type_tag));
|
|
1127
|
-
return Qnil;
|
|
1128
1213
|
case GI_TYPE_TAG_UTF8:
|
|
1129
1214
|
case GI_TYPE_TAG_FILENAME:
|
|
1130
1215
|
case GI_TYPE_TAG_ARRAY:
|
|
@@ -1764,6 +1849,10 @@ rb_gi_arguments_convert_arg_ghash(RBGIArguments *args,
|
|
|
1764
1849
|
GIArgument *arg,
|
|
1765
1850
|
RBGIArgMetadata *arg_metadata)
|
|
1766
1851
|
{
|
|
1852
|
+
if (arg_metadata->may_be_null_p && !arg->v_pointer) {
|
|
1853
|
+
return Qnil;
|
|
1854
|
+
}
|
|
1855
|
+
|
|
1767
1856
|
GHashToRubyData data;
|
|
1768
1857
|
|
|
1769
1858
|
data.args = args;
|
|
@@ -2858,12 +2947,21 @@ rb_gi_arguments_fill_raw_result(RBGIArguments *args,
|
|
|
2858
2947
|
gpointer raw_result,
|
|
2859
2948
|
GITypeInfo *type_info,
|
|
2860
2949
|
GITransfer transfer,
|
|
2950
|
+
gboolean may_return_null,
|
|
2861
2951
|
gboolean is_return_value)
|
|
2862
2952
|
{
|
|
2863
2953
|
GIFFIReturnValue *ffi_return_value = raw_result;
|
|
2864
|
-
GITypeTag type_tag;
|
|
2865
2954
|
|
|
2866
|
-
|
|
2955
|
+
if (may_return_null && RB_NIL_P(rb_result)) {
|
|
2956
|
+
if (is_return_value) {
|
|
2957
|
+
ffi_return_value->v_pointer = NULL;
|
|
2958
|
+
} else {
|
|
2959
|
+
*((gpointer *)raw_result) = NULL;
|
|
2960
|
+
}
|
|
2961
|
+
return;
|
|
2962
|
+
}
|
|
2963
|
+
|
|
2964
|
+
GITypeTag type_tag = g_type_info_get_tag(type_info);
|
|
2867
2965
|
switch (type_tag) {
|
|
2868
2966
|
case GI_TYPE_TAG_VOID:
|
|
2869
2967
|
g_assert_not_reached();
|
|
@@ -3044,8 +3142,8 @@ rb_gi_arguments_fill_raw_results(RBGIArguments *args,
|
|
|
3044
3142
|
return_type_info = g_callable_info_get_return_type(args->info);
|
|
3045
3143
|
return_type_tag = g_type_info_get_tag(return_type_info);
|
|
3046
3144
|
if (return_type_tag != GI_TYPE_TAG_VOID) {
|
|
3047
|
-
GITransfer transfer;
|
|
3048
|
-
|
|
3145
|
+
GITransfer transfer = g_callable_info_get_caller_owns(args->info);
|
|
3146
|
+
gboolean may_return_null = g_callable_info_may_return_null(args->info);
|
|
3049
3147
|
if (args->out_args->len == 0) {
|
|
3050
3148
|
VALUE rb_return_value = rb_results;
|
|
3051
3149
|
rb_gi_arguments_fill_raw_result(args,
|
|
@@ -3053,6 +3151,7 @@ rb_gi_arguments_fill_raw_results(RBGIArguments *args,
|
|
|
3053
3151
|
raw_return_value,
|
|
3054
3152
|
return_type_info,
|
|
3055
3153
|
transfer,
|
|
3154
|
+
may_return_null,
|
|
3056
3155
|
TRUE);
|
|
3057
3156
|
} else {
|
|
3058
3157
|
VALUE rb_return_value;
|
|
@@ -3067,6 +3166,7 @@ rb_gi_arguments_fill_raw_results(RBGIArguments *args,
|
|
|
3067
3166
|
raw_return_value,
|
|
3068
3167
|
return_type_info,
|
|
3069
3168
|
transfer,
|
|
3169
|
+
may_return_null,
|
|
3070
3170
|
TRUE);
|
|
3071
3171
|
}
|
|
3072
3172
|
}
|
|
@@ -3106,6 +3206,7 @@ rb_gi_arguments_fill_raw_results(RBGIArguments *args,
|
|
|
3106
3206
|
argument->v_pointer,
|
|
3107
3207
|
type_info,
|
|
3108
3208
|
transfer,
|
|
3209
|
+
metadata->may_be_null_p,
|
|
3109
3210
|
FALSE);
|
|
3110
3211
|
g_base_info_unref(type_info);
|
|
3111
3212
|
}
|
|
@@ -101,6 +101,11 @@ rb_gi_arg_metadata_clear(RBGIArgMetadata *metadata);
|
|
|
101
101
|
G_GNUC_INTERNAL void
|
|
102
102
|
rb_gi_arg_metadata_free(RBGIArgMetadata *metadata);
|
|
103
103
|
|
|
104
|
+
G_GNUC_INTERNAL gint64
|
|
105
|
+
rb_gi_argument_out_array_get_length(GIArgument *arg,
|
|
106
|
+
RBGIArgMetadata *metadata,
|
|
107
|
+
gboolean is_pointer);
|
|
108
|
+
|
|
104
109
|
G_GNUC_INTERNAL void
|
|
105
110
|
rb_gi_arguments_init(RBGIArguments *args,
|
|
106
111
|
GICallableInfo *info,
|
|
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
|
|
|
29
29
|
"of any GObject C libraries"
|
|
30
30
|
s.author = "The Ruby-GNOME Project Team"
|
|
31
31
|
s.email = "ruby-gnome2-devel-en@lists.sourceforge.net"
|
|
32
|
-
s.homepage = "https://ruby-
|
|
32
|
+
s.homepage = "https://ruby-gnome.github.io/"
|
|
33
33
|
s.licenses = ["LGPL-2.1+"]
|
|
34
34
|
s.version = ruby_glib2_version
|
|
35
35
|
s.extensions = ["ext/#{s.name}/extconf.rb"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (C) 2012-
|
|
1
|
+
# Copyright (C) 2012-2024 Ruby-GNOME Project Team
|
|
2
2
|
#
|
|
3
3
|
# This library is free software; you can redistribute it and/or
|
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
|
@@ -83,10 +83,12 @@ module GObjectIntrospection
|
|
|
83
83
|
def load_function_info(info)
|
|
84
84
|
name = rubyish_method_name(info)
|
|
85
85
|
define_singleton_method(info, @base_module, name)
|
|
86
|
+
define_equal_style_setter(info, @base_module.singleton_class, name)
|
|
86
87
|
end
|
|
87
88
|
|
|
88
89
|
def load_function_info_singleton_method(info, klass, method_name)
|
|
89
90
|
define_singleton_method(info, klass, method_name)
|
|
91
|
+
define_equal_style_setter(info, klass.singleton_class, method_name)
|
|
90
92
|
end
|
|
91
93
|
|
|
92
94
|
def define_module_function(function_info, target_module, name)
|
|
@@ -185,8 +187,8 @@ module GObjectIntrospection
|
|
|
185
187
|
# TODO: Can we do the same things for flags on NONE GType?
|
|
186
188
|
return if info.gtype == GLib::Type::NONE
|
|
187
189
|
klass = self.class.define_class(info.gtype,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
+
rubyish_class_name(info),
|
|
191
|
+
@base_module)
|
|
190
192
|
prepare_class(klass) do
|
|
191
193
|
load_methods(info, klass)
|
|
192
194
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gobject-introspection
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.2.
|
|
4
|
+
version: 4.2.5
|
|
5
5
|
platform: ruby
|
|
6
|
+
original_platform: ''
|
|
6
7
|
authors:
|
|
7
8
|
- The Ruby-GNOME Project Team
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date: 2024-
|
|
11
|
+
date: 2024-12-15 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: glib2
|
|
@@ -15,14 +16,14 @@ dependencies:
|
|
|
15
16
|
requirements:
|
|
16
17
|
- - '='
|
|
17
18
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 4.2.
|
|
19
|
+
version: 4.2.5
|
|
19
20
|
type: :runtime
|
|
20
21
|
prerelease: false
|
|
21
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
23
|
requirements:
|
|
23
24
|
- - '='
|
|
24
25
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 4.2.
|
|
26
|
+
version: 4.2.5
|
|
26
27
|
description: Ruby/GObjectIntrospection provides bindings of GObject Introspection
|
|
27
28
|
and a loader module that can generate dynamically Ruby bindings of any GObject C
|
|
28
29
|
libraries
|
|
@@ -129,7 +130,7 @@ files:
|
|
|
129
130
|
- test/test-value-info.rb
|
|
130
131
|
- test/test-version.rb
|
|
131
132
|
- test/test-vfunc-info.rb
|
|
132
|
-
homepage: https://ruby-
|
|
133
|
+
homepage: https://ruby-gnome.github.io/
|
|
133
134
|
licenses:
|
|
134
135
|
- LGPL-2.1+
|
|
135
136
|
metadata:
|