glib2 3.4.9 → 4.0.0
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 +4 -4
 - data/ext/glib2/extconf.rb +4 -3
 - data/ext/glib2/glib2.def +5 -0
 - data/ext/glib2/rbglib-bytes.c +1 -1
 - data/ext/glib2/rbglib-gc.c +1 -1
 - data/ext/glib2/rbglib-variant-type.c +1 -1
 - data/ext/glib2/rbglib-variant.c +79 -5
 - data/ext/glib2/rbglib.c +30 -1
 - data/ext/glib2/rbglib.h +17 -4
 - data/ext/glib2/rbglib_bookmarkfile.c +3 -2
 - data/ext/glib2/rbglib_convert.c +2 -2
 - data/ext/glib2/rbglib_datetime.c +14 -3
 - data/ext/glib2/rbglib_error.c +26 -18
 - data/ext/glib2/rbglib_fileutils.c +2 -2
 - data/ext/glib2/rbglib_gettext.c +1 -1
 - data/ext/glib2/rbglib_i18n.c +2 -2
 - data/ext/glib2/rbglib_io_constants.c +1 -1
 - data/ext/glib2/rbglib_iochannel.c +2 -2
 - data/ext/glib2/rbglib_iochannel_win32_socket.c +2 -2
 - data/ext/glib2/rbglib_iochannelerror.c +1 -1
 - data/ext/glib2/rbglib_keyfile.c +2 -2
 - data/ext/glib2/rbglib_maincontext.c +6 -6
 - data/ext/glib2/rbglib_mainloop.c +1 -1
 - data/ext/glib2/rbglib_matchinfo.c +1 -1
 - data/ext/glib2/rbglib_messages.c +1 -1
 - data/ext/glib2/rbglib_pollfd.c +1 -1
 - data/ext/glib2/rbglib_regex.c +3 -3
 - data/ext/glib2/rbglib_shell.c +1 -1
 - data/ext/glib2/rbglib_shellerror.c +1 -1
 - data/ext/glib2/rbglib_source.c +1 -1
 - data/ext/glib2/rbglib_spawn.c +1 -1
 - data/ext/glib2/rbglib_spawnerror.c +1 -1
 - data/ext/glib2/rbglib_threads.c +1 -1
 - data/ext/glib2/rbglib_timer.c +1 -1
 - data/ext/glib2/rbglib_timezone.c +1 -1
 - data/ext/glib2/rbglib_ucs4.c +1 -1
 - data/ext/glib2/rbglib_unichar.c +1 -1
 - data/ext/glib2/rbglib_unicode.c +3 -3
 - data/ext/glib2/rbglib_utf16.c +1 -1
 - data/ext/glib2/rbglib_utf8.c +1 -1
 - data/ext/glib2/rbglib_utils.c +1 -1
 - data/ext/glib2/rbglib_win32.c +3 -3
 - data/ext/glib2/rbgobj_binding.c +1 -1
 - data/ext/glib2/rbgobj_boxed.c +2 -2
 - data/ext/glib2/rbgobj_closure.c +55 -85
 - data/ext/glib2/rbgobj_enums.c +4 -3
 - data/ext/glib2/rbgobj_flags.c +2 -2
 - data/ext/glib2/rbgobj_object.c +33 -6
 - data/ext/glib2/rbgobj_param.c +2 -2
 - data/ext/glib2/rbgobj_signal.c +37 -19
 - data/ext/glib2/rbgobj_type.c +3 -2
 - data/ext/glib2/rbgobj_typeinstance.c +1 -1
 - data/ext/glib2/rbgobj_typeinterface.c +4 -4
 - data/ext/glib2/rbgobj_typemodule.c +1 -1
 - data/ext/glib2/rbgobj_typeplugin.c +1 -1
 - data/ext/glib2/rbgobj_value.c +21 -2
 - data/ext/glib2/rbgobj_valuetypes.c +14 -4
 - data/ext/glib2/rbgobject.c +7 -21
 - data/ext/glib2/rbgobject.h +1 -0
 - data/ext/glib2/rbgprivate.h +11 -4
 - data/ext/glib2/rbgutil.c +20 -1
 - data/ext/glib2/rbgutil.h +6 -2
 - data/ext/glib2/rbgutil_callback.c +14 -8
 - data/lib/glib2/date-time.rb +35 -0
 - data/lib/glib2/variant.rb +25 -0
 - data/lib/glib2.rb +29 -2
 - data/lib/mkmf-gnome.rb +5 -4
 - data/test/glib-test-utils.rb +6 -2
 - data/test/test-date-time.rb +14 -2
 - data/test/test-glib2.rb +21 -9
 - data/test/test-spawn.rb +3 -1
 - data/test/test-variant.rb +44 -1
 - metadata +8 -8
 - data/ext/glib2/glib-enum-types.c +0 -1233
 - data/ext/glib2/glib-enum-types.h +0 -154
 
    
        data/ext/glib2/rbglib_messages.c
    CHANGED
    
    | 
         @@ -129,7 +129,7 @@ rg_s_log(G_GNUC_UNUSED VALUE self, VALUE domain, VALUE level, VALUE str) 
     | 
|
| 
       129 
129 
     | 
    
         
             
            void
         
     | 
| 
       130 
130 
     | 
    
         
             
            Init_glib_messages(void)
         
     | 
| 
       131 
131 
     | 
    
         
             
            {
         
     | 
| 
       132 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 132 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "Log");
         
     | 
| 
       133 
133 
     | 
    
         | 
| 
       134 
134 
     | 
    
         
             
                log_canceled = FALSE;
         
     | 
| 
       135 
135 
     | 
    
         | 
    
        data/ext/glib2/rbglib_pollfd.c
    CHANGED
    
    
    
        data/ext/glib2/rbglib_regex.c
    CHANGED
    
    | 
         @@ -459,7 +459,7 @@ rg_s_have_reference_p(G_GNUC_UNUSED VALUE self, VALUE rb_replacement) 
     | 
|
| 
       459 
459 
     | 
    
         
             
            void
         
     | 
| 
       460 
460 
     | 
    
         
             
            Init_glib_regex(void)
         
     | 
| 
       461 
461 
     | 
    
         
             
            {
         
     | 
| 
       462 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_REGEX, "Regex",  
     | 
| 
      
 462 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_REGEX, "Regex", rbg_mGLib());
         
     | 
| 
       463 
463 
     | 
    
         | 
| 
       464 
464 
     | 
    
         
             
                RG_DEF_METHOD(initialize, -1);
         
     | 
| 
       465 
465 
     | 
    
         
             
                RG_DEF_METHOD(pattern, 0);
         
     | 
| 
         @@ -479,6 +479,6 @@ Init_glib_regex(void) 
     | 
|
| 
       479 
479 
     | 
    
         
             
                RG_DEF_SMETHOD(check_replacement, 1);
         
     | 
| 
       480 
480 
     | 
    
         
             
                RG_DEF_SMETHOD_P(have_reference, 1);
         
     | 
| 
       481 
481 
     | 
    
         | 
| 
       482 
     | 
    
         
            -
                G_DEF_CLASS(G_TYPE_REGEX_MATCH_FLAGS, "RegexMatchFlags",  
     | 
| 
       483 
     | 
    
         
            -
                G_DEF_CLASS(G_TYPE_REGEX_COMPILE_FLAGS, "RegexCompileFlags",  
     | 
| 
      
 482 
     | 
    
         
            +
                G_DEF_CLASS(G_TYPE_REGEX_MATCH_FLAGS, "RegexMatchFlags", rbg_mGLib());
         
     | 
| 
      
 483 
     | 
    
         
            +
                G_DEF_CLASS(G_TYPE_REGEX_COMPILE_FLAGS, "RegexCompileFlags", rbg_mGLib());
         
     | 
| 
       484 
484 
     | 
    
         
             
            }
         
     | 
    
        data/ext/glib2/rbglib_shell.c
    CHANGED
    
    | 
         @@ -56,7 +56,7 @@ rg_s_unquote(G_GNUC_UNUSED VALUE self, VALUE quoted_string) 
     | 
|
| 
       56 
56 
     | 
    
         
             
            void
         
     | 
| 
       57 
57 
     | 
    
         
             
            Init_glib_shell(void)
         
     | 
| 
       58 
58 
     | 
    
         
             
            {
         
     | 
| 
       59 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 59 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "Shell");
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
                RG_DEF_SMETHOD(parse, 1);
         
     | 
| 
       62 
62 
     | 
    
         
             
                RG_DEF_SMETHOD(quote, 1);
         
     | 
| 
         @@ -26,7 +26,7 @@ 
     | 
|
| 
       26 
26 
     | 
    
         
             
            void
         
     | 
| 
       27 
27 
     | 
    
         
             
            Init_glib_shellerror(void)
         
     | 
| 
       28 
28 
     | 
    
         
             
            {
         
     | 
| 
       29 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = G_DEF_ERROR2(G_SHELL_ERROR, "ShellError",  
     | 
| 
      
 29 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = G_DEF_ERROR2(G_SHELL_ERROR, "ShellError", rbg_mGLib(), rb_eRuntimeError);
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                rb_define_const(RG_TARGET_NAMESPACE, "BAD_QUOTING", INT2FIX(G_SHELL_ERROR_BAD_QUOTING));
         
     | 
| 
       32 
32 
     | 
    
         
             
                rb_define_const(RG_TARGET_NAMESPACE, "EMPTY_STRING", INT2FIX(G_SHELL_ERROR_EMPTY_STRING));
         
     | 
    
        data/ext/glib2/rbglib_source.c
    CHANGED
    
    | 
         @@ -177,7 +177,7 @@ gboolean    g_source_remove_by_user_data    (gpointer user_data); 
     | 
|
| 
       177 
177 
     | 
    
         
             
            void
         
     | 
| 
       178 
178 
     | 
    
         
             
            Init_glib_source(void)
         
     | 
| 
       179 
179 
     | 
    
         
             
            {
         
     | 
| 
       180 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_SOURCE, "Source",  
     | 
| 
      
 180 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_SOURCE, "Source", rbg_mGLib());
         
     | 
| 
       181 
181 
     | 
    
         | 
| 
       182 
182 
     | 
    
         
             
                id_call = rb_intern("call");
         
     | 
| 
       183 
183 
     | 
    
         | 
    
        data/ext/glib2/rbglib_spawn.c
    CHANGED
    
    | 
         @@ -217,7 +217,7 @@ rg_s_close_pid(G_GNUC_UNUSED VALUE self, VALUE pid) 
     | 
|
| 
       217 
217 
     | 
    
         
             
            void
         
     | 
| 
       218 
218 
     | 
    
         
             
            Init_glib_spawn(void)
         
     | 
| 
       219 
219 
     | 
    
         
             
            {
         
     | 
| 
       220 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 220 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "Spawn");
         
     | 
| 
       221 
221 
     | 
    
         | 
| 
       222 
222 
     | 
    
         
             
                id_call = rb_intern("call");
         
     | 
| 
       223 
223 
     | 
    
         
             
                id_new = rb_intern("new");
         
     | 
| 
         @@ -28,7 +28,7 @@ 
     | 
|
| 
       28 
28 
     | 
    
         
             
            void
         
     | 
| 
       29 
29 
     | 
    
         
             
            Init_glib_spawnerror(void)
         
     | 
| 
       30 
30 
     | 
    
         
             
            {
         
     | 
| 
       31 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = G_DEF_ERROR2(G_SPAWN_ERROR, "SpawnError",  
     | 
| 
      
 31 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = G_DEF_ERROR2(G_SPAWN_ERROR, "SpawnError", rbg_mGLib(), rb_eIOError);
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                rb_define_const(RG_TARGET_NAMESPACE, "FORK", INT2NUM(G_SPAWN_ERROR_FORK));
         
     | 
| 
       34 
34 
     | 
    
         
             
                rb_define_const(RG_TARGET_NAMESPACE, "READ", INT2NUM(G_SPAWN_ERROR_READ));
         
     | 
    
        data/ext/glib2/rbglib_threads.c
    CHANGED
    
    | 
         @@ -41,7 +41,7 @@ rg_s_supported_p(G_GNUC_UNUSED VALUE self) 
     | 
|
| 
       41 
41 
     | 
    
         
             
            void
         
     | 
| 
       42 
42 
     | 
    
         
             
            Init_glib_threads(void)
         
     | 
| 
       43 
43 
     | 
    
         
             
            {
         
     | 
| 
       44 
     | 
    
         
            -
                RG_TARGET_NAMESPACE = rb_define_class_under( 
     | 
| 
      
 44 
     | 
    
         
            +
                RG_TARGET_NAMESPACE = rb_define_class_under(rbg_mGLib(), "Thread", rb_cObject);
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
46 
     | 
    
         
             
                RG_DEF_SMETHOD(init, 0);
         
     | 
| 
       47 
47 
     | 
    
         
             
                RG_DEF_SMETHOD_P(supported, 0);
         
     | 
    
        data/ext/glib2/rbglib_timer.c
    CHANGED
    
    | 
         @@ -116,7 +116,7 @@ rg_reset(VALUE self) 
     | 
|
| 
       116 
116 
     | 
    
         
             
            void
         
     | 
| 
       117 
117 
     | 
    
         
             
            Init_glib_timer(void)
         
     | 
| 
       118 
118 
     | 
    
         
             
            {
         
     | 
| 
       119 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_TIMER, "Timer",  
     | 
| 
      
 119 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_TIMER, "Timer", rbg_mGLib()); 
         
     | 
| 
       120 
120 
     | 
    
         | 
| 
       121 
121 
     | 
    
         
             
                RG_DEF_METHOD(initialize, 0);
         
     | 
| 
       122 
122 
     | 
    
         
             
                RG_DEF_METHOD(start, 0);
         
     | 
    
        data/ext/glib2/rbglib_timezone.c
    CHANGED
    
    | 
         @@ -73,7 +73,7 @@ void 
     | 
|
| 
       73 
73 
     | 
    
         
             
            Init_glib_time_zone(void)
         
     | 
| 
       74 
74 
     | 
    
         
             
            {
         
     | 
| 
       75 
75 
     | 
    
         
             
                VALUE RG_TARGET_NAMESPACE;
         
     | 
| 
       76 
     | 
    
         
            -
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_TIME_ZONE, "TimeZone",  
     | 
| 
      
 76 
     | 
    
         
            +
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_TIME_ZONE, "TimeZone", rbg_mGLib());
         
     | 
| 
       77 
77 
     | 
    
         
             
                RG_DEF_METHOD(initialize, -1);
         
     | 
| 
       78 
78 
     | 
    
         
             
                RG_DEF_SMETHOD(local, 0);
         
     | 
| 
       79 
79 
     | 
    
         
             
                RG_DEF_SMETHOD(utc, 0);
         
     | 
    
        data/ext/glib2/rbglib_ucs4.c
    CHANGED
    
    | 
         @@ -72,7 +72,7 @@ rg_s_to_utf8(G_GNUC_UNUSED VALUE self, VALUE rb_ucs4) 
     | 
|
| 
       72 
72 
     | 
    
         
             
            void
         
     | 
| 
       73 
73 
     | 
    
         
             
            Init_glib_ucs4(void)
         
     | 
| 
       74 
74 
     | 
    
         
             
            {
         
     | 
| 
       75 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 75 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "UCS4");
         
     | 
| 
       76 
76 
     | 
    
         | 
| 
       77 
77 
     | 
    
         
             
                RG_DEF_SMETHOD(to_utf16, 1);
         
     | 
| 
       78 
78 
     | 
    
         
             
                RG_DEF_SMETHOD(to_utf8, 1);
         
     | 
    
        data/ext/glib2/rbglib_unichar.c
    CHANGED
    
    | 
         @@ -185,7 +185,7 @@ rg_s_decompose(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self) 
     | 
|
| 
       185 
185 
     | 
    
         
             
            void
         
     | 
| 
       186 
186 
     | 
    
         
             
            Init_glib_unichar(void)
         
     | 
| 
       187 
187 
     | 
    
         
             
            {
         
     | 
| 
       188 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 188 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "UniChar");
         
     | 
| 
       189 
189 
     | 
    
         | 
| 
       190 
190 
     | 
    
         
             
                rbg_define_singleton_method(RG_TARGET_NAMESPACE, "alnum?",
         
     | 
| 
       191 
191 
     | 
    
         
             
                                          rbglib_m_unichar_isalnum, 1);
         
     | 
    
        data/ext/glib2/rbglib_unicode.c
    CHANGED
    
    | 
         @@ -52,7 +52,7 @@ rg_s_canonical_ordering(G_GNUC_UNUSED VALUE self, VALUE rb_ucs4) 
     | 
|
| 
       52 
52 
     | 
    
         
             
            void
         
     | 
| 
       53 
53 
     | 
    
         
             
            Init_glib_unicode(void)
         
     | 
| 
       54 
54 
     | 
    
         
             
            {
         
     | 
| 
       55 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 55 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "Unicode");
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
       57 
57 
     | 
    
         
             
                /* GUnicodeType */
         
     | 
| 
       58 
58 
     | 
    
         
             
                G_DEF_CLASS(G_TYPE_UNICODE_TYPE, "Type", RG_TARGET_NAMESPACE);
         
     | 
| 
         @@ -65,9 +65,9 @@ Init_glib_unicode(void) 
     | 
|
| 
       65 
65 
     | 
    
         
             
                G_DEF_CLASS(G_TYPE_UNICODE_SCRIPT, "Script", RG_TARGET_NAMESPACE);
         
     | 
| 
       66 
66 
     | 
    
         
             
                G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, G_TYPE_UNICODE_SCRIPT, "G_UNICODE_");
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
                G_DEF_CLASS(G_TYPE_NORMALIZE_MODE, "NormalizeMode",  
     | 
| 
      
 68 
     | 
    
         
            +
                G_DEF_CLASS(G_TYPE_NORMALIZE_MODE, "NormalizeMode", rbg_mGLib());
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
                rbg_define_singleton_method( 
     | 
| 
      
 70 
     | 
    
         
            +
                rbg_define_singleton_method(rbg_mGLib(), "charset", rbglib_m_charset, 0);
         
     | 
| 
       71 
71 
     | 
    
         | 
| 
       72 
72 
     | 
    
         
             
                RG_DEF_SMETHOD(canonical_ordering, 1);
         
     | 
| 
       73 
73 
     | 
    
         
             
            }
         
     | 
    
        data/ext/glib2/rbglib_utf16.c
    CHANGED
    
    | 
         @@ -71,7 +71,7 @@ rg_s_to_utf8(G_GNUC_UNUSED VALUE self, VALUE rb_utf16) 
     | 
|
| 
       71 
71 
     | 
    
         
             
            void
         
     | 
| 
       72 
72 
     | 
    
         
             
            Init_glib_utf16(void)
         
     | 
| 
       73 
73 
     | 
    
         
             
            {
         
     | 
| 
       74 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 74 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "UTF16");
         
     | 
| 
       75 
75 
     | 
    
         | 
| 
       76 
76 
     | 
    
         
             
                RG_DEF_SMETHOD(to_ucs4, 1);
         
     | 
| 
       77 
77 
     | 
    
         
             
                RG_DEF_SMETHOD(to_utf8, 1);
         
     | 
    
        data/ext/glib2/rbglib_utf8.c
    CHANGED
    
    | 
         @@ -218,7 +218,7 @@ rg_s_to_ucs4(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self) 
     | 
|
| 
       218 
218 
     | 
    
         
             
            void
         
     | 
| 
       219 
219 
     | 
    
         
             
            Init_glib_utf8(void)
         
     | 
| 
       220 
220 
     | 
    
         
             
            {
         
     | 
| 
       221 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 221 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "UTF8");
         
     | 
| 
       222 
222 
     | 
    
         | 
| 
       223 
223 
     | 
    
         
             
                /*
         
     | 
| 
       224 
224 
     | 
    
         
             
                  Not implemented.
         
     | 
    
        data/ext/glib2/rbglib_utils.c
    CHANGED
    
    
    
        data/ext/glib2/rbglib_win32.c
    CHANGED
    
    | 
         @@ -90,17 +90,17 @@ Init_glib_win32(void) 
     | 
|
| 
       90 
90 
     | 
    
         
             
            {
         
     | 
| 
       91 
91 
     | 
    
         
             
            #ifdef G_OS_WIN32
         
     | 
| 
       92 
92 
     | 
    
         
             
                /* glib/gwin32.h */
         
     | 
| 
       93 
     | 
    
         
            -
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under( 
     | 
| 
      
 93 
     | 
    
         
            +
                VALUE RG_TARGET_NAMESPACE = rb_define_module_under(rbg_mGLib(), "Win32");
         
     | 
| 
       94 
94 
     | 
    
         | 
| 
       95 
95 
     | 
    
         
             
                RG_DEF_SMETHOD(error_message, 1);
         
     | 
| 
       96 
96 
     | 
    
         
             
                RG_DEF_SMETHOD(locale, 0);
         
     | 
| 
       97 
97 
     | 
    
         
             
                RG_DEF_SMETHOD(version, 0);
         
     | 
| 
       98 
98 
     | 
    
         
             
                /* Deprecated */
         
     | 
| 
       99 
     | 
    
         
            -
                rbg_define_singleton_method( 
     | 
| 
      
 99 
     | 
    
         
            +
                rbg_define_singleton_method(rbg_mGLib(), "win32_locale", rbglib_m_win32_locale_deprecated, 0);
         
     | 
| 
       100 
100 
     | 
    
         | 
| 
       101 
101 
     | 
    
         
             
                RG_DEF_SMETHOD(locale_filename_from_utf8, 1);
         
     | 
| 
       102 
102 
     | 
    
         
             
                /* Deprecated */
         
     | 
| 
       103 
     | 
    
         
            -
                rbg_define_singleton_method( 
     | 
| 
      
 103 
     | 
    
         
            +
                rbg_define_singleton_method(rbg_mGLib(), "win32_locale_filename_from_utf8",
         
     | 
| 
       104 
104 
     | 
    
         
             
                                          rbglib_m_win32_locale_filename_from_utf8_deprecated, 1);
         
     | 
| 
       105 
105 
     | 
    
         | 
| 
       106 
106 
     | 
    
         
             
                RG_DEF_SMETHOD(get_package_installation_directory_of_module, -1);
         
     | 
    
        data/ext/glib2/rbgobj_binding.c
    CHANGED
    
    
    
        data/ext/glib2/rbgobj_boxed.c
    CHANGED
    
    | 
         @@ -60,7 +60,7 @@ static const rb_data_type_t rg_glib_boxed_type = { 
     | 
|
| 
       60 
60 
     | 
    
         
             
                },
         
     | 
| 
       61 
61 
     | 
    
         
             
                NULL,
         
     | 
| 
       62 
62 
     | 
    
         
             
                NULL,
         
     | 
| 
       63 
     | 
    
         
            -
                RUBY_TYPED_FREE_IMMEDIATELY,
         
     | 
| 
      
 63 
     | 
    
         
            +
                RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE,
         
     | 
| 
       64 
64 
     | 
    
         
             
            };
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
            static boxed_holder *
         
     | 
| 
         @@ -302,7 +302,7 @@ boxed_from_ruby(VALUE from, GValue *to) 
     | 
|
| 
       302 
302 
     | 
    
         
             
            void
         
     | 
| 
       303 
303 
     | 
    
         
             
            Init_gobject_gboxed(void)
         
     | 
| 
       304 
304 
     | 
    
         
             
            {
         
     | 
| 
       305 
     | 
    
         
            -
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_BOXED, "Boxed",  
     | 
| 
      
 305 
     | 
    
         
            +
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_BOXED, "Boxed", rbg_mGLib());
         
     | 
| 
       306 
306 
     | 
    
         | 
| 
       307 
307 
     | 
    
         
             
                rbgobj_register_g2r_func(G_TYPE_BOXED, boxed_to_ruby);
         
     | 
| 
       308 
308 
     | 
    
         
             
                rbgobj_register_r2g_func(G_TYPE_BOXED, boxed_from_ruby);
         
     | 
    
        data/ext/glib2/rbgobj_closure.c
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
         
     | 
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
       3 
     | 
    
         
            -
             *  Copyright (C) 2002- 
     | 
| 
      
 3 
     | 
    
         
            +
             *  Copyright (C) 2002-2022  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
         
     | 
| 
         @@ -34,7 +34,6 @@ struct _GRClosure 
     | 
|
| 
       34 
34 
     | 
    
         
             
                VALUE callback;
         
     | 
| 
       35 
35 
     | 
    
         
             
                VALUE extra_args;
         
     | 
| 
       36 
36 
     | 
    
         
             
                VALUE rb_holder;
         
     | 
| 
       37 
     | 
    
         
            -
                gint count;
         
     | 
| 
       38 
37 
     | 
    
         
             
                GList *objects;
         
     | 
| 
       39 
38 
     | 
    
         
             
                GValToRValSignalFunc g2r_func;
         
     | 
| 
       40 
39 
     | 
    
         
             
                RGClosureCallFunc call_func;
         
     | 
| 
         @@ -64,7 +63,7 @@ struct marshal_arg 
     | 
|
| 
       64 
63 
     | 
    
         
             
            static int
         
     | 
| 
       65 
64 
     | 
    
         
             
            rclosure_alive_p(GRClosure *rclosure)
         
     | 
| 
       66 
65 
     | 
    
         
             
            {
         
     | 
| 
       67 
     | 
    
         
            -
                return  
     | 
| 
      
 66 
     | 
    
         
            +
                return !NIL_P(rclosure->rb_holder);
         
     | 
| 
       68 
67 
     | 
    
         
             
            }
         
     | 
| 
       69 
68 
     | 
    
         | 
| 
       70 
69 
     | 
    
         
             
            static VALUE
         
     | 
| 
         @@ -121,8 +120,8 @@ rclosure_marshal_do(VALUE arg_) 
     | 
|
| 
       121 
120 
     | 
    
         | 
| 
       122 
121 
     | 
    
         
             
                    ret = rb_apply(callback, id_call, args);
         
     | 
| 
       123 
122 
     | 
    
         
             
                } else {
         
     | 
| 
       124 
     | 
    
         
            -
                     
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
      
 123 
     | 
    
         
            +
                    g_warning("GRClosure invoking callback: already destroyed: %s",
         
     | 
| 
      
 124 
     | 
    
         
            +
                              rclosure->tag[0] ? rclosure->tag : "(anonymous)");
         
     | 
| 
       126 
125 
     | 
    
         
             
                }
         
     | 
| 
       127 
126 
     | 
    
         | 
| 
       128 
127 
     | 
    
         
             
                if (return_value && G_VALUE_TYPE(return_value))
         
     | 
| 
         @@ -159,43 +158,25 @@ rclosure_marshal(GClosure*       closure, 
     | 
|
| 
       159 
158 
     | 
    
         
             
            static void rclosure_weak_notify(gpointer data, GObject* where_the_object_was);
         
     | 
| 
       160 
159 
     | 
    
         | 
| 
       161 
160 
     | 
    
         
             
            static void
         
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
      
 161 
     | 
    
         
            +
            rclosure_finalize(G_GNUC_UNUSED gpointer data, GClosure *closure)
         
     | 
| 
       163 
162 
     | 
    
         
             
            {
         
     | 
| 
       164 
     | 
    
         
            -
                rclosure 
     | 
| 
      
 163 
     | 
    
         
            +
                GRClosure *rclosure = (GRClosure *)closure;
         
     | 
| 
       165 
164 
     | 
    
         | 
| 
       166 
     | 
    
         
            -
                 
     | 
| 
       167 
     | 
    
         
            -
             
     | 
| 
       168 
     | 
    
         
            -
                     
     | 
| 
       169 
     | 
    
         
            -
             
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
                     
     | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
       173 
     | 
    
         
            -
                    rclosure->objects = NULL;
         
     | 
| 
       174 
     | 
    
         
            -
                    if (!NIL_P(rclosure->rb_holder)) {
         
     | 
| 
       175 
     | 
    
         
            -
                        RTYPEDDATA_DATA(rclosure->rb_holder) = NULL;
         
     | 
| 
       176 
     | 
    
         
            -
                        rclosure->rb_holder = Qnil;
         
     | 
| 
      
 165 
     | 
    
         
            +
                GList *next;
         
     | 
| 
      
 166 
     | 
    
         
            +
                for (next = rclosure->objects; next; next = next->next) {
         
     | 
| 
      
 167 
     | 
    
         
            +
                    GObject *object = G_OBJECT(next->data);
         
     | 
| 
      
 168 
     | 
    
         
            +
                    g_object_weak_unref(object, rclosure_weak_notify, rclosure);
         
     | 
| 
      
 169 
     | 
    
         
            +
                    VALUE obj = rbgobj_ruby_object_from_instance2(object, FALSE);
         
     | 
| 
      
 170 
     | 
    
         
            +
                    if (!NIL_P(rclosure->rb_holder) && !NIL_P(obj)) {
         
     | 
| 
      
 171 
     | 
    
         
            +
                        rbgobj_object_remove_relative(obj, rclosure->rb_holder);
         
     | 
| 
       177 
172 
     | 
    
         
             
                    }
         
     | 
| 
       178 
173 
     | 
    
         
             
                }
         
     | 
| 
       179 
     | 
    
         
            -
             
     | 
| 
       180 
     | 
    
         
            -
             
     | 
| 
       181 
     | 
    
         
            -
            static void
         
     | 
| 
       182 
     | 
    
         
            -
            rclosure_invalidate(G_GNUC_UNUSED gpointer data, GClosure *closure)
         
     | 
| 
       183 
     | 
    
         
            -
            {
         
     | 
| 
       184 
     | 
    
         
            -
                GRClosure *rclosure = (GRClosure*)closure;
         
     | 
| 
       185 
     | 
    
         
            -
             
     | 
| 
       186 
     | 
    
         
            -
                if (rclosure->count > 0) {
         
     | 
| 
       187 
     | 
    
         
            -
                    GList *next;
         
     | 
| 
       188 
     | 
    
         
            -
             
     | 
| 
       189 
     | 
    
         
            -
                    rclosure->count = 1;
         
     | 
| 
       190 
     | 
    
         
            -
                    for (next = rclosure->objects; next; next = next->next) {
         
     | 
| 
       191 
     | 
    
         
            -
                        GObject *object = G_OBJECT(next->data);
         
     | 
| 
       192 
     | 
    
         
            -
                        VALUE obj = rbgobj_ruby_object_from_instance2(object, FALSE);
         
     | 
| 
       193 
     | 
    
         
            -
                        if (!NIL_P(rclosure->rb_holder) && !NIL_P(obj)) {
         
     | 
| 
       194 
     | 
    
         
            -
                            rbgobj_object_remove_relative(obj, rclosure->rb_holder);
         
     | 
| 
       195 
     | 
    
         
            -
                        }
         
     | 
| 
       196 
     | 
    
         
            -
                    }
         
     | 
| 
      
 174 
     | 
    
         
            +
                g_list_free(rclosure->objects);
         
     | 
| 
      
 175 
     | 
    
         
            +
                rclosure->objects = NULL;
         
     | 
| 
       197 
176 
     | 
    
         | 
| 
       198 
     | 
    
         
            -
             
     | 
| 
      
 177 
     | 
    
         
            +
                if (!NIL_P(rclosure->rb_holder)) {
         
     | 
| 
      
 178 
     | 
    
         
            +
                    RTYPEDDATA_DATA(rclosure->rb_holder) = NULL;
         
     | 
| 
      
 179 
     | 
    
         
            +
                    rclosure->rb_holder = Qnil;
         
     | 
| 
       199 
180 
     | 
    
         
             
                }
         
     | 
| 
       200 
181 
     | 
    
         
             
            }
         
     | 
| 
       201 
182 
     | 
    
         | 
| 
         @@ -219,13 +200,7 @@ gr_closure_holder_free(void *data) 
     | 
|
| 
       219 
200 
     | 
    
         
             
                if (!rclosure)
         
     | 
| 
       220 
201 
     | 
    
         
             
                    return;
         
     | 
| 
       221 
202 
     | 
    
         | 
| 
       222 
     | 
    
         
            -
                 
     | 
| 
       223 
     | 
    
         
            -
                    rclosure->count = 1;
         
     | 
| 
       224 
     | 
    
         
            -
             
     | 
| 
       225 
     | 
    
         
            -
                    /* No need to remove us from the relatives hash of our objects, as
         
     | 
| 
       226 
     | 
    
         
            -
                     * those aren't alive anymore anyway */
         
     | 
| 
       227 
     | 
    
         
            -
                    rclosure_unref(rclosure);
         
     | 
| 
       228 
     | 
    
         
            -
                }
         
     | 
| 
      
 203 
     | 
    
         
            +
                g_closure_unref((GClosure *)rclosure);
         
     | 
| 
       229 
204 
     | 
    
         
             
            }
         
     | 
| 
       230 
205 
     | 
    
         | 
| 
       231 
206 
     | 
    
         
             
            static const rb_data_type_t rbg_closure_holder_type = {
         
     | 
| 
         @@ -236,7 +211,7 @@ static const rb_data_type_t rbg_closure_holder_type = { 
     | 
|
| 
       236 
211 
     | 
    
         
             
                },
         
     | 
| 
       237 
212 
     | 
    
         
             
                NULL,
         
     | 
| 
       238 
213 
     | 
    
         
             
                NULL,
         
     | 
| 
       239 
     | 
    
         
            -
                RUBY_TYPED_FREE_IMMEDIATELY,
         
     | 
| 
      
 214 
     | 
    
         
            +
                RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE,
         
     | 
| 
       240 
215 
     | 
    
         
             
            };
         
     | 
| 
       241 
216 
     | 
    
         | 
| 
       242 
217 
     | 
    
         
             
            static GClosure *
         
     | 
| 
         @@ -245,26 +220,24 @@ g_rclosure_new_raw(VALUE callback_proc, 
     | 
|
| 
       245 
220 
     | 
    
         
             
                               GValToRValSignalFunc g2r_func,
         
     | 
| 
       246 
221 
     | 
    
         
             
                               RGClosureCallFunc call_func)
         
     | 
| 
       247 
222 
     | 
    
         
             
            {
         
     | 
| 
       248 
     | 
    
         
            -
                 
     | 
| 
       249 
     | 
    
         
            -
             
     | 
| 
       250 
     | 
    
         
            -
                 
     | 
| 
       251 
     | 
    
         
            -
             
     | 
| 
       252 
     | 
    
         
            -
                 
     | 
| 
       253 
     | 
    
         
            -
                 
     | 
| 
       254 
     | 
    
         
            -
                 
     | 
| 
       255 
     | 
    
         
            -
                 
     | 
| 
       256 
     | 
    
         
            -
                 
     | 
| 
       257 
     | 
    
         
            -
                 
     | 
| 
       258 
     | 
    
         
            -
             
     | 
| 
       259 
     | 
    
         
            -
             
     | 
| 
       260 
     | 
    
         
            -
             
     | 
| 
       261 
     | 
    
         
            -
             
     | 
| 
       262 
     | 
    
         
            -
             
     | 
| 
       263 
     | 
    
         
            -
                 
     | 
| 
       264 
     | 
    
         
            -
             
     | 
| 
       265 
     | 
    
         
            -
             
     | 
| 
       266 
     | 
    
         
            -
             
     | 
| 
       267 
     | 
    
         
            -
                return (GClosure*)closure;
         
     | 
| 
      
 223 
     | 
    
         
            +
                GClosure *closure = g_closure_new_simple(sizeof(GRClosure), NULL);
         
     | 
| 
      
 224 
     | 
    
         
            +
             
     | 
| 
      
 225 
     | 
    
         
            +
                GRClosure *rclosure = (GRClosure *)closure;
         
     | 
| 
      
 226 
     | 
    
         
            +
             
     | 
| 
      
 227 
     | 
    
         
            +
                rclosure->g2r_func   = g2r_func;
         
     | 
| 
      
 228 
     | 
    
         
            +
                rclosure->call_func  = call_func;
         
     | 
| 
      
 229 
     | 
    
         
            +
                rclosure->objects    = NULL;
         
     | 
| 
      
 230 
     | 
    
         
            +
                rclosure->callback   = callback_proc;
         
     | 
| 
      
 231 
     | 
    
         
            +
                rclosure->extra_args = extra_args;
         
     | 
| 
      
 232 
     | 
    
         
            +
                rclosure->rb_holder  = TypedData_Wrap_Struct(rb_cObject,
         
     | 
| 
      
 233 
     | 
    
         
            +
                                                             &rbg_closure_holder_type,
         
     | 
| 
      
 234 
     | 
    
         
            +
                                                             rclosure);
         
     | 
| 
      
 235 
     | 
    
         
            +
                rclosure->tag[0]     = '\0';
         
     | 
| 
      
 236 
     | 
    
         
            +
             
     | 
| 
      
 237 
     | 
    
         
            +
                g_closure_set_marshal(closure, &rclosure_marshal);
         
     | 
| 
      
 238 
     | 
    
         
            +
                g_closure_add_finalize_notifier(closure, NULL, rclosure_finalize);
         
     | 
| 
      
 239 
     | 
    
         
            +
             
     | 
| 
      
 240 
     | 
    
         
            +
                return closure;
         
     | 
| 
       268 
241 
     | 
    
         
             
            }
         
     | 
| 
       269 
242 
     | 
    
         | 
| 
       270 
243 
     | 
    
         
             
            GClosure *
         
     | 
| 
         @@ -287,34 +260,30 @@ g_rclosure_new_call(VALUE callback_proc, 
     | 
|
| 
       287 
260 
     | 
    
         
             
            }
         
     | 
| 
       288 
261 
     | 
    
         | 
| 
       289 
262 
     | 
    
         
             
            static void
         
     | 
| 
       290 
     | 
    
         
            -
            rclosure_weak_notify(gpointer data, GObject* 
     | 
| 
      
 263 
     | 
    
         
            +
            rclosure_weak_notify(gpointer data, GObject *where_the_object_was)
         
     | 
| 
       291 
264 
     | 
    
         
             
            {
         
     | 
| 
       292 
265 
     | 
    
         
             
                GRClosure *rclosure = data;
         
     | 
| 
       293 
     | 
    
         
            -
                 
     | 
| 
       294 
     | 
    
         
            -
             
     | 
| 
       295 
     | 
    
         
            -
                        g_list_remove(rclosure->objects, where_the_object_was);
         
     | 
| 
       296 
     | 
    
         
            -
                    rclosure_unref(rclosure);
         
     | 
| 
       297 
     | 
    
         
            -
                }
         
     | 
| 
      
 266 
     | 
    
         
            +
                rclosure->objects = g_list_remove(rclosure->objects, where_the_object_was);
         
     | 
| 
      
 267 
     | 
    
         
            +
                g_closure_unref((GClosure *)rclosure);
         
     | 
| 
       298 
268 
     | 
    
         
             
            }
         
     | 
| 
       299 
269 
     | 
    
         | 
| 
       300 
270 
     | 
    
         
             
            void
         
     | 
| 
       301 
271 
     | 
    
         
             
            g_rclosure_attach(GClosure *closure, VALUE object)
         
     | 
| 
       302 
272 
     | 
    
         
             
            {
         
     | 
| 
       303 
     | 
    
         
            -
                static VALUE cGLibObject = Qnil;
         
     | 
| 
       304 
273 
     | 
    
         
             
                GRClosure *rclosure = (GRClosure *)closure;
         
     | 
| 
       305 
     | 
    
         
            -
             
     | 
| 
       306 
274 
     | 
    
         
             
                rbgobj_add_relative(object, rclosure->rb_holder);
         
     | 
| 
      
 275 
     | 
    
         
            +
            }
         
     | 
| 
       307 
276 
     | 
    
         | 
| 
       308 
     | 
    
         
            -
             
     | 
| 
       309 
     | 
    
         
            -
             
     | 
| 
       310 
     | 
    
         
            -
             
     | 
| 
       311 
     | 
    
         
            -
                 
     | 
| 
       312 
     | 
    
         
            -
             
     | 
| 
       313 
     | 
    
         
            -
             
     | 
| 
       314 
     | 
    
         
            -
             
     | 
| 
       315 
     | 
    
         
            -
             
     | 
| 
       316 
     | 
    
         
            -
             
     | 
| 
       317 
     | 
    
         
            -
                 
     | 
| 
      
 277 
     | 
    
         
            +
            void
         
     | 
| 
      
 278 
     | 
    
         
            +
            g_rclosure_attach_gobject(GClosure *closure, VALUE object)
         
     | 
| 
      
 279 
     | 
    
         
            +
            {
         
     | 
| 
      
 280 
     | 
    
         
            +
                GRClosure *rclosure = (GRClosure *)closure;
         
     | 
| 
      
 281 
     | 
    
         
            +
                g_rclosure_attach(closure, object);
         
     | 
| 
      
 282 
     | 
    
         
            +
             
     | 
| 
      
 283 
     | 
    
         
            +
                GObject *gobject = RVAL2GOBJ(object);
         
     | 
| 
      
 284 
     | 
    
         
            +
                g_closure_ref(closure);
         
     | 
| 
      
 285 
     | 
    
         
            +
                g_object_weak_ref(gobject, rclosure_weak_notify, rclosure);
         
     | 
| 
      
 286 
     | 
    
         
            +
                rclosure->objects = g_list_prepend(rclosure->objects, gobject);
         
     | 
| 
       318 
287 
     | 
    
         
             
            }
         
     | 
| 
       319 
288 
     | 
    
         | 
| 
       320 
289 
     | 
    
         
             
            void
         
     | 
| 
         @@ -350,8 +319,9 @@ init_rclosure(void) 
     | 
|
| 
       350 
319 
     | 
    
         
             
            static VALUE
         
     | 
| 
       351 
320 
     | 
    
         
             
            rg_initialize(VALUE self)
         
     | 
| 
       352 
321 
     | 
    
         
             
            {
         
     | 
| 
       353 
     | 
    
         
            -
                GClosure* 
     | 
| 
      
 322 
     | 
    
         
            +
                GClosure *closure = g_rclosure_new(rb_block_proc(), Qnil, NULL);
         
     | 
| 
       354 
323 
     | 
    
         
             
                G_INITIALIZE(self, closure);
         
     | 
| 
      
 324 
     | 
    
         
            +
                g_closure_ref(closure);
         
     | 
| 
       355 
325 
     | 
    
         
             
                g_closure_sink(closure);
         
     | 
| 
       356 
326 
     | 
    
         
             
                return self;
         
     | 
| 
       357 
327 
     | 
    
         
             
            }
         
     | 
| 
         @@ -387,7 +357,7 @@ Init_gobject_gclosure(void) 
     | 
|
| 
       387 
357 
     | 
    
         | 
| 
       388 
358 
     | 
    
         
             
                init_rclosure();
         
     | 
| 
       389 
359 
     | 
    
         | 
| 
       390 
     | 
    
         
            -
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_CLOSURE, "Closure",  
     | 
| 
      
 360 
     | 
    
         
            +
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_CLOSURE, "Closure", rbg_mGLib());
         
     | 
| 
       391 
361 
     | 
    
         | 
| 
       392 
362 
     | 
    
         
             
                RG_DEF_METHOD(initialize, 0);
         
     | 
| 
       393 
363 
     | 
    
         
             
                RG_DEF_METHOD_P(in_marshal, 0);
         
     | 
    
        data/ext/glib2/rbgobj_enums.c
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
         
     | 
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
       3 
     | 
    
         
            -
             *  Copyright (C) 2011- 
     | 
| 
      
 3 
     | 
    
         
            +
             *  Copyright (C) 2011-2021  Ruby-GNOME Project Team
         
     | 
| 
       4 
4 
     | 
    
         
             
             *  Copyright (C) 2004-2006  Ruby-GNOME Project Team
         
     | 
| 
       5 
5 
     | 
    
         
             
             *  Copyright (C) 2002,2003  Masahiro Sakai
         
     | 
| 
       6 
6 
     | 
    
         
             
             *
         
     | 
| 
         @@ -114,7 +114,7 @@ static const rb_data_type_t rg_glib_enum_type = { 
     | 
|
| 
       114 
114 
     | 
    
         
             
                },
         
     | 
| 
       115 
115 
     | 
    
         
             
                NULL,
         
     | 
| 
       116 
116 
     | 
    
         
             
                NULL,
         
     | 
| 
       117 
     | 
    
         
            -
                RUBY_TYPED_FREE_IMMEDIATELY,
         
     | 
| 
      
 117 
     | 
    
         
            +
                RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE,
         
     | 
| 
       118 
118 
     | 
    
         
             
            };
         
     | 
| 
       119 
119 
     | 
    
         | 
| 
       120 
120 
     | 
    
         
             
            static enum_holder *
         
     | 
| 
         @@ -191,6 +191,7 @@ rbgobj_init_enum_class(VALUE klass) 
     | 
|
| 
       191 
191 
     | 
    
         | 
| 
       192 
192 
     | 
    
         
             
                    rb_raw_enum_value = INT2NUM(entry->value);
         
     | 
| 
       193 
193 
     | 
    
         
             
                    value = rb_funcall(klass, id_new, 1, rb_raw_enum_value);
         
     | 
| 
      
 194 
     | 
    
         
            +
                    rb_obj_freeze(value);
         
     | 
| 
       194 
195 
     | 
    
         
             
                    rb_hash_aset(values, rb_raw_enum_value, value);
         
     | 
| 
       195 
196 
     | 
    
         
             
                    const_nick_name = nick_to_const_name(entry->value_nick);
         
     | 
| 
       196 
197 
     | 
    
         
             
                    if (const_nick_name) {
         
     | 
| 
         @@ -412,7 +413,7 @@ Init_gobject_genums(void) 
     | 
|
| 
       412 
413 
     | 
    
         
             
                id_to_s = rb_intern("to_s");
         
     | 
| 
       413 
414 
     | 
    
         
             
                id_values = rb_intern("values");
         
     | 
| 
       414 
415 
     | 
    
         | 
| 
       415 
     | 
    
         
            -
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_ENUM, "Enum",  
     | 
| 
      
 416 
     | 
    
         
            +
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_ENUM, "Enum", rbg_mGLib());
         
     | 
| 
       416 
417 
     | 
    
         | 
| 
       417 
418 
     | 
    
         
             
                rbg_define_singleton_method(RG_TARGET_NAMESPACE, "gtype", generic_s_gtype, 0);
         
     | 
| 
       418 
419 
     | 
    
         
             
                rbg_define_method(RG_TARGET_NAMESPACE, "gtype", generic_gtype, 0);
         
     | 
    
        data/ext/glib2/rbgobj_flags.c
    CHANGED
    
    | 
         @@ -83,7 +83,7 @@ static const rb_data_type_t rg_glib_flags_type = { 
     | 
|
| 
       83 
83 
     | 
    
         
             
                },
         
     | 
| 
       84 
84 
     | 
    
         
             
                NULL,
         
     | 
| 
       85 
85 
     | 
    
         
             
                NULL,
         
     | 
| 
       86 
     | 
    
         
            -
                RUBY_TYPED_FREE_IMMEDIATELY,
         
     | 
| 
      
 86 
     | 
    
         
            +
                RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE,
         
     | 
| 
       87 
87 
     | 
    
         
             
            };
         
     | 
| 
       88 
88 
     | 
    
         | 
| 
       89 
89 
     | 
    
         
             
            static flags_holder*
         
     | 
| 
         @@ -542,7 +542,7 @@ Init_gobject_gflags(void) 
     | 
|
| 
       542 
542 
     | 
    
         
             
                id_or = rb_intern("|");
         
     | 
| 
       543 
543 
     | 
    
         
             
                id_to_i = rb_intern("to_i");
         
     | 
| 
       544 
544 
     | 
    
         | 
| 
       545 
     | 
    
         
            -
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_FLAGS, "Flags",  
     | 
| 
      
 545 
     | 
    
         
            +
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_FLAGS, "Flags", rbg_mGLib());
         
     | 
| 
       546 
546 
     | 
    
         | 
| 
       547 
547 
     | 
    
         
             
                rbg_define_singleton_method(RG_TARGET_NAMESPACE, "gtype", generic_s_gtype, 0);
         
     | 
| 
       548 
548 
     | 
    
         
             
                rbg_define_method(RG_TARGET_NAMESPACE, "gtype", generic_gtype, 0);
         
     | 
    
        data/ext/glib2/rbgobj_object.c
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
         
     | 
| 
       2 
2 
     | 
    
         
             
            /*
         
     | 
| 
       3 
     | 
    
         
            -
             *  Copyright (C) 2002- 
     | 
| 
      
 3 
     | 
    
         
            +
             *  Copyright (C) 2002-2022  Ruby-GNOME Project Team
         
     | 
| 
       4 
4 
     | 
    
         
             
             *  Copyright (C) 2002-2003  Masahiro Sakai
         
     | 
| 
       5 
5 
     | 
    
         
             
             *  Copyright (C) 1998-2000  Yukihiro Matsumoto,
         
     | 
| 
       6 
6 
     | 
    
         
             
             *                           Daisuke Kanda,
         
     | 
| 
         @@ -30,6 +30,12 @@ VALUE RG_TARGET_NAMESPACE; 
     | 
|
| 
       30 
30 
     | 
    
         
             
            static VALUE eNoPropertyError;
         
     | 
| 
       31 
31 
     | 
    
         
             
            static GQuark RUBY_GOBJECT_OBJ_KEY;
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
      
 33 
     | 
    
         
            +
            VALUE
         
     | 
| 
      
 34 
     | 
    
         
            +
            rbg_cGLibObject(void)
         
     | 
| 
      
 35 
     | 
    
         
            +
            {
         
     | 
| 
      
 36 
     | 
    
         
            +
                return RG_TARGET_NAMESPACE;
         
     | 
| 
      
 37 
     | 
    
         
            +
            }
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
       33 
39 
     | 
    
         
             
            gboolean
         
     | 
| 
       34 
40 
     | 
    
         
             
            rbg_is_object(VALUE object)
         
     | 
| 
       35 
41 
     | 
    
         
             
            {
         
     | 
| 
         @@ -108,7 +114,7 @@ static const rb_data_type_t rg_glib_object_type = { 
     | 
|
| 
       108 
114 
     | 
    
         
             
                },
         
     | 
| 
       109 
115 
     | 
    
         
             
                NULL,
         
     | 
| 
       110 
116 
     | 
    
         
             
                NULL,
         
     | 
| 
       111 
     | 
    
         
            -
                RUBY_TYPED_FREE_IMMEDIATELY,
         
     | 
| 
      
 117 
     | 
    
         
            +
                RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE,
         
     | 
| 
       112 
118 
     | 
    
         
             
            };
         
     | 
| 
       113 
119 
     | 
    
         | 
| 
       114 
120 
     | 
    
         
             
            void
         
     | 
| 
         @@ -311,6 +317,12 @@ rg_s_new_bang(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       311 
317 
     | 
    
         
             
                return result;
         
     | 
| 
       312 
318 
     | 
    
         
             
            }
         
     | 
| 
       313 
319 
     | 
    
         | 
| 
      
 320 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 321 
     | 
    
         
            +
            rg_s_init(int argc, VALUE *argv, VALUE self)
         
     | 
| 
      
 322 
     | 
    
         
            +
            {
         
     | 
| 
      
 323 
     | 
    
         
            +
                return RUBY_Qnil;
         
     | 
| 
      
 324 
     | 
    
         
            +
            }
         
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
       314 
326 
     | 
    
         
             
            struct param_setup_arg {
         
     | 
| 
       315 
327 
     | 
    
         
             
                GObjectClass* gclass;
         
     | 
| 
       316 
328 
     | 
    
         
             
                GParameter* params;
         
     | 
| 
         @@ -872,6 +884,15 @@ rg_initialize(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       872 
884 
     | 
    
         
             
                gobj = rbgobj_gobject_new(RVAL2GTYPE(self), params_hash);
         
     | 
| 
       873 
885 
     | 
    
         | 
| 
       874 
886 
     | 
    
         
             
                G_INITIALIZE(self, gobj);
         
     | 
| 
      
 887 
     | 
    
         
            +
             
     | 
| 
      
 888 
     | 
    
         
            +
                rb_funcall(self, rb_intern("initialize_post"), 0);
         
     | 
| 
      
 889 
     | 
    
         
            +
             
     | 
| 
      
 890 
     | 
    
         
            +
                return Qnil;
         
     | 
| 
      
 891 
     | 
    
         
            +
            }
         
     | 
| 
      
 892 
     | 
    
         
            +
             
     | 
| 
      
 893 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 894 
     | 
    
         
            +
            rg_initialize_post(VALUE self)
         
     | 
| 
      
 895 
     | 
    
         
            +
            {
         
     | 
| 
       875 
896 
     | 
    
         
             
                return Qnil;
         
     | 
| 
       876 
897 
     | 
    
         
             
            }
         
     | 
| 
       877 
898 
     | 
    
         | 
| 
         @@ -956,6 +977,9 @@ rbgobj_class_init_func(gpointer g_class, G_GNUC_UNUSED gpointer class_data) 
     | 
|
| 
       956 
977 
     | 
    
         | 
| 
       957 
978 
     | 
    
         
             
                g_object_class->set_property = set_prop_func;
         
     | 
| 
       958 
979 
     | 
    
         
             
                g_object_class->get_property = get_prop_func;
         
     | 
| 
      
 980 
     | 
    
         
            +
             
     | 
| 
      
 981 
     | 
    
         
            +
                VALUE rb_class = GTYPE2CLASS(G_TYPE_FROM_CLASS(g_class));
         
     | 
| 
      
 982 
     | 
    
         
            +
                rb_funcall(rb_class, rb_intern("init"), 0);
         
     | 
| 
       959 
983 
     | 
    
         
             
            }
         
     | 
| 
       960 
984 
     | 
    
         | 
| 
       961 
985 
     | 
    
         
             
            void
         
     | 
| 
         @@ -1062,11 +1086,11 @@ rg_s_type_register(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       1062 
1086 
     | 
    
         
             
            void
         
     | 
| 
       1063 
1087 
     | 
    
         
             
            Init_gobject_gobject(void)
         
     | 
| 
       1064 
1088 
     | 
    
         
             
            {
         
     | 
| 
       1065 
     | 
    
         
            -
                RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(G_TYPE_OBJECT, "Object",  
     | 
| 
      
 1089 
     | 
    
         
            +
                RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(G_TYPE_OBJECT, "Object", rbg_mGLib(),
         
     | 
| 
       1066 
1090 
     | 
    
         
             
                                                              gobj_mark, NULL);
         
     | 
| 
       1067 
1091 
     | 
    
         | 
| 
       1068 
1092 
     | 
    
         
             
            #ifdef G_TYPE_INITIALLY_UNOWNED
         
     | 
| 
       1069 
     | 
    
         
            -
                G_DEF_CLASS(G_TYPE_INITIALLY_UNOWNED, "InitiallyUnowned",  
     | 
| 
      
 1093 
     | 
    
         
            +
                G_DEF_CLASS(G_TYPE_INITIALLY_UNOWNED, "InitiallyUnowned", rbg_mGLib());
         
     | 
| 
       1070 
1094 
     | 
    
         
             
            #endif
         
     | 
| 
       1071 
1095 
     | 
    
         | 
| 
       1072 
1096 
     | 
    
         
             
                RUBY_GOBJECT_OBJ_KEY = g_quark_from_static_string("__ruby_gobject_object__");
         
     | 
| 
         @@ -1074,6 +1098,8 @@ Init_gobject_gobject(void) 
     | 
|
| 
       1074 
1098 
     | 
    
         
             
                rb_define_alloc_func(RG_TARGET_NAMESPACE, rbgobj_object_alloc_func);
         
     | 
| 
       1075 
1099 
     | 
    
         
             
                RG_DEF_SMETHOD_BANG(new, -1);
         
     | 
| 
       1076 
1100 
     | 
    
         | 
| 
      
 1101 
     | 
    
         
            +
                RG_DEF_SMETHOD(init, 0);
         
     | 
| 
      
 1102 
     | 
    
         
            +
             
     | 
| 
       1077 
1103 
     | 
    
         
             
                rbg_define_singleton_method(RG_TARGET_NAMESPACE, "property", &gobj_s_property, 1);
         
     | 
| 
       1078 
1104 
     | 
    
         
             
                rbg_define_singleton_method(RG_TARGET_NAMESPACE, "properties", &gobj_s_properties, -1);
         
     | 
| 
       1079 
1105 
     | 
    
         
             
                RG_DEF_SMETHOD(install_property, -1);
         
     | 
| 
         @@ -1089,6 +1115,7 @@ Init_gobject_gobject(void) 
     | 
|
| 
       1089 
1115 
     | 
    
         
             
                RG_DEF_METHOD_P(destroyed, 0);
         
     | 
| 
       1090 
1116 
     | 
    
         | 
| 
       1091 
1117 
     | 
    
         
             
                RG_DEF_METHOD(initialize, -1);
         
     | 
| 
      
 1118 
     | 
    
         
            +
                RG_DEF_PRIVATE_METHOD(initialize_post, 0);
         
     | 
| 
       1092 
1119 
     | 
    
         
             
                rbg_define_method(RG_TARGET_NAMESPACE, "ref_count", gobj_ref_count, 0); /* for debugging */
         
     | 
| 
       1093 
1120 
     | 
    
         
             
                RG_DEF_METHOD_P(floating, 0); /* for debugging */
         
     | 
| 
       1094 
1121 
     | 
    
         
             
                RG_DEF_METHOD(unref, 0);
         
     | 
| 
         @@ -1096,9 +1123,9 @@ Init_gobject_gobject(void) 
     | 
|
| 
       1096 
1123 
     | 
    
         
             
                RG_DEF_METHOD(type_name, 0);
         
     | 
| 
       1097 
1124 
     | 
    
         | 
| 
       1098 
1125 
     | 
    
         
             
                RG_DEF_METHOD(bind_property, -1);
         
     | 
| 
       1099 
     | 
    
         
            -
                G_DEF_CLASS(G_TYPE_BINDING_FLAGS, "BindingFlags",  
     | 
| 
      
 1126 
     | 
    
         
            +
                G_DEF_CLASS(G_TYPE_BINDING_FLAGS, "BindingFlags", rbg_mGLib());
         
     | 
| 
       1100 
1127 
     | 
    
         | 
| 
       1101 
     | 
    
         
            -
                eNoPropertyError = rb_define_class_under( 
     | 
| 
      
 1128 
     | 
    
         
            +
                eNoPropertyError = rb_define_class_under(rbg_mGLib(), "NoPropertyError",
         
     | 
| 
       1102 
1129 
     | 
    
         
             
                                                         rb_eNameError);
         
     | 
| 
       1103 
1130 
     | 
    
         | 
| 
       1104 
1131 
     | 
    
         
             
                rbg_type_to_prop_setter_tables =
         
     | 
    
        data/ext/glib2/rbgobj_param.c
    CHANGED
    
    | 
         @@ -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 *
         
     | 
| 
         @@ -353,7 +353,7 @@ void 
     | 
|
| 
       353 
353 
     | 
    
         
             
            Init_gobject_gparam(void)
         
     | 
| 
       354 
354 
     | 
    
         
             
            {
         
     | 
| 
       355 
355 
     | 
    
         
             
                qparamspec = g_quark_from_static_string("__ruby_gobject_param_spec__");
         
     | 
| 
       356 
     | 
    
         
            -
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_PARAM, "Param",  
     | 
| 
      
 356 
     | 
    
         
            +
                RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_PARAM, "Param", rbg_mGLib());
         
     | 
| 
       357 
357 
     | 
    
         | 
| 
       358 
358 
     | 
    
         
             
                /* GParamFlags */
         
     | 
| 
       359 
359 
     | 
    
         
             
                rb_define_const(RG_TARGET_NAMESPACE, "READABLE",
         
     |