glib2 4.0.8 → 4.1.0

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: 60c2c5487f29ebf3acdc88e99156b8cae261f6441dac6632582d473ce65accb3
4
- data.tar.gz: cfdf2199e9cd240cebd48deba4de79c8984bcffd0da60c10a866fe18a7f895ad
3
+ metadata.gz: 3bb64b21272b534a3cc117234dad504e4df850da3b09dc1a2d58fea3f593495e
4
+ data.tar.gz: 0707306a5390ab129b0559078dd63a1a498da626b52e9fc33407fbb6ba88a040
5
5
  SHA512:
6
- metadata.gz: 67d10012778e5f0ac390adbfb80c4ec3492a0c858182685742be776f279d88c6775146dfad71f23858cb44d074ad74841b8481987ff6805e7755d94218387445
7
- data.tar.gz: 8b2bd8cca9855bbf2edb22dfa00977d7d903ccbf7048160e4c564bd4472fc1181b962cc7de0d0325a79fa6ebed22f7d54f6695b292429042b8878a83866740c9
6
+ metadata.gz: a5a99fa3761a880e4d6aac3997d3e628aac9de383191c2a7411292d5144692bda5910590a4b8b7ee8f5f206068ce6809813e6a99dce0a8a63d72551b3e46cda2
7
+ data.tar.gz: 5a329090af62949beacb5ea6a849e0089d3c1f0d2b042b6f397df58ca6d6b159aefc40d34f84ba42a28b4dfcee41aaf9f2504c100de34ea54b12a46a8f2f0b70
data/ext/glib2/rbglib.h CHANGED
@@ -32,8 +32,8 @@
32
32
  G_BEGIN_DECLS
33
33
 
34
34
  #define RBGLIB_MAJOR_VERSION 4
35
- #define RBGLIB_MINOR_VERSION 0
36
- #define RBGLIB_MICRO_VERSION 8
35
+ #define RBGLIB_MINOR_VERSION 1
36
+ #define RBGLIB_MICRO_VERSION 0
37
37
 
38
38
  #ifndef RB_ZALLOC
39
39
  # ifdef ZALLOC
@@ -158,7 +158,7 @@ rclosure_marshal(GClosure* closure,
158
158
  static void rclosure_weak_notify(gpointer data, GObject* where_the_object_was);
159
159
 
160
160
  static void
161
- rclosure_finalize(G_GNUC_UNUSED gpointer data, GClosure *closure)
161
+ rclosure_invalidate(G_GNUC_UNUSED gpointer data, GClosure *closure)
162
162
  {
163
163
  GRClosure *rclosure = (GRClosure *)closure;
164
164
 
@@ -166,6 +166,7 @@ rclosure_finalize(G_GNUC_UNUSED gpointer data, GClosure *closure)
166
166
  for (next = rclosure->objects; next; next = next->next) {
167
167
  GObject *object = G_OBJECT(next->data);
168
168
  g_object_weak_unref(object, rclosure_weak_notify, rclosure);
169
+ g_closure_unref(closure);
169
170
  VALUE obj = rbgobj_ruby_object_from_instance2(object, FALSE);
170
171
  if (!NIL_P(rclosure->rb_holder) && !NIL_P(obj)) {
171
172
  rbgobj_object_remove_relative(obj, rclosure->rb_holder);
@@ -200,7 +201,12 @@ gr_closure_holder_free(void *data)
200
201
  if (!rclosure)
201
202
  return;
202
203
 
203
- g_closure_unref((GClosure *)rclosure);
204
+ GClosure *closure = (GClosure *)rclosure;
205
+ gboolean last_reference = (closure->ref_count == 1);
206
+ g_closure_unref(closure);
207
+ if (!last_reference) {
208
+ g_closure_invalidate(closure);
209
+ }
204
210
  }
205
211
 
206
212
  static const rb_data_type_t rbg_closure_holder_type = {
@@ -237,7 +243,7 @@ g_rclosure_new_raw(VALUE callback_proc,
237
243
  g_closure_ref(closure);
238
244
  g_closure_sink(closure);
239
245
  g_closure_set_marshal(closure, &rclosure_marshal);
240
- g_closure_add_finalize_notifier(closure, NULL, rclosure_finalize);
246
+ g_closure_add_invalidate_notifier(closure, NULL, rclosure_invalidate);
241
247
 
242
248
  return closure;
243
249
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glib2
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.8
4
+ version: 4.1.0
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-01-15 00:00:00.000000000 Z
11
+ date: 2023-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pkg-config
@@ -225,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
225
  - !ruby/object:Gem::Version
226
226
  version: '0'
227
227
  requirements: []
228
- rubygems_version: 3.4.0.dev
228
+ rubygems_version: 3.5.0.dev
229
229
  signing_key:
230
230
  specification_version: 4
231
231
  summary: Ruby/GLib2 is a Ruby binding of GLib-2.x.