glib2 3.4.3 → 3.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/ext/glib2/extconf.rb +1 -5
  4. data/ext/glib2/glib-enum-types.c +1233 -0
  5. data/ext/glib2/glib-enum-types.h +154 -0
  6. data/ext/glib2/glib2.def +2 -0
  7. data/ext/glib2/rbglib-bytes.c +1 -5
  8. data/ext/glib2/rbglib-gc.c +98 -52
  9. data/ext/glib2/rbglib-variant-type.c +1 -5
  10. data/ext/glib2/rbglib-variant.c +6 -7
  11. data/ext/glib2/rbglib.c +68 -1
  12. data/ext/glib2/rbglib.h +13 -3
  13. data/ext/glib2/rbglib_bookmarkfile.c +1 -1
  14. data/ext/glib2/rbglib_datetime.c +1 -5
  15. data/ext/glib2/rbglib_error.c +39 -12
  16. data/ext/glib2/rbglib_fileutils.c +1 -17
  17. data/ext/glib2/rbglib_iochannel.c +4 -4
  18. data/ext/glib2/rbglib_keyfile.c +1 -35
  19. data/ext/glib2/rbglib_maincontext.c +6 -32
  20. data/ext/glib2/rbglib_mainloop.c +2 -17
  21. data/ext/glib2/rbglib_matchinfo.c +1 -5
  22. data/ext/glib2/rbglib_messages.c +4 -5
  23. data/ext/glib2/rbglib_pollfd.c +1 -25
  24. data/ext/glib2/rbglib_regex.c +1 -13
  25. data/ext/glib2/rbglib_source.c +1 -39
  26. data/ext/glib2/rbglib_spawn.c +5 -10
  27. data/ext/glib2/rbglib_spawnerror.c +2 -2
  28. data/ext/glib2/rbglib_threads.c +2 -15
  29. data/ext/glib2/rbglib_timezone.c +1 -5
  30. data/ext/glib2/rbglib_unichar.c +46 -5
  31. data/ext/glib2/rbglib_unicode.c +1 -18
  32. data/ext/glib2/rbglib_utils.c +1 -14
  33. data/ext/glib2/rbglib_win32.c +3 -7
  34. data/ext/glib2/rbgobj_binding.c +1 -7
  35. data/ext/glib2/rbgobj_boxed.c +1 -1
  36. data/ext/glib2/rbgobj_closure.c +22 -9
  37. data/ext/glib2/rbgobj_enums.c +3 -2
  38. data/ext/glib2/rbgobj_flags.c +1 -1
  39. data/ext/glib2/rbgobj_object.c +117 -106
  40. data/ext/glib2/rbgobj_param.c +3 -9
  41. data/ext/glib2/rbgobj_paramspecs.c +6 -24
  42. data/ext/glib2/rbgobj_signal.c +105 -93
  43. data/ext/glib2/rbgobj_strv.c +2 -2
  44. data/ext/glib2/rbgobj_type.c +58 -67
  45. data/ext/glib2/rbgobj_typeinterface.c +38 -2
  46. data/ext/glib2/rbgobj_value.c +23 -8
  47. data/ext/glib2/rbgobj_valuetypes.c +14 -62
  48. data/ext/glib2/rbgobject.c +4 -6
  49. data/ext/glib2/rbgobject.h +2 -27
  50. data/ext/glib2/rbgprivate.h +10 -6
  51. data/ext/glib2/rbgutil.h +3 -2
  52. data/ext/glib2/rbgutil_callback.c +30 -27
  53. data/lib/glib2/deprecated.rb +22 -1
  54. data/lib/glib2.rb +54 -3
  55. data/lib/mkmf-gnome.rb +7 -6
  56. data/test/glib-test-utils.rb +22 -3
  57. data/test/run-test.rb +49 -15
  58. data/test/test-binding.rb +1 -11
  59. data/test/test-bytes.rb +1 -5
  60. data/test/test-date-time.rb +1 -3
  61. data/test/{glib-test-init.rb → test-error.rb} +25 -3
  62. data/test/test-file-utils.rb +1 -32
  63. data/test/test-iochannel.rb +3 -5
  64. data/test/test-key-file.rb +5 -6
  65. data/test/test-match-info.rb +1 -5
  66. data/test/test-regex.rb +1 -5
  67. data/test/test-source.rb +1 -14
  68. data/test/test-spawn.rb +4 -1
  69. data/test/test-time-zone.rb +1 -5
  70. data/test/test-timeout.rb +2 -3
  71. data/test/test-unicode.rb +16 -12
  72. data/test/test-utils.rb +2 -8
  73. data/test/test-variant-type.rb +1 -3
  74. data/test/test-win32.rb +6 -6
  75. metadata +6 -5
  76. data/ext/glib2/rbgobj_valuearray.c +0 -100
@@ -1,11 +1,10 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011-2019 Ruby-GNOME Project Team
4
- * Copyright (C) 2002-2004 Ruby-GNOME Project Team
3
+ * Copyright (C) 2002-2021 Ruby-GNOME Project Team
5
4
  * Copyright (C) 2002-2003 Masahiro Sakai
6
- * Copyright (C) 1998-2000 Yukihiro Matsumoto,
7
- * Daisuke Kanda,
8
- * Hiroshi Igarashi
5
+ * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
+ * Daisuke Kanda,
7
+ * Hiroshi Igarashi
9
8
  *
10
9
  * This library is free software; you can redistribute it and/or
11
10
  * modify it under the terms of the GNU Lesser General Public
@@ -109,7 +108,7 @@ static const rb_data_type_t rg_glib_object_type = {
109
108
  },
110
109
  NULL,
111
110
  NULL,
112
- RUBY_TYPED_FREE_IMMEDIATELY,
111
+ RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE,
113
112
  };
114
113
 
115
114
  void
@@ -365,7 +364,9 @@ static VALUE
365
364
  gobj_new_body(VALUE rb_arg)
366
365
  {
367
366
  struct param_setup_arg *arg = (struct param_setup_arg *)rb_arg;
368
- rb_iterate(rb_each, (VALUE)arg->params_hash, _params_setup, (VALUE)arg);
367
+ ID id_each;
368
+ CONST_ID(id_each, "each");
369
+ rb_block_call(arg->params_hash, id_each, 0, NULL, _params_setup, (VALUE)arg);
369
370
  return (VALUE)g_object_newv(G_TYPE_FROM_CLASS(arg->gclass),
370
371
  arg->param_size, arg->params);
371
372
  }
@@ -496,140 +497,146 @@ gobj_s_properties(int argc, VALUE* argv, VALUE self)
496
497
  return ary;
497
498
  }
498
499
 
499
- static VALUE type_to_prop_setter_table;
500
- static VALUE type_to_prop_getter_table;
500
+ static GHashTable *rbg_type_to_prop_setter_tables;
501
+ static GMutex rbg_type_to_prop_setter_tables_mutex;
502
+ static GHashTable *rbg_type_to_prop_getter_tables;
503
+ static GMutex rbg_type_to_prop_getter_tables_mutex;
501
504
 
502
- void
503
- rbgobj_register_property_setter(GType gtype, const char *name, RValueToGValueFunc func)
505
+ static void
506
+ rbg_register_property_accessor(GHashTable *tables,
507
+ GMutex *mutex,
508
+ GType gtype,
509
+ const char *name,
510
+ gpointer accessor)
504
511
  {
505
- GObjectClass* oclass;
506
- GParamSpec* pspec;
512
+ g_mutex_lock(mutex);
507
513
 
508
- VALUE table = rb_hash_aref(type_to_prop_setter_table, INT2FIX(gtype));
509
- if (NIL_P(table)){
510
- table = rb_hash_new();
511
- rb_hash_aset(type_to_prop_setter_table, INT2FIX(gtype), table);
514
+ GHashTable *table = g_hash_table_lookup(tables, GUINT_TO_POINTER(gtype));
515
+ if (!table) {
516
+ table = g_hash_table_new(g_str_hash, g_str_equal);
517
+ g_hash_table_insert(tables, GUINT_TO_POINTER(gtype), table);
512
518
  }
513
519
 
514
- oclass = g_type_class_ref(gtype);
515
- pspec = g_object_class_find_property(oclass, name);
516
-
517
- rb_hash_aset(table, CSTR2RVAL(g_param_spec_get_name(pspec)),
518
- Data_Wrap_Struct(rb_cData, NULL, NULL, func));
520
+ GObjectClass *gclass = g_type_class_ref(gtype);
521
+ GParamSpec *pspec = g_object_class_find_property(gclass, name);
522
+ g_hash_table_insert(table,
523
+ (gchar *)g_param_spec_get_name(pspec),
524
+ accessor);
525
+ g_type_class_unref(gclass);
519
526
 
520
- g_type_class_unref(oclass);
527
+ g_mutex_unlock(mutex);
521
528
  }
522
529
 
523
- void
524
- rbgobj_register_property_getter(GType gtype, const char *name, GValueToRValueFunc func)
530
+ static gpointer
531
+ rbg_get_property_accessor(GHashTable *tables,
532
+ GMutex *mutex,
533
+ GType gtype,
534
+ const char *name)
525
535
  {
526
- GObjectClass* oclass;
527
- GParamSpec* pspec;
528
-
529
- VALUE table = rb_hash_aref(type_to_prop_getter_table, INT2FIX(gtype));
530
- if (NIL_P(table)){
531
- table = rb_hash_new();
532
- rb_hash_aset(type_to_prop_getter_table, INT2FIX(gtype), table);
536
+ g_mutex_lock(mutex);
537
+
538
+ gpointer accessor = NULL;
539
+ GHashTable *table = g_hash_table_lookup(tables, GUINT_TO_POINTER(gtype));
540
+ if (table) {
541
+ GObjectClass *gclass = g_type_class_ref(gtype);
542
+ GParamSpec *pspec = g_object_class_find_property(gclass, name);
543
+ accessor = g_hash_table_lookup(table, g_param_spec_get_name(pspec));
544
+ g_type_class_unref(gclass);
533
545
  }
534
546
 
535
- oclass = g_type_class_ref(gtype);
536
- pspec = g_object_class_find_property(oclass, name);
547
+ g_mutex_unlock(mutex);
537
548
 
538
- rb_hash_aset(table, CSTR2RVAL(g_param_spec_get_name(pspec)),
539
- Data_Wrap_Struct(rb_cData, NULL, NULL, func));
549
+ return accessor;
550
+ }
540
551
 
541
- g_type_class_unref(oclass);
552
+ void
553
+ rbgobj_register_property_setter(GType gtype,
554
+ const char *name,
555
+ RValueToGValueFunc func)
556
+ {
557
+ rbg_register_property_accessor(rbg_type_to_prop_setter_tables,
558
+ &rbg_type_to_prop_setter_tables_mutex,
559
+ gtype,
560
+ name,
561
+ func);
562
+ }
563
+
564
+ void
565
+ rbgobj_register_property_getter(GType gtype, const char *name, GValueToRValueFunc func)
566
+ {
567
+ rbg_register_property_accessor(rbg_type_to_prop_getter_tables,
568
+ &rbg_type_to_prop_getter_tables_mutex,
569
+ gtype,
570
+ name,
571
+ func);
542
572
  }
543
573
 
544
574
  static VALUE
545
575
  rg_set_property(VALUE self, VALUE prop_name, VALUE val)
546
576
  {
547
- GParamSpec* pspec;
548
577
  const char* name;
549
-
550
578
  if (SYMBOL_P(prop_name))
551
579
  name = rb_id2name(SYM2ID(prop_name));
552
580
  else
553
581
  name = StringValuePtr(prop_name);
554
582
 
555
- pspec = g_object_class_find_property(G_OBJECT_GET_CLASS(RVAL2GOBJ(self)),
556
- name);
557
-
583
+ GParamSpec* pspec =
584
+ g_object_class_find_property(G_OBJECT_GET_CLASS(RVAL2GOBJ(self)),
585
+ name);
558
586
  if (!pspec)
559
587
  rb_raise(eNoPropertyError, "No such property: %s", name);
560
- else {
561
- // FIXME: use rb_ensure to call g_value_unset()
562
- RValueToGValueFunc setter = NULL;
563
- GValue gval = G_VALUE_INIT;
564
588
 
565
- g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
566
-
567
- {
568
- VALUE table = rb_hash_aref(type_to_prop_setter_table,
569
- INT2FIX(pspec->owner_type));
570
- if (!NIL_P(table)){
571
- VALUE obj = rb_hash_aref(table, CSTR2RVAL(g_param_spec_get_name(pspec)));
572
- if (!NIL_P(obj))
573
- Data_Get_Struct(obj, void, setter);
574
- }
575
- }
576
- if (setter) {
577
- setter(val, &gval);
578
- } else {
579
- rbgobj_rvalue_to_gvalue(val, &gval);
580
- }
581
-
582
- g_object_set_property(RVAL2GOBJ(self), name, &gval);
583
- g_value_unset(&gval);
589
+ RValueToGValueFunc setter =
590
+ rbg_get_property_accessor(rbg_type_to_prop_setter_tables,
591
+ &rbg_type_to_prop_setter_tables_mutex,
592
+ pspec->owner_type,
593
+ name);
594
+ // FIXME: use rb_ensure to call g_value_unset()
595
+ GValue gval = G_VALUE_INIT;
596
+ g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
597
+ if (setter) {
598
+ setter(val, &gval);
599
+ } else {
600
+ rbgobj_rvalue_to_gvalue(val, &gval);
601
+ }
602
+ g_object_set_property(RVAL2GOBJ(self), name, &gval);
603
+ g_value_unset(&gval);
584
604
 
585
- G_CHILD_SET(self, rb_intern(name), val);
605
+ G_CHILD_SET(self, rb_intern(name), val);
586
606
 
587
- return self;
588
- }
607
+ return self;
589
608
  }
590
609
 
591
610
  static VALUE
592
611
  rg_get_property(VALUE self, VALUE prop_name)
593
612
  {
594
- GParamSpec* pspec;
595
613
  const char* name;
596
-
597
614
  if (SYMBOL_P(prop_name))
598
615
  name = rb_id2name(SYM2ID(prop_name));
599
616
  else
600
617
  name = StringValuePtr(prop_name);
601
618
 
602
- pspec = g_object_class_find_property(G_OBJECT_GET_CLASS(RVAL2GOBJ(self)),
603
- name);
604
-
619
+ GParamSpec *pspec =
620
+ g_object_class_find_property(G_OBJECT_GET_CLASS(RVAL2GOBJ(self)),
621
+ name);
605
622
  if (!pspec)
606
623
  rb_raise(eNoPropertyError, "No such property: %s", name);
607
- else {
608
- // FIXME: use rb_ensure to call g_value_unset()
609
- GValueToRValueFunc getter = NULL;
610
- GValue gval = G_VALUE_INIT;
611
- VALUE ret;
612
-
613
- {
614
- VALUE table = rb_hash_aref(type_to_prop_getter_table,
615
- INT2FIX(pspec->owner_type));
616
- if (!NIL_P(table)){
617
- VALUE obj = rb_hash_aref(table, CSTR2RVAL(g_param_spec_get_name(pspec)));
618
- if (!NIL_P(obj))
619
- Data_Get_Struct(obj, void, getter);
620
- }
621
- }
622
-
623
- g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
624
- g_object_get_property(RVAL2GOBJ(self), name, &gval);
625
624
 
626
- ret = getter ? getter(&gval) : GVAL2RVAL(&gval);
627
- g_value_unset(&gval);
628
-
629
- G_CHILD_SET(self, rb_intern(name), ret);
630
-
631
- return ret;
632
- }
625
+ GValueToRValueFunc getter =
626
+ rbg_get_property_accessor(rbg_type_to_prop_getter_tables,
627
+ &rbg_type_to_prop_getter_tables_mutex,
628
+ pspec->owner_type,
629
+ name);
630
+ // FIXME: use rb_ensure to call g_value_unset()
631
+ GValue gval = G_VALUE_INIT;
632
+ g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
633
+ g_object_get_property(RVAL2GOBJ(self), name, &gval);
634
+ VALUE ret = getter ? getter(&gval) : GVAL2RVAL(&gval);
635
+ g_value_unset(&gval);
636
+
637
+ G_CHILD_SET(self, rb_intern(name), ret);
638
+
639
+ return ret;
633
640
  }
634
641
 
635
642
  static VALUE rg_thaw_notify(VALUE self);
@@ -714,7 +721,6 @@ rg_type_name(VALUE self)
714
721
  return CSTR2RVAL(G_OBJECT_TYPE_NAME(RVAL2GOBJ(self)));
715
722
  }
716
723
 
717
- #if GLIB_CHECK_VERSION(2, 26, 0)
718
724
  typedef struct {
719
725
  VALUE transform_from_callback;
720
726
  VALUE transform_to_callback;
@@ -843,7 +849,6 @@ rg_bind_property(gint argc, VALUE *argv, VALUE self)
843
849
 
844
850
  return rb_binding;
845
851
  }
846
- #endif
847
852
 
848
853
  static VALUE
849
854
  rg_initialize(int argc, VALUE *argv, VALUE self)
@@ -1090,18 +1095,24 @@ Init_gobject_gobject(void)
1090
1095
  RG_DEF_METHOD(inspect, 0);
1091
1096
  RG_DEF_METHOD(type_name, 0);
1092
1097
 
1093
- #if GLIB_CHECK_VERSION(2, 26, 0)
1094
1098
  RG_DEF_METHOD(bind_property, -1);
1095
1099
  G_DEF_CLASS(G_TYPE_BINDING_FLAGS, "BindingFlags", mGLib);
1096
- #endif
1097
1100
 
1098
1101
  eNoPropertyError = rb_define_class_under(mGLib, "NoPropertyError",
1099
1102
  rb_eNameError);
1100
1103
 
1101
- rb_global_variable(&type_to_prop_setter_table);
1102
- rb_global_variable(&type_to_prop_getter_table);
1103
- type_to_prop_setter_table = rb_hash_new();
1104
- type_to_prop_getter_table = rb_hash_new();
1104
+ rbg_type_to_prop_setter_tables =
1105
+ g_hash_table_new_full(g_direct_hash,
1106
+ g_direct_equal,
1107
+ NULL,
1108
+ (GDestroyNotify)g_hash_table_unref);
1109
+ g_mutex_init(&rbg_type_to_prop_setter_tables_mutex);
1110
+ rbg_type_to_prop_getter_tables =
1111
+ g_hash_table_new_full(g_direct_hash,
1112
+ g_direct_equal,
1113
+ NULL,
1114
+ (GDestroyNotify)g_hash_table_unref);
1115
+ g_mutex_init(&rbg_type_to_prop_getter_tables_mutex);
1105
1116
 
1106
1117
  /* subclass */
1107
1118
  RG_DEF_SMETHOD(type_register, -1);
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011-2019 Ruby-GNOME Project Team
3
+ * Copyright (C) 2011-2021 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
@@ -61,7 +61,7 @@ static const rb_data_type_t rg_glib_param_type = {
61
61
  },
62
62
  NULL,
63
63
  NULL,
64
- RUBY_TYPED_FREE_IMMEDIATELY,
64
+ RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE,
65
65
  };
66
66
 
67
67
  static pspec_holder *
@@ -276,7 +276,7 @@ rg_value_convert(int argc, VALUE* argv, VALUE self)
276
276
  rb_scan_args(argc, argv, "21", &src, &src_type, &strict_validation);
277
277
 
278
278
  /* FIXME: use rb_ensure to ensure following g_value_unset() call*/
279
- g_value_init(&src_value, rbgobj_gtype_get(src_type));
279
+ g_value_init(&src_value, rbgobj_gtype_from_ruby(src_type));
280
280
  g_value_init(&dest_value, G_PARAM_SPEC_VALUE_TYPE(pspec));
281
281
 
282
282
  rbgobj_rvalue_to_gvalue(src, &src_value);
@@ -344,9 +344,7 @@ param_is_flag(G_PARAM_LAX_VALIDATION)
344
344
  param_is_flag(G_PARAM_STATIC_NAME)
345
345
  param_is_flag(G_PARAM_STATIC_NICK)
346
346
  param_is_flag(G_PARAM_STATIC_BLURB)
347
- #if GLIB_CHECK_VERSION(2, 42, 0)
348
347
  param_is_flag(G_PARAM_EXPLICIT_NOTIFY)
349
- #endif
350
348
  param_is_flag(G_PARAM_DEPRECATED)
351
349
 
352
350
  /**********************************************************************/
@@ -376,10 +374,8 @@ Init_gobject_gparam(void)
376
374
  INT2FIX(G_PARAM_STATIC_NICK));
377
375
  rb_define_const(RG_TARGET_NAMESPACE, "STATIC_BLURB",
378
376
  INT2FIX(G_PARAM_STATIC_BLURB));
379
- #if GLIB_CHECK_VERSION(2, 42, 0)
380
377
  rb_define_const(RG_TARGET_NAMESPACE, "EXPLICIT_NOTIFY",
381
378
  INT2FIX(G_PARAM_EXPLICIT_NOTIFY));
382
- #endif
383
379
  rb_define_const(RG_TARGET_NAMESPACE, "DEPRECATED",
384
380
  INT2FIX(G_PARAM_DEPRECATED));
385
381
  rb_define_const(RG_TARGET_NAMESPACE, "MASK",
@@ -432,10 +428,8 @@ Init_gobject_gparam(void)
432
428
  param_is_G_PARAM_STATIC_NICK, 0);
433
429
  rbg_define_method(RG_TARGET_NAMESPACE, "static_blurb?",
434
430
  param_is_G_PARAM_STATIC_BLURB, 0);
435
- #if GLIB_CHECK_VERSION(2, 42, 0)
436
431
  rbg_define_method(RG_TARGET_NAMESPACE, "explicit_notify?",
437
432
  param_is_G_PARAM_EXPLICIT_NOTIFY, 0);
438
- #endif
439
433
  rbg_define_method(RG_TARGET_NAMESPACE, "deprecated?",
440
434
  param_is_G_PARAM_DEPRECATED, 0);
441
435
  }
@@ -1,7 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2004 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2004-2021 Ruby-GNOME Project Team
5
4
  * Copyright (C) 2002,2003 Masahiro Sakai
6
5
  *
7
6
  * This library is free software; you can redistribute it and/or
@@ -116,7 +115,7 @@ enum_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
116
115
  VALUE enum_type, VALUE default_value, VALUE flags)
117
116
  {
118
117
  GParamSpec* pspec;
119
- GType gtype = rbgobj_gtype_get(enum_type);
118
+ GType gtype = rbgobj_gtype_from_ruby(enum_type);
120
119
 
121
120
  pspec = g_param_spec_enum(StringValuePtr(name),
122
121
  StringValuePtr(nick),
@@ -133,7 +132,7 @@ flags_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
133
132
  VALUE flags_type, VALUE default_value, VALUE flags)
134
133
  {
135
134
  GParamSpec* pspec;
136
- GType gtype = rbgobj_gtype_get(flags_type);
135
+ GType gtype = rbgobj_gtype_from_ruby(flags_type);
137
136
 
138
137
  pspec = g_param_spec_flags(StringValuePtr(name),
139
138
  StringValuePtr(nick),
@@ -167,7 +166,7 @@ param_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
167
166
  pspec = g_param_spec_param(StringValuePtr(name),
168
167
  StringValuePtr(nick),
169
168
  StringValuePtr(blurb),
170
- rbgobj_gtype_get(param_type),
169
+ rbgobj_gtype_from_ruby(param_type),
171
170
  NUM2UINT(flags));
172
171
  rbgobj_param_spec_initialize(self, pspec);
173
172
  return Qnil;
@@ -181,7 +180,7 @@ boxed_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
181
180
  pspec = g_param_spec_boxed(StringValuePtr(name),
182
181
  StringValuePtr(nick),
183
182
  StringValuePtr(blurb),
184
- rbgobj_gtype_get(boxed_type),
183
+ rbgobj_gtype_from_ruby(boxed_type),
185
184
  NUM2UINT(flags));
186
185
  rbgobj_param_spec_initialize(self, pspec);
187
186
  return Qnil;
@@ -199,20 +198,6 @@ pointer_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb, VALUE flags)
199
198
  return Qnil;
200
199
  }
201
200
 
202
- static VALUE
203
- value_array_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
204
- VALUE element_spec, VALUE flags)
205
- {
206
- GParamSpec* pspec;
207
- pspec = g_param_spec_value_array(StringValuePtr(name),
208
- StringValuePtr(nick),
209
- StringValuePtr(blurb),
210
- RVAL2GOBJ(element_spec),
211
- NUM2UINT(flags));
212
- rbgobj_param_spec_initialize(self, pspec);
213
- return Qnil;
214
- }
215
-
216
201
  static VALUE
217
202
  object_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
218
203
  VALUE object_type, VALUE flags)
@@ -221,7 +206,7 @@ object_initialize(VALUE self, VALUE name, VALUE nick, VALUE blurb,
221
206
  pspec = g_param_spec_object(StringValuePtr(name),
222
207
  StringValuePtr(nick),
223
208
  StringValuePtr(blurb),
224
- rbgobj_gtype_get(object_type),
209
+ rbgobj_gtype_from_ruby(object_type),
225
210
  NUM2UINT(flags));
226
211
  rbgobj_param_spec_initialize(self, pspec);
227
212
  return Qnil;
@@ -303,9 +288,6 @@ Init_gobject_gparamspecs(void)
303
288
  c = G_DEF_CLASS(G_TYPE_PARAM_POINTER, "Pointer", cParamSpec);
304
289
  rbg_define_method(c, "initialize", pointer_initialize, 4);
305
290
 
306
- c = G_DEF_CLASS(G_TYPE_PARAM_VALUE_ARRAY, "ValueArray", cParamSpec);
307
- rbg_define_method(c, "initialize", value_array_initialize, 5);
308
-
309
291
  c = G_DEF_CLASS(G_TYPE_PARAM_OBJECT, "Object", cParamSpec);
310
292
  rbg_define_method(c, "initialize", object_initialize, 5);
311
293
  }