glib2 4.0.8 → 4.1.0

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: 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.