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 +4 -4
- data/ext/glib2/rbglib.h +2 -2
- data/ext/glib2/rbgobj_closure.c +9 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bb64b21272b534a3cc117234dad504e4df850da3b09dc1a2d58fea3f593495e
|
4
|
+
data.tar.gz: 0707306a5390ab129b0559078dd63a1a498da626b52e9fc33407fbb6ba88a040
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5a99fa3761a880e4d6aac3997d3e628aac9de383191c2a7411292d5144692bda5910590a4b8b7ee8f5f206068ce6809813e6a99dce0a8a63d72551b3e46cda2
|
7
|
+
data.tar.gz: 5a329090af62949beacb5ea6a849e0089d3c1f0d2b042b6f397df58ca6d6b159aefc40d34f84ba42a28b4dfcee41aaf9f2504c100de34ea54b12a46a8f2f0b70
|
data/ext/glib2/rbglib.h
CHANGED
data/ext/glib2/rbgobj_closure.c
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
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-
|
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.
|
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.
|