gobject-introspection 4.1.2 → 4.1.4

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
2
  SHA256:
3
- metadata.gz: eff07e185f0759ccd823df31493a4b7f3012fe045f14eb1edac2315cd657ef23
4
- data.tar.gz: 67cb2d6f667aa0255ab581eaae1d4fb6d85a736c8c7544c6caccff271b6168f1
3
+ metadata.gz: 5ad7749030322309d66cdd613d61540c2ac1e5b749c6b3df462c190648ec5a23
4
+ data.tar.gz: 11925d808602b94209daeaee2e4779575ec9e06f012e266b0dd62ba692f9ba1d
5
5
  SHA512:
6
- metadata.gz: be4e95844ad869d782590a6a978947d429b704a054d06a63810d2e2ad4a3daf9e8511f25c1dff60f4d31197c69d84df36db6afe1aaeba3dbf81d9e9ecea7de7b
7
- data.tar.gz: 608d5dffeb78e04770b721982fcc83d78a5c8742d912f9800b09b6a4d03ad007485f7ea8b6d5e92f04cfb5520f8fedc9093ec52e606489c4e3e9d02cc6ff29bf
6
+ metadata.gz: c61f9795ce3570ae8d351a64936ad3c8e141b6d2d1e3980f8074258f1ff1c149908793146d3bba48778d5b82863a872871b44e28087d2809b29f6cec2bfd9e3b
7
+ data.tar.gz: 15a4468d50ae854f71d1d442041c78687010c8bf0e580e5627e9aceb1499e973828f1f9136b8828599f32af6ad2f012caa91d6a5192b74ef284d9e5973b802b7
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012-2021 Ruby-GNOME Project Team
1
+ # Copyright (C) 2012-2023 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
@@ -82,14 +82,14 @@ module GObjectIntrospection
82
82
 
83
83
  def load_function_info(info)
84
84
  name = rubyish_method_name(info)
85
- define_singleton_method(@base_module, name, info)
85
+ define_singleton_method(info, @base_module, name)
86
86
  end
87
87
 
88
88
  def load_function_info_singleton_method(info, klass, method_name)
89
- define_singleton_method(klass, method_name, info)
89
+ define_singleton_method(info, klass, method_name)
90
90
  end
91
91
 
92
- def define_module_function(target_module, name, function_info)
92
+ def define_module_function(function_info, target_module, name)
93
93
  prepare_function_info_lock_gvl(function_info, target_module)
94
94
  full_method_name = "#{target_module}\#.#{name}"
95
95
  invoker = Invoker.new(function_info, name, full_method_name)
@@ -102,7 +102,7 @@ module GObjectIntrospection
102
102
  DEFINE_METHOD
103
103
  end
104
104
 
105
- def define_singleton_method(klass, name, info)
105
+ def define_singleton_method(info, klass, name)
106
106
  prepare_function_info_lock_gvl(info, klass)
107
107
  invoker = Invoker.new(info, name, "#{klass}.#{name}")
108
108
  singleton_class = klass.singleton_class
@@ -142,11 +142,12 @@ module GObjectIntrospection
142
142
  unless method_infos.empty?
143
143
  base_class = @base_module.const_get(base_class_name)
144
144
  singleton_class = base_class.singleton_class
145
- invokers = singleton_class::INVOKERS.dup
145
+ invokers = singleton_class.const_get(:INVOKERS).dup
146
146
  singleton_class.__send__(:remove_const, :INVOKERS)
147
147
  singleton_class.const_set(:INVOKERS, invokers)
148
148
  load_methods_method(method_infos, singleton_class)
149
149
  Ractor.make_shareable(singleton_class::INVOKERS) if defined?(Ractor)
150
+ singleton_class.private_constant(:INVOKERS)
150
151
  end
151
152
  else
152
153
  return if info.gtype_struct?
@@ -177,9 +178,12 @@ module GObjectIntrospection
177
178
  def define_enum(info)
178
179
  # TODO: Can we do the same things for flags on NONE GType?
179
180
  return if info.gtype == GLib::Type::NONE
180
- self.class.define_class(info.gtype,
181
- rubyish_class_name(info),
182
- @base_module)
181
+ klass = self.class.define_class(info.gtype,
182
+ rubyish_class_name(info),
183
+ @base_module)
184
+ prepare_class(klass) do
185
+ load_methods(info, klass)
186
+ end
183
187
  end
184
188
 
185
189
  def define_error(info)
@@ -222,7 +226,12 @@ module GObjectIntrospection
222
226
  end
223
227
  @base_module.const_set(rubyish_class_name(info), flags_module)
224
228
  else
225
- self.class.define_class(info.gtype, flags_class_name(info), @base_module)
229
+ klass = self.class.define_class(info.gtype,
230
+ flags_class_name(info),
231
+ @base_module)
232
+ prepare_class(klass) do
233
+ load_methods(info, klass)
234
+ end
226
235
  end
227
236
  end
228
237
 
@@ -479,7 +488,11 @@ module GObjectIntrospection
479
488
  name
480
489
  end
481
490
  when "to_string"
482
- "to_s"
491
+ if n_in_args.zero?
492
+ "to_s"
493
+ else
494
+ name
495
+ end
483
496
  when "to_integer"
484
497
  "to_i"
485
498
  when "foreach"
@@ -633,6 +646,8 @@ module GObjectIntrospection
633
646
  return unless defined?(Ractor)
634
647
  Ractor.make_shareable(klass::INVOKERS)
635
648
  Ractor.make_shareable(klass.singleton_class::INVOKERS)
649
+ klass.private_constant(:INVOKERS)
650
+ klass.singleton_class.private_constant(:INVOKERS)
636
651
  end
637
652
 
638
653
  def define_methods_module(name)
@@ -650,6 +665,7 @@ module GObjectIntrospection
650
665
  def post_methods_module(mod)
651
666
  return unless defined?(Ractor)
652
667
  Ractor.make_shareable(mod::INVOKERS)
668
+ mod.private_constant(:INVOKERS)
653
669
  end
654
670
 
655
671
  class Invoker
@@ -756,9 +772,9 @@ module GObjectIntrospection
756
772
  end
757
773
 
758
774
  n_missing_arguments = @n_in_args - arguments.size
759
- if 0 < n_missing_arguments
760
- @in_arg_nil_indexes.each_with_index do |nil_index, i|
761
- next if i <= n_missing_arguments
775
+ n_in_arg_nil_indexes = @in_arg_nil_indexes.size
776
+ if 0 < n_missing_arguments and n_missing_arguments < n_in_arg_nil_indexes
777
+ @in_arg_nil_indexes[-n_missing_arguments..-1].each do |nil_index|
762
778
  arguments.insert(nil_index, nil)
763
779
  end
764
780
  end
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: 4.1.2
4
+ version: 4.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Ruby-GNOME Project Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-24 00:00:00.000000000 Z
11
+ date: 2023-05-04 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: 4.1.2
19
+ version: 4.1.4
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: 4.1.2
26
+ version: 4.1.4
27
27
  description: Ruby/GObjectIntrospection provides bindings of GObject Introspection
28
28
  and a loader module that can generate dynamically Ruby bindings of any GObject C
29
29
  libraries