gobject-introspection 4.2.5 → 4.2.6

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: 35271806b1d69784715f1d2b32cec3e9c522156e322b28e67d88153f4b114373
4
- data.tar.gz: 7ff88d676bf1cf71281ec663526986ff97f1555b3613be9845cc35006333ffc9
3
+ metadata.gz: d88a4a6128c816a6b3748a8de4604759a2b2cee0395a2fda92e2ce18c16095d1
4
+ data.tar.gz: 160aa66ce37fb5448a1d7d0fdc752e7fc29a268f6e9689efd51ac19f6ffd96c9
5
5
  SHA512:
6
- metadata.gz: 86f9733cabb3d7dca03feef1db7888f3e4cce4b80f514e5b8e0c83fec98187564a841a0313309e31168a96f59f58612447493a046293b7b66066f139f2c3f80e
7
- data.tar.gz: 64a2cf9fedcf690184727f4da0d2cfbc76162febeec36bebf92d4179741b324710546a3716f9fb43d94efb3d18f43cb17a4a82017782099f571c201fd90984b3
6
+ metadata.gz: '0093faeaaebf617a75bd552f23d29456cc3c8a4e43878414d8faaf7c8b13eaf1fef25799cecf73df6df2f7dfaf60fd675dd988b30206d7fb6ef02e74bdd6932b'
7
+ data.tar.gz: '0532796d74b9faf5a6fbf44005c234bb5dc51825b40b6b6bdd7ef4175d7778f8cca3eb2ab3fc0db2be081bdb136cc482f20eac26d95edef4f42170c19d5feb82'
@@ -602,6 +602,12 @@ rb_gi_arguments_convert_arg_interface_body(VALUE user_data)
602
602
  }
603
603
  case GI_INFO_TYPE_OBJECT:
604
604
  case GI_INFO_TYPE_INTERFACE:
605
+ if (!G_IS_OBJECT(data->arg->v_pointer)) {
606
+ GIObjectInfoRefFunction ref = g_object_info_get_ref_function_pointer(data->arg_metadata->type.interface_info);
607
+ if (ref) {
608
+ ref(data->arg->v_pointer);
609
+ }
610
+ }
605
611
  return GOBJ2RVAL(data->arg->v_pointer);
606
612
  case GI_INFO_TYPE_CONSTANT:
607
613
  rb_raise(rb_eNotImpError,
@@ -2148,10 +2154,17 @@ rb_gi_arguments_convert_return_value_free_everything_interface(
2148
2154
  case GI_INFO_TYPE_OBJECT:
2149
2155
  {
2150
2156
  GObject *object = data->value->v_pointer;
2151
- if (g_object_is_floating(object)) {
2152
- g_object_ref_sink(object);
2157
+ if (G_IS_OBJECT(object)) {
2158
+ if (g_object_is_floating(object)) {
2159
+ g_object_ref_sink(object);
2160
+ }
2161
+ g_object_unref(object);
2162
+ } else {
2163
+ GIObjectInfoUnrefFunction unref = g_object_info_get_unref_function_pointer(data->metadata->type.interface_info);
2164
+ if (unref) {
2165
+ unref(object);
2166
+ }
2153
2167
  }
2154
- g_object_unref(object);
2155
2168
  }
2156
2169
  break;
2157
2170
  case GI_INFO_TYPE_INTERFACE:
@@ -2463,6 +2476,8 @@ rb_gi_arguments_convert_return_value_free_everything(ReturnValueToRubyData *data
2463
2476
  case GI_TYPE_TAG_UINT64:
2464
2477
  case GI_TYPE_TAG_FLOAT:
2465
2478
  case GI_TYPE_TAG_DOUBLE:
2479
+ /* We need to do nothing. */
2480
+ break;
2466
2481
  case GI_TYPE_TAG_GTYPE:
2467
2482
  rb_raise(rb_eNotImpError,
2468
2483
  "TODO: free GIArgument(%s) everything",
@@ -56,7 +56,8 @@ initialize_receiver(VALUE receiver,
56
56
  switch (interface_type) {
57
57
  case GI_INFO_TYPE_OBJECT:
58
58
  G_INITIALIZE(receiver, value->v_pointer);
59
- {
59
+ /* GTypeInstance * is also GI_INFO_TYPE_OBJECT. */
60
+ if (G_IS_OBJECT(value->v_pointer)) {
60
61
  gboolean was_floating;
61
62
  was_floating = g_object_is_floating(value->v_pointer);
62
63
  g_object_ref_sink(value->v_pointer);
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gobject-introspection
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.5
4
+ version: 4.2.6
5
5
  platform: ruby
6
- original_platform: ''
7
6
  authors:
8
7
  - The Ruby-GNOME Project Team
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-12-15 00:00:00.000000000 Z
10
+ date: 2025-01-25 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: glib2
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - '='
18
17
  - !ruby/object:Gem::Version
19
- version: 4.2.5
18
+ version: 4.2.6
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - '='
25
24
  - !ruby/object:Gem::Version
26
- version: 4.2.5
25
+ version: 4.2.6
27
26
  description: Ruby/GObjectIntrospection provides bindings of GObject Introspection
28
27
  and a loader module that can generate dynamically Ruby bindings of any GObject C
29
28
  libraries
@@ -149,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
148
  - !ruby/object:Gem::Version
150
149
  version: '0'
151
150
  requirements: []
152
- rubygems_version: 3.6.0.dev
151
+ rubygems_version: 3.6.2
153
152
  specification_version: 4
154
153
  summary: Ruby/GObjectIntrospection is a Ruby binding of GObject Introspection.
155
154
  test_files: []