gobject-introspection 3.2.8 → 3.2.9
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 917092e759a8742c56e050f7564bd36b76062ee4c732891e6670a74b824e3f93
|
4
|
+
data.tar.gz: 5ec4fc8c4ab4e4849d2e7f0545a287897dfe3efdc7da378f513244cb5d904dcb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81a9fc8d8357c45bb75b74e3db39b29583f1294bbda8ece4ae4f2a788bce83ddf883b3852b395d0174b2b8f481f30aff4af91da96e39896793518526a5187022
|
7
|
+
data.tar.gz: 2d90c21ce441298992cfb78de060d042bb0fe9ff94091023520f6b2ad60508ae9dccbf3384ee1cc6351078dfce6636a490041873c4f8cd8c0a9c8a0215c7443f
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
* Copyright (C) 2012 Ruby-GNOME2 Project Team
|
3
|
+
* Copyright (C) 2012-2018 Ruby-GNOME2 Project Team
|
4
4
|
*
|
5
5
|
* This library is free software; you can redistribute it and/or
|
6
6
|
* modify it under the terms of the GNU Lesser General Public
|
@@ -49,7 +49,7 @@ rg_value(VALUE self)
|
|
49
49
|
{
|
50
50
|
GIConstantInfo *info;
|
51
51
|
GIArgument value;
|
52
|
-
gint value_size;
|
52
|
+
G_GNUC_UNUSED gint value_size;
|
53
53
|
GITypeInfo *type_info;
|
54
54
|
VALUE rb_value;
|
55
55
|
|
@@ -46,6 +46,7 @@ struct RBGICallbackData_ {
|
|
46
46
|
RBGICallback *callback;
|
47
47
|
RBGIArgMetadata *metadata;
|
48
48
|
VALUE rb_callback;
|
49
|
+
GObject *owner;
|
49
50
|
};
|
50
51
|
|
51
52
|
static VALUE RG_TARGET_NAMESPACE;
|
@@ -303,18 +304,6 @@ fill_metadata(GPtrArray *args_metadata, GICallableInfo *info)
|
|
303
304
|
fill_metadata_rb_arg_index(args_metadata);
|
304
305
|
}
|
305
306
|
|
306
|
-
static void
|
307
|
-
callback_data_guard_from_gc(RBGICallbackData *callback_data)
|
308
|
-
{
|
309
|
-
rbg_gc_guard(callback_data, callback_data->rb_callback);
|
310
|
-
}
|
311
|
-
|
312
|
-
static void
|
313
|
-
callback_data_unguard_from_gc(RBGICallbackData *callback_data)
|
314
|
-
{
|
315
|
-
rbg_gc_unguard(callback_data);
|
316
|
-
}
|
317
|
-
|
318
307
|
static void
|
319
308
|
rb_gi_callback_free(RBGICallback *callback)
|
320
309
|
{
|
@@ -325,13 +314,30 @@ rb_gi_callback_free(RBGICallback *callback)
|
|
325
314
|
xfree(callback);
|
326
315
|
}
|
327
316
|
|
317
|
+
static void
|
318
|
+
rb_gi_callback_data_weak_notify(gpointer data, GObject* where_the_object_was)
|
319
|
+
{
|
320
|
+
RBGICallbackData *callback_data = data;
|
321
|
+
callback_data->owner = NULL;
|
322
|
+
}
|
323
|
+
|
328
324
|
void
|
329
325
|
rb_gi_callback_data_free(RBGICallbackData *callback_data)
|
330
326
|
{
|
331
327
|
if (callback_data->callback) {
|
332
328
|
rb_gi_callback_free(callback_data->callback);
|
333
329
|
}
|
334
|
-
|
330
|
+
if (callback_data->owner) {
|
331
|
+
VALUE rb_owner;
|
332
|
+
g_object_weak_unref(callback_data->owner,
|
333
|
+
rb_gi_callback_data_weak_notify,
|
334
|
+
callback_data);
|
335
|
+
rb_owner = rbgobj_ruby_object_from_instance2(callback_data->owner,
|
336
|
+
FALSE);
|
337
|
+
if (!NIL_P(rb_owner)) {
|
338
|
+
rbgobj_object_remove_relative(rb_owner, callback_data->rb_callback);
|
339
|
+
}
|
340
|
+
}
|
335
341
|
xfree(callback_data->metadata);
|
336
342
|
xfree(callback_data);
|
337
343
|
}
|
@@ -349,7 +355,7 @@ rb_gi_callback_data_get_rb_callback(RBGICallbackData *callback_data)
|
|
349
355
|
}
|
350
356
|
|
351
357
|
static void
|
352
|
-
|
358
|
+
rb_gi_callback_data_destroy_notify(gpointer data)
|
353
359
|
{
|
354
360
|
RBGICallbackData *callback_data = data;
|
355
361
|
rb_gi_callback_data_free(callback_data);
|
@@ -1087,7 +1093,10 @@ ffi_closure_callback(G_GNUC_UNUSED ffi_cif *cif,
|
|
1087
1093
|
}
|
1088
1094
|
|
1089
1095
|
static void
|
1090
|
-
in_callback_argument_from_ruby(RBGIArgMetadata *metadata,
|
1096
|
+
in_callback_argument_from_ruby(RBGIArgMetadata *metadata,
|
1097
|
+
GArray *in_args,
|
1098
|
+
VALUE self,
|
1099
|
+
VALUE rb_arguments)
|
1091
1100
|
{
|
1092
1101
|
gpointer callback_function;
|
1093
1102
|
GIArgInfo *arg_info;
|
@@ -1140,17 +1149,27 @@ in_callback_argument_from_ruby(RBGIArgMetadata *metadata, GArray *in_args)
|
|
1140
1149
|
|
1141
1150
|
if (closure_argument) {
|
1142
1151
|
RBGICallbackData *callback_data;
|
1152
|
+
VALUE rb_owner;
|
1143
1153
|
|
1144
1154
|
callback_data = ALLOC(RBGICallbackData);
|
1145
1155
|
callback_data->callback = callback;
|
1146
1156
|
callback_data->metadata = metadata;
|
1147
1157
|
callback_data->rb_callback = rb_block_proc();
|
1148
|
-
|
1158
|
+
if (NIL_P(self)) {
|
1159
|
+
rb_owner = rb_ary_entry(rb_arguments, 0);
|
1160
|
+
} else {
|
1161
|
+
rb_owner = self;
|
1162
|
+
}
|
1163
|
+
rbgobj_object_add_relative(rb_owner, callback_data->rb_callback);
|
1164
|
+
callback_data->owner = RVAL2GOBJ(rb_owner);
|
1165
|
+
g_object_weak_ref(callback_data->owner,
|
1166
|
+
rb_gi_callback_data_weak_notify,
|
1167
|
+
callback_data);
|
1149
1168
|
closure_argument->v_pointer = callback_data;
|
1150
1169
|
}
|
1151
1170
|
|
1152
1171
|
if (destroy_argument) {
|
1153
|
-
destroy_argument->v_pointer =
|
1172
|
+
destroy_argument->v_pointer = rb_gi_callback_data_destroy_notify;
|
1154
1173
|
}
|
1155
1174
|
}
|
1156
1175
|
|
@@ -1163,7 +1182,7 @@ in_argument_from_ruby(GICallableInfo *callable_info,
|
|
1163
1182
|
VALUE self)
|
1164
1183
|
{
|
1165
1184
|
if (metadata->callback_p && !metadata->destroy_p) {
|
1166
|
-
in_callback_argument_from_ruby(metadata, in_args);
|
1185
|
+
in_callback_argument_from_ruby(metadata, in_args, self, rb_arguments);
|
1167
1186
|
return;
|
1168
1187
|
}
|
1169
1188
|
|
@@ -596,7 +596,7 @@ module GObjectIntrospection
|
|
596
596
|
end
|
597
597
|
|
598
598
|
def define_equal_style_setter(info, klass, method_name)
|
599
|
-
if /\Aset_/ =~ method_name and info.
|
599
|
+
if /\Aset_/ =~ method_name and info.n_in_args == 1
|
600
600
|
setter_method_name = "#{$POSTMATCH}="
|
601
601
|
remove_existing_method(klass, setter_method_name)
|
602
602
|
klass.__send__(:alias_method, setter_method_name, method_name)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gobject-introspection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Ruby-GNOME2 Project Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glib2
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.2.
|
19
|
+
version: 3.2.9
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.2.
|
26
|
+
version: 3.2.9
|
27
27
|
description: Ruby/GObjectIntrospection provides bindings of GObject Introspection
|
28
28
|
and a loader module that can generate dynamically Ruby bindings of any GObject C
|
29
29
|
libraries
|