gobject-introspection 4.2.5 → 4.2.6

Sign up to get free protection for your applications and to get access to all the features.
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: []