glib2 3.3.8 → 3.3.9

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: 2bd17bde266ff29b1445dd41b0a33549472b10082d3a33dd566e90200ee16ca1
4
- data.tar.gz: f8ff9860d9fbe9a600546aaf66332022537f8ad5376712a6bdabc46b92903984
3
+ metadata.gz: 3801c55a0485d01299188fed3c0c31014218b6b7b14d89569eb382cb957e7a55
4
+ data.tar.gz: a6000f1cbbdfbd5002852cdccc94f1289e26475f03af643f86f34766b2fb9674
5
5
  SHA512:
6
- metadata.gz: b47ecb4c251f0d6d573a25177c313c221563961ef55d89130a67ed1aabad171ec90147434c1c7aee708a448c2df43fd7704af2e95d6d82a48ad7f6b11e1163ed
7
- data.tar.gz: 83491d543291507cfe2bb44a41689866dc1ae35d987f3fd3b4a8d02f3be33b81e8f2ccfd51a28d124c23dc7c7667848ec1bf5dc2374022ede9eec91256acbca5
6
+ metadata.gz: f6d18cfb2fbb7102f1e7e4353fa77b18f3166486645024f7153a0c1ee8219a284a7b768c6437bb777d4f10dd84e0ac72980b004c004d59c37b8ebb6739e831ff
7
+ data.tar.gz: 5330b0737f3f5b1363e3c75bc946717080c874bc88b51f3d450c28154481d0efa83031b7d334dc02085a834f151b2bb13fe729bce63b33ca2f7648bda19f751e
@@ -1,6 +1,18 @@
1
- =begin
2
- extconf.rb for Ruby/GLib extention library
3
- =end
1
+ # Copyright (C) 2002-2019 Ruby-GNOME Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
4
16
 
5
17
  require 'pathname'
6
18
 
@@ -12,12 +24,12 @@ $LOAD_PATH.unshift(mkmf_gnome2_dir.to_s)
12
24
  module_name = "glib2"
13
25
  package_id = "gobject-2.0"
14
26
 
15
- require 'mkmf-gnome2'
27
+ require "mkmf-gnome"
16
28
 
17
29
  unless required_pkg_config_package([package_id, 2, 12, 0],
18
30
  :alt_linux => "glib2-devel",
19
31
  :debian => "libglib2.0-dev",
20
- :redhat => "glib2-devel",
32
+ :redhat => "pkgconfig(#{package_id})",
21
33
  :arch_linux => "glib2",
22
34
  :homebrew => "glib",
23
35
  :macports => "glib2",
@@ -75,7 +87,11 @@ include_paths = PKGConfig.cflags_only_I(package_id)
75
87
  headers = include_paths.split.inject(headers) do |result, path|
76
88
  result + Dir.glob(File.join(path.sub(/^-I/, ""), "gobject", "gsignal.h"))
77
89
  end
78
- glib_mkenums(enum_types_prefix, headers, "G_TYPE_", ["glib-object.h"])
90
+ glib_mkenums(enum_types_prefix,
91
+ headers,
92
+ "G_TYPE_",
93
+ [],
94
+ preamble: "#include \"rbgprivate.h\"")
79
95
 
80
96
  $defs << "-DRUBY_GLIB2_COMPILATION"
81
97
 
@@ -45,6 +45,7 @@ EXPORTS
45
45
  rbgobj_lookup_class
46
46
  rbgobj_lookup_class_by_gtype
47
47
  rbgobj_gtype_to_ruby_class
48
+ rbgobj_gtype_from_ruby
48
49
  rbgobj_ptr2cptr
49
50
  rbgobj_ptr_new
50
51
  rbgobj_make_enum
@@ -106,6 +107,8 @@ EXPORTS
106
107
  rbg_rval2strv_accept_nil
107
108
  rbg_rval2strv_dup
108
109
  rbg_rval2strv_dup_accept_nil
110
+ rbg_rval2filenamev
111
+ rbg_rval2filenamev_accept_nil
109
112
  rbg_strv2rval
110
113
  rbg_strv2rval_free
111
114
  rbg_rval2gbooleans
@@ -171,7 +174,9 @@ EXPORTS
171
174
  rbg_gc_guard
172
175
  rbg_gc_unguard
173
176
 
174
- g_source_get_type
177
+ rbg_is_bytes
178
+ rbg_is_object
179
+ rbg_is_value
180
+
175
181
  g_connect_flags_get_type
176
- g_poll_fd_get_type
177
182
  g_signal_flags_get_type
@@ -20,10 +20,18 @@
20
20
 
21
21
  #include "rbgprivate.h"
22
22
 
23
- #define RG_TARGET_NAMESPACE cBytes
23
+ static VALUE rb_cGLibBytes;
24
+
25
+ #define RG_TARGET_NAMESPACE rb_cGLibBytes
24
26
 
25
27
  #define _SELF(s) (RVAL2BOXED(s, G_TYPE_BYTES))
26
28
 
29
+ gboolean
30
+ rbg_is_bytes(VALUE object)
31
+ {
32
+ return RVAL2CBOOL(rb_obj_is_kind_of(object, RG_TARGET_NAMESPACE));
33
+ }
34
+
27
35
  #if GLIB_CHECK_VERSION(2, 32, 0)
28
36
  static VALUE RG_TARGET_NAMESPACE;
29
37
 
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2018-2019 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2018-2019 Ruby-GNOME 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
@@ -53,8 +53,6 @@ static const rb_data_type_t rbg_gc_marker_type = {
53
53
  {
54
54
  gc_marker_mark,
55
55
  gc_marker_free,
56
- NULL,
57
- {0},
58
56
  },
59
57
  NULL,
60
58
  NULL,
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011-2019 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2011-2019 Ruby-GNOME Project Team
4
4
  * Copyright (C) 2002,2003 Masahiro Sakai
5
5
  *
6
6
  * This library is free software; you can redistribute it and/or
@@ -323,7 +323,7 @@ rbg_filename_from_ruby(VALUE filename)
323
323
  struct rval2strv_args {
324
324
  VALUE ary;
325
325
  long n;
326
- const gchar **result;
326
+ gchar **result;
327
327
  };
328
328
 
329
329
  static VALUE
@@ -333,28 +333,28 @@ rbg_rval2strv_body(VALUE value)
333
333
  struct rval2strv_args *args = (struct rval2strv_args *)value;
334
334
 
335
335
  for (i = 0; i < args->n; i++)
336
- args->result[i] = RVAL2CSTR(RARRAY_PTR(args->ary)[i]);
336
+ args->result[i] = (gchar *)RVAL2CSTR(RARRAY_PTR(args->ary)[i]);
337
337
  args->result[args->n] = NULL;
338
338
 
339
339
  return Qnil;
340
340
  }
341
341
 
342
342
  static G_GNUC_NORETURN VALUE
343
- rbg_rval2strv_rescue(VALUE value)
343
+ rbg_rval2strv_rescue(VALUE value, VALUE error)
344
344
  {
345
345
  g_free(((struct rval2strv_args *)value)->result);
346
346
 
347
- rb_exc_raise(rb_errinfo());
347
+ rb_exc_raise(error);
348
348
  }
349
349
 
350
- const gchar **
350
+ gchar **
351
351
  rbg_rval2strv(volatile VALUE *value, long *n)
352
352
  {
353
353
  struct rval2strv_args args;
354
354
 
355
355
  args.ary = *value = rb_ary_dup(rb_ary_to_ary(*value));
356
356
  args.n = RARRAY_LEN(args.ary);
357
- args.result = g_new(const gchar *, args.n + 1);
357
+ args.result = g_new(gchar *, args.n + 1);
358
358
 
359
359
  rb_rescue(rbg_rval2strv_body, (VALUE)&args,
360
360
  rbg_rval2strv_rescue, (VALUE)&args);
@@ -365,7 +365,7 @@ rbg_rval2strv(volatile VALUE *value, long *n)
365
365
  return args.result;
366
366
  }
367
367
 
368
- const gchar **
368
+ gchar **
369
369
  rbg_rval2strv_accept_nil(volatile VALUE *value, long *n)
370
370
  {
371
371
  if (!NIL_P(*value))
@@ -397,11 +397,11 @@ rbg_rval2strv_dup_body(VALUE value)
397
397
  }
398
398
 
399
399
  static G_GNUC_NORETURN VALUE
400
- rbg_rval2strv_dup_rescue(VALUE value)
400
+ rbg_rval2strv_dup_rescue(VALUE value, VALUE error)
401
401
  {
402
- g_free(((struct rval2strv_dup_args *)value)->result);
402
+ g_strfreev(((struct rval2strv_dup_args *)value)->result);
403
403
 
404
- rb_exc_raise(rb_errinfo());
404
+ rb_exc_raise(error);
405
405
  }
406
406
 
407
407
  gchar **
@@ -411,7 +411,7 @@ rbg_rval2strv_dup(volatile VALUE *value, long *n)
411
411
 
412
412
  args.ary = *value = rb_ary_dup(rb_ary_to_ary(*value));
413
413
  args.n = RARRAY_LEN(args.ary);
414
- args.result = g_new(gchar *, args.n + 1);
414
+ args.result = g_new0(gchar *, args.n + 1);
415
415
 
416
416
  rb_rescue(rbg_rval2strv_dup_body, (VALUE)&args,
417
417
  rbg_rval2strv_dup_rescue, (VALUE)&args);
@@ -434,6 +434,63 @@ rbg_rval2strv_dup_accept_nil(volatile VALUE *value, long *n)
434
434
  return NULL;
435
435
  }
436
436
 
437
+ struct rval2filenamev_args {
438
+ VALUE ary;
439
+ long n;
440
+ gchar **result;
441
+ };
442
+
443
+ static VALUE
444
+ rbg_rval2filenamev_body(VALUE value)
445
+ {
446
+ long i;
447
+ struct rval2filenamev_args *args = (struct rval2filenamev_args *)value;
448
+
449
+ for (i = 0; i < args->n; i++)
450
+ args->result[i] = RVAL2CSTRFILENAME(RARRAY_PTR(args->ary)[i]);
451
+ args->result[args->n] = NULL;
452
+
453
+ return Qnil;
454
+ }
455
+
456
+ static G_GNUC_NORETURN VALUE
457
+ rbg_rval2filenamev_rescue(VALUE value, VALUE error)
458
+ {
459
+ g_strfreev(((struct rval2filenamev_args *)value)->result);
460
+
461
+ rb_exc_raise(error);
462
+ }
463
+
464
+ gchar **
465
+ rbg_rval2filenamev(volatile VALUE *value, long *n)
466
+ {
467
+ struct rval2filenamev_args args;
468
+
469
+ args.ary = *value = rb_ary_dup(rb_ary_to_ary(*value));
470
+ args.n = RARRAY_LEN(args.ary);
471
+ args.result = g_new0(gchar *, args.n + 1);
472
+
473
+ rb_rescue(rbg_rval2filenamev_body, (VALUE)&args,
474
+ rbg_rval2filenamev_rescue, (VALUE)&args);
475
+
476
+ if (n != NULL)
477
+ *n = args.n;
478
+
479
+ return args.result;
480
+ }
481
+
482
+ gchar **
483
+ rbg_rval2filenamev_accept_nil(volatile VALUE *value, long *n)
484
+ {
485
+ if (!NIL_P(*value))
486
+ return rbg_rval2filenamev(value, n);
487
+
488
+ if (n != NULL)
489
+ *n = 0;
490
+
491
+ return NULL;
492
+ }
493
+
437
494
  VALUE
438
495
  rbg_strv2rval(const gchar **strings)
439
496
  {
@@ -490,11 +547,11 @@ rbg_rval2gbooleans_body(VALUE value)
490
547
  }
491
548
 
492
549
  static G_GNUC_NORETURN VALUE
493
- rbg_rval2gbooleans_rescue(VALUE value)
550
+ rbg_rval2gbooleans_rescue(VALUE value, VALUE error)
494
551
  {
495
552
  g_free(((struct rbg_rval2gbooleans_args *)value)->result);
496
553
 
497
- rb_exc_raise(rb_errinfo());
554
+ rb_exc_raise(error);
498
555
  }
499
556
 
500
557
  gboolean *
@@ -533,11 +590,11 @@ rbg_rval2gints_body(VALUE value)
533
590
  }
534
591
 
535
592
  static G_GNUC_NORETURN VALUE
536
- rbg_rval2gints_rescue(VALUE value)
593
+ rbg_rval2gints_rescue(VALUE value, VALUE error)
537
594
  {
538
595
  g_free(((struct rbg_rval2gints_args *)value)->result);
539
596
 
540
- rb_exc_raise(rb_errinfo());
597
+ rb_exc_raise(error);
541
598
  }
542
599
 
543
600
  gint *
@@ -576,11 +633,11 @@ rbg_rval2gint8s_body(VALUE value)
576
633
  }
577
634
 
578
635
  static G_GNUC_NORETURN VALUE
579
- rbg_rval2gint8s_rescue(VALUE value)
636
+ rbg_rval2gint8s_rescue(VALUE value, VALUE error)
580
637
  {
581
638
  g_free(((struct rbg_rval2gint8s_args *)value)->result);
582
639
 
583
- rb_exc_raise(rb_errinfo());
640
+ rb_exc_raise(error);
584
641
  }
585
642
 
586
643
  gint8 *
@@ -619,11 +676,11 @@ rbg_rval2guint8s_body(VALUE value)
619
676
  }
620
677
 
621
678
  static G_GNUC_NORETURN VALUE
622
- rbg_rval2guint8s_rescue(VALUE value)
679
+ rbg_rval2guint8s_rescue(VALUE value, VALUE error)
623
680
  {
624
681
  g_free(((struct rbg_rval2guint8s_args *)value)->result);
625
682
 
626
- rb_exc_raise(rb_errinfo());
683
+ rb_exc_raise(error);
627
684
  }
628
685
 
629
686
  guint8 *
@@ -662,11 +719,11 @@ rbg_rval2guint16s_body(VALUE value)
662
719
  }
663
720
 
664
721
  static G_GNUC_NORETURN VALUE
665
- rbg_rval2guint16s_rescue(VALUE value)
722
+ rbg_rval2guint16s_rescue(VALUE value, VALUE error)
666
723
  {
667
724
  g_free(((struct rbg_rval2guint16s_args *)value)->result);
668
725
 
669
- rb_exc_raise(rb_errinfo());
726
+ rb_exc_raise(error);
670
727
  }
671
728
 
672
729
  guint16 *
@@ -705,11 +762,11 @@ rbg_rval2guint32s_body(VALUE value)
705
762
  }
706
763
 
707
764
  static G_GNUC_NORETURN VALUE
708
- rbg_rval2guint32s_rescue(VALUE value)
765
+ rbg_rval2guint32s_rescue(VALUE value, VALUE error)
709
766
  {
710
767
  g_free(((struct rbg_rval2guint32s_args *)value)->result);
711
768
 
712
- rb_exc_raise(rb_errinfo());
769
+ rb_exc_raise(error);
713
770
  }
714
771
 
715
772
  guint32 *
@@ -748,11 +805,11 @@ rbg_rval2gdoubles_body(VALUE value)
748
805
  }
749
806
 
750
807
  static G_GNUC_NORETURN VALUE
751
- rbg_rval2gdoubles_rescue(VALUE value)
808
+ rbg_rval2gdoubles_rescue(VALUE value, VALUE error)
752
809
  {
753
810
  g_free(((struct rbg_rval2gdoubles_args *)value)->result);
754
811
 
755
- rb_exc_raise(rb_errinfo());
812
+ rb_exc_raise(error);
756
813
  }
757
814
 
758
815
  gdouble *
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2002-2019 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2002-2019 Ruby-GNOME Project Team
4
4
  * Copyright (C) 2002,2003 Masahiro Sakai
5
5
  *
6
6
  * This library is free software; you can redistribute it and/or
@@ -27,16 +27,13 @@
27
27
  #include "rbglibdeprecated.h"
28
28
  #include "rbglib2conversions.h"
29
29
 
30
- #ifndef __RBGLIB_H__
31
- #define __RBGLIB_H__
30
+ #pragma once
32
31
 
33
- #ifdef __cplusplus
34
- extern "C" {
35
- #endif /* __cplusplus */
32
+ G_BEGIN_DECLS
36
33
 
37
34
  #define RBGLIB_MAJOR_VERSION 3
38
35
  #define RBGLIB_MINOR_VERSION 3
39
- #define RBGLIB_MICRO_VERSION 8
36
+ #define RBGLIB_MICRO_VERSION 9
40
37
 
41
38
  #ifndef RB_ZALLOC
42
39
  # ifdef ZALLOC
@@ -195,10 +192,12 @@ VALUE rbg_filename_to_ruby(const gchar *filename);
195
192
  extern VALUE rbg_filename_to_ruby_free(gchar *filename);
196
193
  extern gchar *rbg_filename_from_ruby(VALUE filename);
197
194
 
198
- const gchar **rbg_rval2strv(volatile VALUE *value, long *n);
199
- const gchar **rbg_rval2strv_accept_nil(volatile VALUE *value, long *n);
195
+ gchar **rbg_rval2strv(volatile VALUE *value, long *n);
196
+ gchar **rbg_rval2strv_accept_nil(volatile VALUE *value, long *n);
200
197
  gchar **rbg_rval2strv_dup(volatile VALUE *value, long *n);
201
198
  gchar **rbg_rval2strv_dup_accept_nil(volatile VALUE *value, long *n);
199
+ gchar **rbg_rval2filenamev(volatile VALUE *value, long *n);
200
+ gchar **rbg_rval2filenamev_accept_nil(volatile VALUE *value, long *n);
202
201
  VALUE rbg_strv2rval(const gchar **strings);
203
202
  VALUE rbg_strv2rval_free(gchar **strings);
204
203
 
@@ -234,12 +233,13 @@ extern GVariant *rbg_variant_from_ruby(VALUE rb_variant);
234
233
 
235
234
  extern GVariantType *rbg_variant_type_from_ruby(VALUE rb_variant_type);
236
235
 
237
-
238
236
  extern void rbg_gc_guard(gpointer key, VALUE rb_object);
239
237
  extern void rbg_gc_unguard(gpointer key);
240
238
 
241
- #ifdef __cplusplus
242
- }
243
- #endif /* __cplusplus */
244
239
 
245
- #endif /* __RBGLIB_H__ */
240
+ /* predicates */
241
+ extern gboolean rbg_is_bytes(VALUE object);
242
+ extern gboolean rbg_is_object(VALUE object);
243
+ extern gboolean rbg_is_value(VALUE object);
244
+
245
+ G_END_DECLS
@@ -33,8 +33,8 @@
33
33
  #define GMAINCONTEXT2RVAL(o) (BOXED2RVAL(o, G_TYPE_MAIN_CONTEXT))
34
34
  #define RVAL2GMAINLOOP(o) ((GMainLoop*)RVAL2BOXED(o, G_TYPE_MAIN_LOOP))
35
35
  #define GMAINLOOP2RVAL(o) (BOXED2RVAL(o, G_TYPE_MAIN_LOOP))
36
- #define RVAL2GPOLLFD(o) ((GPollFD*)RVAL2BOXED(o, G_TYPE_POLL_FD))
37
- #define GPOLLFD2RVAL(o) (BOXED2RVAL(o, G_TYPE_POLL_FD))
36
+ #define RVAL2GPOLLFD(o) ((GPollFD*)RVAL2BOXED(o, G_TYPE_POLLFD))
37
+ #define GPOLLFD2RVAL(o) (BOXED2RVAL(o, G_TYPE_POLLFD))
38
38
  #define RVAL2GSOURCE(o) ((GSource*)RVAL2BOXED(o, G_TYPE_SOURCE))
39
39
  #define GSOURCE2RVAL(o) (BOXED2RVAL(o, G_TYPE_SOURCE))
40
40
  #define RVAL2GTIMER(o) ((GTimer*)RVAL2BOXED(o, G_TYPE_TIMER))
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011-2019 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2011-2019 Ruby-GNOME Project Team
4
4
  * Copyright (C) 2005 Masao Mutoh
5
5
  *
6
6
  * This library is free software; you can redistribute it and/or
@@ -503,17 +503,20 @@ rg_close(gint argc, VALUE *argv, VALUE self)
503
503
  }
504
504
 
505
505
  static VALUE
506
- rg_create_watch(VALUE self, VALUE condition)
506
+ rg_create_watch(int argc, VALUE *argv, VALUE self)
507
507
  {
508
+ VALUE rb_condition;
509
+ VALUE rb_block;
508
510
  VALUE rb_source;
509
511
 
510
- rb_source = BOXED2RVAL(g_io_create_watch(_SELF(self), NUM2INT(condition)),
512
+ rb_scan_args(argc, argv, "1&", &rb_condition, &rb_block);
513
+ rb_source = BOXED2RVAL(g_io_create_watch(_SELF(self), NUM2INT(rb_condition)),
511
514
  G_TYPE_SOURCE);
512
515
  rb_extend_object(rb_source, rb_mIOChannelSource);
513
- if (rb_block_given_p()) {
516
+ if (!NIL_P(rb_block)) {
514
517
  ID id_set_callback;
515
518
  CONST_ID(id_set_callback, "set_callback");
516
- rb_funcall(rb_source, id_set_callback, 0);
519
+ rb_funcall_with_block(rb_source, id_set_callback, 0, NULL, rb_block);
517
520
  }
518
521
  return rb_source;
519
522
  }
@@ -545,15 +548,15 @@ guint g_io_add_watch_full (GIOChannel *channel,
545
548
  */
546
549
 
547
550
  static VALUE
548
- rg_io_channel_source_set_callback(VALUE self)
551
+ rg_io_channel_source_set_callback(int argc, VALUE *argv, VALUE self)
549
552
  {
550
- VALUE callback;
553
+ VALUE rb_callback;
551
554
 
552
- callback = rb_block_proc();
553
- G_RELATIVE(self, callback);
555
+ rb_scan_args(argc, argv, "&", &rb_callback);
556
+ G_RELATIVE(self, rb_callback);
554
557
  g_source_set_callback(RVAL2BOXED(self, G_TYPE_SOURCE),
555
558
  (GSourceFunc)io_func,
556
- (gpointer)callback,
559
+ (gpointer)rb_callback,
557
560
  (GDestroyNotify)NULL);
558
561
  return self;
559
562
  }
@@ -810,7 +813,7 @@ Init_glib_io_channel(void)
810
813
  RG_DEF_METHOD(seek, -1);
811
814
  RG_DEF_METHOD(set_pos, 1);
812
815
  RG_DEF_METHOD(close, -1);
813
- RG_DEF_METHOD(create_watch, 1);
816
+ RG_DEF_METHOD(create_watch, -1);
814
817
  RG_DEF_METHOD(add_watch, 1);
815
818
  RG_DEF_METHOD(buffer_size, 0);
816
819
  RG_DEF_METHOD(set_buffer_size, 1);
@@ -852,5 +855,5 @@ Init_glib_io_channel(void)
852
855
  rb_define_method(rb_mIOChannelSource,
853
856
  "set_callback",
854
857
  rg_io_channel_source_set_callback,
855
- 0);
858
+ -1);
856
859
  }