gobject-introspection 4.2.2 → 4.2.3

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: 5c61aee26486f30c6b35b119b1c35201c2685e48c7dd9a98dd5aebd72909be13
4
- data.tar.gz: e980ad964b3a3318743e893e0c7a22ba94070f4c4735b023fe7dec75e1dca24e
3
+ metadata.gz: 9cf24cfa2841cadc909b15cf038099549ac990a1e7ec567ed1903abd90e5ba4b
4
+ data.tar.gz: 5cff75547d5c09ed7e0cbe0aa03caa534f2b4f13fae1dd26e4487b9a372db2cd
5
5
  SHA512:
6
- metadata.gz: 4e52bda34bc55b6bdd093038cd315e4c7cce19daf165a0e2e72f0848d867786e4120002b456f58c53767c1d82ce6338f82a87ca4516a7a168c85e2bc46c617cc
7
- data.tar.gz: 961ff4d28666a403b7c6465e7e8b66f02bcb2e04b38ceea9343d1a16883afc7a78ed77c50cf77ff99a0f7092228ac411ea54338e09f3b00c4a6d89214de41c97
6
+ metadata.gz: 0ea2df61fff3c0050b2d58c9da5a1f999ef80e3eb942902790770a077db0e433d64cf2d799755b7ada84ca943f784cef1aca9296f1807e4e685d97b9a04b9fd6
7
+ data.tar.gz: f8bfd35d6fdbdab28acffb5e8b80e6798c9cadda7fc6be664aa7da550e94514021235a94e3636db4bffc50180b8dec40c40b5e51aee1223b491e74cda53a20c0
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-gnome2.osdn.jp/)
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-gnome2.osdn.jp/
24
+ https://ruby-gnome.github.io/
@@ -1764,6 +1764,10 @@ rb_gi_arguments_convert_arg_ghash(RBGIArguments *args,
1764
1764
  GIArgument *arg,
1765
1765
  RBGIArgMetadata *arg_metadata)
1766
1766
  {
1767
+ if (arg_metadata->may_be_null_p && !arg->v_pointer) {
1768
+ return Qnil;
1769
+ }
1770
+
1767
1771
  GHashToRubyData data;
1768
1772
 
1769
1773
  data.args = args;
@@ -2858,12 +2862,21 @@ rb_gi_arguments_fill_raw_result(RBGIArguments *args,
2858
2862
  gpointer raw_result,
2859
2863
  GITypeInfo *type_info,
2860
2864
  GITransfer transfer,
2865
+ gboolean may_return_null,
2861
2866
  gboolean is_return_value)
2862
2867
  {
2863
2868
  GIFFIReturnValue *ffi_return_value = raw_result;
2864
- GITypeTag type_tag;
2865
2869
 
2866
- type_tag = g_type_info_get_tag(type_info);
2870
+ if (may_return_null && RB_NIL_P(rb_result)) {
2871
+ if (is_return_value) {
2872
+ ffi_return_value->v_pointer = NULL;
2873
+ } else {
2874
+ *((gpointer *)raw_result) = NULL;
2875
+ }
2876
+ return;
2877
+ }
2878
+
2879
+ GITypeTag type_tag = g_type_info_get_tag(type_info);
2867
2880
  switch (type_tag) {
2868
2881
  case GI_TYPE_TAG_VOID:
2869
2882
  g_assert_not_reached();
@@ -3044,8 +3057,8 @@ rb_gi_arguments_fill_raw_results(RBGIArguments *args,
3044
3057
  return_type_info = g_callable_info_get_return_type(args->info);
3045
3058
  return_type_tag = g_type_info_get_tag(return_type_info);
3046
3059
  if (return_type_tag != GI_TYPE_TAG_VOID) {
3047
- GITransfer transfer;
3048
- transfer = g_callable_info_get_caller_owns(args->info);
3060
+ GITransfer transfer = g_callable_info_get_caller_owns(args->info);
3061
+ gboolean may_return_null = g_callable_info_may_return_null(args->info);
3049
3062
  if (args->out_args->len == 0) {
3050
3063
  VALUE rb_return_value = rb_results;
3051
3064
  rb_gi_arguments_fill_raw_result(args,
@@ -3053,6 +3066,7 @@ rb_gi_arguments_fill_raw_results(RBGIArguments *args,
3053
3066
  raw_return_value,
3054
3067
  return_type_info,
3055
3068
  transfer,
3069
+ may_return_null,
3056
3070
  TRUE);
3057
3071
  } else {
3058
3072
  VALUE rb_return_value;
@@ -3067,6 +3081,7 @@ rb_gi_arguments_fill_raw_results(RBGIArguments *args,
3067
3081
  raw_return_value,
3068
3082
  return_type_info,
3069
3083
  transfer,
3084
+ may_return_null,
3070
3085
  TRUE);
3071
3086
  }
3072
3087
  }
@@ -3106,6 +3121,7 @@ rb_gi_arguments_fill_raw_results(RBGIArguments *args,
3106
3121
  argument->v_pointer,
3107
3122
  type_info,
3108
3123
  transfer,
3124
+ metadata->may_be_null_p,
3109
3125
  FALSE);
3110
3126
  g_base_info_unref(type_info);
3111
3127
  }
@@ -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-gnome2.osdn.jp/"
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-2023 Ruby-GNOME Project Team
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
- rubyish_class_name(info),
189
- @base_module)
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,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gobject-introspection
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.2
4
+ version: 4.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Ruby-GNOME Project Team
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2024-04-02 00:00:00.000000000 Z
10
+ date: 2024-09-19 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: glib2
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 4.2.2
18
+ version: 4.2.3
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 4.2.2
25
+ version: 4.2.3
26
26
  description: Ruby/GObjectIntrospection provides bindings of GObject Introspection
27
27
  and a loader module that can generate dynamically Ruby bindings of any GObject C
28
28
  libraries
@@ -129,7 +129,7 @@ files:
129
129
  - test/test-value-info.rb
130
130
  - test/test-version.rb
131
131
  - test/test-vfunc-info.rb
132
- homepage: https://ruby-gnome2.osdn.jp/
132
+ homepage: https://ruby-gnome.github.io/
133
133
  licenses:
134
134
  - LGPL-2.1+
135
135
  metadata: