gobject-introspection 3.3.1 → 3.3.2

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