gobject-introspection 3.3.1 → 3.3.2

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: 4c6caefd72069125350637fc2a07a444c90ae74ba5175b1e5031e84e5a4349ae
4
- data.tar.gz: 9f1ed91b438bd00f424f283c797af9834c85f2ddc88441019b1781ab40145c6e
3
+ metadata.gz: 826c2b9bde2fd70f03107d641276b32a9e9551580a397e221826866640c961f8
4
+ data.tar.gz: '085ce0af6d0e7f303e42e9cac143267dfca387501c8106eb3a43a15b94498012'
5
5
  SHA512:
6
- metadata.gz: 3f4bb16322d279941ac6ed04b236291d457b1e086dfbefdb0e9fdd343441eaa9df553cc497c771d377231ad8dda2ea80bea1709c46f4e101d7636761f7de0239
7
- data.tar.gz: c710f5412c54f621502f45fcc70f6ea4a9ad7d901bc5b1acebd72aee45aae2d7a31e7319e8c660297db1e8f2bb01afb83bbc082a8f57a62d6d0ad0cbd174953d
6
+ metadata.gz: 1dab56c3339d34fc20f80b88f7c72c17f12e5f62abbe0d36b0475e9cfff5ca9c609d1be7ba534721e14cf2a28325b5d95dc3c9d168bbc0a373bc48189e05c517
7
+ data.tar.gz: '0913ade6824ca87c14af059246a975c126ae86ba1451699a41c042007dab99421c15ab3c462b60ed148fa4f584d643542dffa7c4c5ce07057ab2ce7865730496'
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2012-2018 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2012-2019 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
@@ -135,6 +135,7 @@ allocate_arguments(GICallableInfo *info,
135
135
  memset(&argument, 0, sizeof(GIArgument));
136
136
 
137
137
  metadata = ALLOC(RBGIArgMetadata);
138
+ metadata->callable_info = info;
138
139
  arg_info = &(metadata->arg_info);
139
140
  g_callable_info_load_arg(info, i, arg_info);
140
141
  metadata->scope_type = g_arg_info_get_scope(arg_info);
@@ -339,7 +340,7 @@ rb_gi_callback_data_free(RBGICallbackData *callback_data)
339
340
  rbgobj_object_remove_relative(rb_owner, callback_data->rb_callback);
340
341
  }
341
342
  }
342
- if (callback_data->rb_owner) {
343
+ if (!NIL_P(callback_data->rb_owner)) {
343
344
  rbgobj_remove_relative(callback_data->rb_owner,
344
345
  (ID)0,
345
346
  callback_data->rb_callback);
@@ -1158,6 +1159,14 @@ in_callback_argument_from_ruby(RBGIArgMetadata *metadata,
1158
1159
  VALUE rb_owner = self;
1159
1160
  static VALUE mGLibObject = Qnil;
1160
1161
 
1162
+ if (rb_gi_is_debug_mode()) {
1163
+ GICallableInfo *callable_info = metadata->callable_info;
1164
+ g_print("[rb-gi] callback: %s::%s()\n",
1165
+ g_base_info_get_namespace(callable_info),
1166
+ g_base_info_get_name(callable_info));
1167
+ rb_p(rb_ary_new_from_args(2, self, rb_arguments));
1168
+ }
1169
+
1161
1170
  callback_data = ALLOC(RBGICallbackData);
1162
1171
  callback_data->callback = callback;
1163
1172
  callback_data->metadata = metadata;
@@ -1165,6 +1174,16 @@ in_callback_argument_from_ruby(RBGIArgMetadata *metadata,
1165
1174
  if (NIL_P(mGLibObject)) {
1166
1175
  mGLibObject = rb_const_get(mGLib, rb_intern("Object"));
1167
1176
  }
1177
+ if (NIL_P(rb_owner)) {
1178
+ /* Module function case. */
1179
+ VALUE rb_first_argument = rb_ary_entry(rb_arguments, 0);
1180
+ if (rb_obj_is_kind_of(rb_first_argument, mGLibObject)) {
1181
+ /* If the first argument of the module function call is
1182
+ GObject, it's suitable for owner.
1183
+ For example: pango_cairo_context_set_shape_renderer() */
1184
+ rb_owner = rb_first_argument;
1185
+ }
1186
+ }
1168
1187
  if (rb_obj_is_kind_of(rb_owner, mGLibObject)) {
1169
1188
  rbgobj_object_add_relative(rb_owner, callback_data->rb_callback);
1170
1189
  callback_data->owner = RVAL2GOBJ(rb_owner);
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2012-2017 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2012-2019 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
@@ -41,6 +41,8 @@
41
41
 
42
42
  extern void Init_gobject_introspection(void);
43
43
 
44
+ gboolean rb_gi_is_debug_mode(void);
45
+
44
46
  void rb_gi_argument_init (void);
45
47
 
46
48
  void rb_gi_type_tag_init (VALUE rb_mGI);
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2012-2013 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2012-2019 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
@@ -22,11 +22,26 @@
22
22
 
23
23
  #define RG_TARGET_NAMESPACE rb_mGObjectIntrospection
24
24
 
25
+ static gboolean is_debug_mode = FALSE;
26
+
27
+ gboolean
28
+ rb_gi_is_debug_mode(void)
29
+ {
30
+ return is_debug_mode;
31
+ }
32
+
25
33
  void
26
34
  Init_gobject_introspection(void)
27
35
  {
28
36
  VALUE RG_TARGET_NAMESPACE;
29
37
 
38
+ {
39
+ const char *rb_gi_debug_env = getenv("RB_GI_DEBUG");
40
+ if (rb_gi_debug_env && strcmp(rb_gi_debug_env, "yes") == 0) {
41
+ is_debug_mode = TRUE;
42
+ }
43
+ }
44
+
30
45
  RG_TARGET_NAMESPACE = rb_define_module("GObjectIntrospection");
31
46
 
32
47
  rb_define_const(RG_TARGET_NAMESPACE, "BUILD_VERSION",
@@ -30,6 +30,7 @@ typedef gpointer (*RBGICallbackFinderFunc)(GIArgInfo *info);
30
30
 
31
31
  typedef struct
32
32
  {
33
+ GICallableInfo *callable_info;
33
34
  GIArgInfo arg_info;
34
35
  GIScopeType scope_type;
35
36
  GIDirection direction;
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.3.1
4
+ version: 3.3.2
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: 2019-01-08 00:00:00.000000000 Z
11
+ date: 2019-02-02 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.3.1
19
+ version: 3.3.2
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.3.1
26
+ version: 3.3.2
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
@@ -135,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0'
137
137
  requirements: []
138
- rubygems_version: 3.0.2
138
+ rubygems_version: 3.1.0.pre1
139
139
  signing_key:
140
140
  specification_version: 4
141
141
  summary: Ruby/GObjectIntrospection is a Ruby binding of GObject Introspection.