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