gobject-introspection 3.2.1 → 3.2.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0631eb026f860babe2ffcc07681fb96284fc5a0f
4
- data.tar.gz: 59ce32989a1225c10425b109256066d129758689
2
+ SHA256:
3
+ metadata.gz: d78f600ec01daea27a9cca73efdaa86e1b178162f26b9e27d6cb71b38131dbd0
4
+ data.tar.gz: 57caa7b0f52b4d2f03e5ecd8f604b9390db638dce4e4a1abd50594149a643595
5
5
  SHA512:
6
- metadata.gz: d2e6517ef882043da5372a912cec39e90b7910fec1636cab94ff5068e12ea8c7a6d41ac24e9ce537316c3c970c38910c60bd3c9f4c7cbccc08acb3a9e9a36761
7
- data.tar.gz: 0fc3b6155f58af1f5e9efc8348688fd3e7178a4abfc5eb597b652a0e3d609feead0e591d5088e59e40793d35bf03633086b1f661bcf385d65674166ea25d82e7
6
+ metadata.gz: d2620c5957b53da3d2a34f9feaa59d80677170f8b62ca39c8e3f291a47783e213244d1c84040ada942c1aac7aba856540b7b4d0e589b0e831d4915b4bf830a02
7
+ data.tar.gz: 13f82d2e59f5186d7b43e2c97b69b85c6f1fdb392645a4c358cd2caf5880f987ecaa5c4043fdc88236cfac1c96165437f8b26cbf9b728d77a1119b30b2e1dc68
data/Rakefile CHANGED
@@ -32,7 +32,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
32
32
  :name => "glib",
33
33
  :download_site => :gnome,
34
34
  :label => "GLib",
35
- :version => "2.54.1",
35
+ :version => "2.56.0",
36
36
  :compression_method => "xz",
37
37
  :windows => {
38
38
  :build => false,
@@ -47,7 +47,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
47
47
  :name => "gobject-introspection",
48
48
  :download_site => :gnome,
49
49
  :label => "gobject-introspection",
50
- :version => "1.54.1",
50
+ :version => "1.56.0",
51
51
  :compression_method => "xz",
52
52
  :windows => {
53
53
  :configure_args => [
@@ -58,12 +58,12 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
58
58
  "support-external-g-ir-scanner.diff",
59
59
  ],
60
60
  :need_autoreconf => true,
61
+ :build_concurrently => false,
61
62
  :built_file => "bin/libgirepository-1.0-1.dll",
62
63
  },
63
64
  :native => {
64
65
  :build => true,
65
66
  :patches => [
66
- # "cross-compilable-g-ir-scanner.diff",
67
67
  ],
68
68
  :built_file => "bin/g-ir-scanner",
69
69
  }
@@ -74,20 +74,23 @@ package_task.define
74
74
 
75
75
  namespace :native do
76
76
  namespace :"gobject-introspection" do
77
+ patched_paths = []
78
+
77
79
  g_ir_scanner_dir = package_task.native.absolute_binary_dir
78
80
  g_ir_scanner_dir += "lib/gobject-introspection/giscanner"
79
- patched_path = g_ir_scanner_dir + "patched"
80
- file patched_path.to_s do
81
+ g_ir_scanner_patched_path = g_ir_scanner_dir + "patched"
82
+ patched_paths << g_ir_scanner_patched_path
83
+ file g_ir_scanner_patched_path.to_s do
81
84
  Dir.chdir(g_ir_scanner_dir.to_s) do
82
85
  patch = "#{package_task.package.patches_dir}/cross-g-ir-scanner.diff"
83
86
  sh("patch -p2 < #{patch}")
84
87
  rm_f(Dir.glob("*.{pyc,pyo}"))
85
88
  end
86
- touch(patched_path)
89
+ touch(g_ir_scanner_patched_path)
87
90
  end
88
91
 
89
92
  desc "Make g-ir-scanner workable for Windows on non Windows"
90
- task :cross => patched_path
93
+ task :cross => patched_paths
91
94
  end
92
95
 
93
96
  namespace :builder do
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2012-2017 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2012-2018 Ruby-GNOME2 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
@@ -21,6 +21,7 @@
21
21
  #include "rb-gi-private.h"
22
22
 
23
23
  static VALUE rb_cGLibValue = Qnil;
24
+ static VALUE rb_cGLibBytes = Qnil;
24
25
 
25
26
  static const gchar *
26
27
  rb_gi_transfer_to_string(GITransfer transfer)
@@ -267,6 +268,14 @@ array_c_to_ruby_sized(gconstpointer *elements,
267
268
  }
268
269
  break;
269
270
  case GI_TYPE_TAG_FILENAME:
271
+ g_base_info_unref(element_type_info);
272
+ {
273
+ const gchar **filenames = (const gchar **)elements;
274
+ for (i = 0; i < n_elements; i++) {
275
+ rb_ary_push(rb_array, CSTRFILENAME2RVAL(filenames[i]));
276
+ }
277
+ }
278
+ break;
270
279
  case GI_TYPE_TAG_ARRAY:
271
280
  g_base_info_unref(element_type_info);
272
281
  rb_raise(rb_eNotImpError,
@@ -1264,10 +1273,10 @@ rb_gi_argument_to_ruby(GIArgument *argument,
1264
1273
  rb_argument = UINT2NUM(argument->v_uint32);
1265
1274
  break;
1266
1275
  case GI_TYPE_TAG_INT64:
1267
- rb_argument = LONG2NUM(argument->v_int64);
1276
+ rb_argument = LL2NUM(argument->v_int64);
1268
1277
  break;
1269
1278
  case GI_TYPE_TAG_UINT64:
1270
- rb_argument = ULONG2NUM(argument->v_uint64);
1279
+ rb_argument = ULL2NUM(argument->v_uint64);
1271
1280
  break;
1272
1281
  case GI_TYPE_TAG_FLOAT:
1273
1282
  rb_argument = DBL2NUM(argument->v_float);
@@ -2281,6 +2290,8 @@ rb_gi_return_argument_free_everything_array_c(GIArgument *argument,
2281
2290
  g_strfreev(argument->v_pointer);
2282
2291
  break;
2283
2292
  case GI_TYPE_TAG_FILENAME:
2293
+ g_strfreev(argument->v_pointer);
2294
+ break;
2284
2295
  case GI_TYPE_TAG_ARRAY:
2285
2296
  case GI_TYPE_TAG_INTERFACE:
2286
2297
  case GI_TYPE_TAG_GLIST:
@@ -2869,13 +2880,17 @@ rb_gi_value_argument_from_ruby_interface(GIArgument *argument,
2869
2880
  }
2870
2881
  argument->v_pointer = gvalue;
2871
2882
  } else if (gtype == G_TYPE_BYTES) {
2872
- VALUE rb_string;
2873
- GBytes *gbytes;
2883
+ if (RVAL2CBOOL(rb_obj_is_kind_of(rb_argument, rb_cGLibBytes))) {
2884
+ argument->v_pointer = RVAL2BOXED(rb_argument, G_TYPE_BYTES);
2885
+ } else {
2886
+ VALUE rb_string;
2887
+ GBytes *gbytes;
2874
2888
 
2875
- rb_string = StringValue(rb_argument);
2876
- gbytes = g_bytes_new(RSTRING_PTR(rb_string),
2877
- RSTRING_LEN(rb_string));
2878
- argument->v_pointer = gbytes;
2889
+ rb_string = StringValue(rb_argument);
2890
+ gbytes = g_bytes_new(RSTRING_PTR(rb_string),
2891
+ RSTRING_LEN(rb_string));
2892
+ argument->v_pointer = gbytes;
2893
+ }
2879
2894
  } else if (gtype == G_TYPE_CLOSURE) {
2880
2895
  GClosure *rclosure = NULL;
2881
2896
 
@@ -3136,10 +3151,10 @@ rb_gi_value_argument_from_ruby(GIArgument *argument, GITypeInfo *type_info,
3136
3151
  argument->v_uint32 = NUM2UINT(rb_argument);
3137
3152
  break;
3138
3153
  case GI_TYPE_TAG_INT64:
3139
- argument->v_int64 = NUM2LONG(rb_argument);
3154
+ argument->v_int64 = NUM2LL(rb_argument);
3140
3155
  break;
3141
3156
  case GI_TYPE_TAG_UINT64:
3142
- argument->v_uint64 = NUM2ULONG(rb_argument);
3157
+ argument->v_uint64 = NUM2ULL(rb_argument);
3143
3158
  break;
3144
3159
  case GI_TYPE_TAG_FLOAT:
3145
3160
  argument->v_float = NUM2DBL(rb_argument);
@@ -3406,14 +3421,46 @@ rb_gi_in_argument_transfer(GIArgument *argument, GITransfer transfer,
3406
3421
  }
3407
3422
 
3408
3423
  GIArgument *
3409
- rb_gi_in_argument_from_ruby(GIArgument *argument, GIArgInfo *arg_info,
3410
- VALUE rb_argument, VALUE self)
3424
+ rb_gi_in_argument_from_ruby(GICallableInfo *callable_info,
3425
+ GIArgument *argument,
3426
+ GIArgInfo *arg_info,
3427
+ guint nth_rb_argument,
3428
+ VALUE rb_argument,
3429
+ VALUE self)
3411
3430
  {
3412
3431
  GITypeInfo type_info;
3413
3432
 
3414
- if (g_arg_info_may_be_null(arg_info) && NIL_P(rb_argument)) {
3415
- memset(argument, 0, sizeof(GIArgument));
3416
- return argument;
3433
+ if (NIL_P(rb_argument)) {
3434
+ if (g_arg_info_may_be_null(arg_info)) {
3435
+ memset(argument, 0, sizeof(GIArgument));
3436
+ return argument;
3437
+ } else {
3438
+ const char *module_name;
3439
+ GIBaseInfo *klass;
3440
+ const char *suffix;
3441
+
3442
+ module_name = g_base_info_get_namespace(callable_info);
3443
+ klass = g_base_info_get_container(callable_info);
3444
+ if (nth_rb_argument == 1) {
3445
+ suffix = "st";
3446
+ } else if (nth_rb_argument == 2) {
3447
+ suffix = "nd";
3448
+ } else if (nth_rb_argument == 3) {
3449
+ suffix = "rd";
3450
+ } else {
3451
+ suffix = "th";
3452
+ }
3453
+ rb_raise(rb_eArgError,
3454
+ "<%s%s%s%s%s>: the %u%s argument must not nil: <%s>",
3455
+ module_name,
3456
+ klass ? "::" : "",
3457
+ klass ? g_base_info_get_name(klass) : "",
3458
+ klass ? "#" : ".",
3459
+ g_base_info_get_name(callable_info),
3460
+ nth_rb_argument,
3461
+ suffix,
3462
+ g_base_info_get_name(arg_info));
3463
+ }
3417
3464
  }
3418
3465
 
3419
3466
  g_arg_info_load_type(arg_info, &type_info);
@@ -4406,4 +4453,5 @@ void
4406
4453
  rb_gi_argument_init(void)
4407
4454
  {
4408
4455
  rb_cGLibValue = rb_const_get(mGLib, rb_intern("Value"));
4456
+ rb_cGLibBytes = rb_const_get(mGLib, rb_intern("Bytes"));
4409
4457
  }
@@ -46,9 +46,6 @@
46
46
  #define RVAL2GI_VALUE_ARGUMENT(argument, type_info, rb_argument, self) \
47
47
  (rb_gi_value_argument_from_ruby((argument), (type_info), \
48
48
  (rb_argument), (self)))
49
- #define RVAL2GI_IN_ARGUMENT(argument, arg_info, rb_argument, self) \
50
- (rb_gi_in_argument_from_ruby((argument), (arg_info), \
51
- (rb_argument), (self)))
52
49
  #define RVAL2GI_IN_ARRAY_ARGUMENT(array_argument, length_argument, \
53
50
  array_arg_info, length_arg_info, \
54
51
  rb_argument) \
@@ -127,8 +124,10 @@ GIArgument *rb_gi_value_argument_from_ruby (GIArgument *argument,
127
124
  GITypeInfo *type_info,
128
125
  VALUE rb_argument,
129
126
  VALUE self);
130
- GIArgument *rb_gi_in_argument_from_ruby (GIArgument *argument,
127
+ GIArgument *rb_gi_in_argument_from_ruby (GICallableInfo *callable_info,
128
+ GIArgument *argument,
131
129
  GIArgInfo *arg_info,
130
+ guint nth_rb_argument,
132
131
  VALUE rb_argument,
133
132
  VALUE self);
134
133
  GIArgument *rb_gi_in_array_argument_from_ruby (GIArgument *array_argument,
@@ -1123,8 +1123,11 @@ in_callback_argument_from_ruby(RBGIArgMetadata *metadata, GArray *in_args)
1123
1123
  }
1124
1124
 
1125
1125
  static void
1126
- in_argument_from_ruby(RBGIArgMetadata *metadata, VALUE rb_arguments,
1127
- GArray *in_args, GPtrArray *args_metadata,
1126
+ in_argument_from_ruby(GICallableInfo *callable_info,
1127
+ RBGIArgMetadata *metadata,
1128
+ VALUE rb_arguments,
1129
+ GArray *in_args,
1130
+ GPtrArray *args_metadata,
1128
1131
  VALUE self)
1129
1132
  {
1130
1133
  if (metadata->callback_p && !metadata->destroy_p) {
@@ -1172,10 +1175,12 @@ in_argument_from_ruby(RBGIArgMetadata *metadata, VALUE rb_arguments,
1172
1175
  rb_argument = RARRAY_PTR(rb_arguments)[metadata->rb_arg_index];
1173
1176
  }
1174
1177
  argument = &(g_array_index(in_args, GIArgument, metadata->in_arg_index));
1175
- RVAL2GI_IN_ARGUMENT(argument,
1176
- &(metadata->arg_info),
1177
- rb_argument,
1178
- self);
1178
+ rb_gi_in_argument_from_ruby(callable_info,
1179
+ argument,
1180
+ &(metadata->arg_info),
1181
+ metadata->rb_arg_index,
1182
+ rb_argument,
1183
+ self);
1179
1184
  }
1180
1185
  }
1181
1186
 
@@ -1215,8 +1220,12 @@ arguments_from_ruby(GICallableInfo *info, VALUE self, VALUE rb_arguments,
1215
1220
 
1216
1221
  metadata = g_ptr_array_index(args_metadata, i);
1217
1222
  if (metadata->in_arg_index != -1) {
1218
- in_argument_from_ruby(metadata, rb_arguments,
1219
- in_args, args_metadata, self);
1223
+ in_argument_from_ruby(info,
1224
+ metadata,
1225
+ rb_arguments,
1226
+ in_args,
1227
+ args_metadata,
1228
+ self);
1220
1229
  } else {
1221
1230
  out_argument_from_ruby(metadata, out_args);
1222
1231
  }
@@ -437,6 +437,12 @@ module GObjectIntrospection
437
437
  if name == "initialize"
438
438
  name += "_raw"
439
439
  end
440
+
441
+ n_in_args = function_info.n_in_args
442
+ if options[:n_in_args_offset]
443
+ n_in_args += options[:n_in_args_offset]
444
+ end
445
+
440
446
  return_type = function_info.return_type
441
447
  return_type_tag = return_type.tag
442
448
  if return_type_tag == TypeTag::VOID
@@ -445,11 +451,12 @@ module GObjectIntrospection
445
451
  return_type_tag = TypeTag::ARRAY
446
452
  end
447
453
  end
454
+
448
455
  case return_type_tag
449
456
  when TypeTag::BOOLEAN
450
457
  case name
451
458
  when "equal"
452
- if function_info.n_in_args == 1
459
+ if n_in_args == 1
453
460
  "=="
454
461
  else
455
462
  name
@@ -457,7 +464,7 @@ module GObjectIntrospection
457
464
  when /\A(?:is|get_is|can_be)_/
458
465
  "#{$POSTMATCH}?"
459
466
  when /\Aget_/
460
- if function_info.n_in_args.zero?
467
+ if n_in_args.zero?
461
468
  if function_info.n_out_args.zero?
462
469
  "#{$POSTMATCH}?"
463
470
  else
@@ -476,7 +483,7 @@ module GObjectIntrospection
476
483
  when TypeTag::GLIST, TypeTag::GSLIST, TypeTag::ARRAY
477
484
  case name
478
485
  when /\A(?:list|get)_/
479
- if function_info.n_in_args.zero?
486
+ if n_in_args.zero?
480
487
  $POSTMATCH
481
488
  else
482
489
  name
@@ -487,7 +494,7 @@ module GObjectIntrospection
487
494
  else
488
495
  case name
489
496
  when /\Aget_/
490
- if function_info.n_in_args.zero?
497
+ if n_in_args.zero?
491
498
  $POSTMATCH
492
499
  else
493
500
  name
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gobject-introspection
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1
4
+ version: 3.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Ruby-GNOME2 Project Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-19 00:00:00.000000000 Z
11
+ date: 2018-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glib2
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.1
19
+ version: 3.2.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.2.1
26
+ version: 3.2.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: test-unit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  requirements: []
146
146
  rubyforge_project:
147
- rubygems_version: 2.5.2.1
147
+ rubygems_version: 2.7.6
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: Ruby/GObjectIntrospection is a Ruby binding of GObjectIntrospection.