gobject-introspection 3.2.0 → 3.2.1
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/gobject-introspection/rb-gi-argument.c +154 -4
 - metadata +4 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 0631eb026f860babe2ffcc07681fb96284fc5a0f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 59ce32989a1225c10425b109256066d129758689
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: d2e6517ef882043da5372a912cec39e90b7910fec1636cab94ff5068e12ea8c7a6d41ac24e9ce537316c3c970c38910c60bd3c9f4c7cbccc08acb3a9e9a36761
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 0fc3b6155f58af1f5e9efc8348688fd3e7178a4abfc5eb597b652a0e3d609feead0e591d5088e59e40793d35bf03633086b1f661bcf385d65674166ea25d82e7
         
     | 
| 
         @@ -22,6 +22,21 @@ 
     | 
|
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
            static VALUE rb_cGLibValue = Qnil;
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
            static const gchar *
         
     | 
| 
      
 26 
     | 
    
         
            +
            rb_gi_transfer_to_string(GITransfer transfer)
         
     | 
| 
      
 27 
     | 
    
         
            +
            {
         
     | 
| 
      
 28 
     | 
    
         
            +
                switch(transfer) {
         
     | 
| 
      
 29 
     | 
    
         
            +
                  case GI_TRANSFER_NOTHING:
         
     | 
| 
      
 30 
     | 
    
         
            +
                    return "nothing";
         
     | 
| 
      
 31 
     | 
    
         
            +
                  case GI_TRANSFER_CONTAINER:
         
     | 
| 
      
 32 
     | 
    
         
            +
                    return "container";
         
     | 
| 
      
 33 
     | 
    
         
            +
                  case GI_TRANSFER_EVERYTHING:
         
     | 
| 
      
 34 
     | 
    
         
            +
                    return "everything";
         
     | 
| 
      
 35 
     | 
    
         
            +
                  default:
         
     | 
| 
      
 36 
     | 
    
         
            +
                    return "unknown";
         
     | 
| 
      
 37 
     | 
    
         
            +
                }
         
     | 
| 
      
 38 
     | 
    
         
            +
            }
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
       25 
40 
     | 
    
         
             
            static void
         
     | 
| 
       26 
41 
     | 
    
         
             
            array_c_to_ruby_sized_interface(gconstpointer *elements,
         
     | 
| 
       27 
42 
     | 
    
         
             
                                            gint64 n_elements,
         
     | 
| 
         @@ -1580,6 +1595,8 @@ rb_gi_out_argument_init_interface(GIArgument *argument, 
     | 
|
| 
       1580 
1595 
     | 
    
         
             
                {
         
     | 
| 
       1581 
1596 
     | 
    
         
             
                    gsize struct_size;
         
     | 
| 
       1582 
1597 
     | 
    
         | 
| 
      
 1598 
     | 
    
         
            +
                    /* Should we care gtype?
         
     | 
| 
      
 1599 
     | 
    
         
            +
                       Related: rb_gi_out_argument_fin_interface() */
         
     | 
| 
       1583 
1600 
     | 
    
         
             
                    struct_size = g_struct_info_get_size(interface_info);
         
     | 
| 
       1584 
1601 
     | 
    
         
             
                    argument->v_pointer = xmalloc(struct_size);
         
     | 
| 
       1585 
1602 
     | 
    
         
             
                    memset(argument->v_pointer, 0, struct_size);
         
     | 
| 
         @@ -1877,7 +1894,8 @@ static void 
     | 
|
| 
       1877 
1894 
     | 
    
         
             
            rb_gi_out_argument_fin_array_c(GIArgument *argument,
         
     | 
| 
       1878 
1895 
     | 
    
         
             
                                           G_GNUC_UNUSED GIArgInfo *arg_info,
         
     | 
| 
       1879 
1896 
     | 
    
         
             
                                           G_GNUC_UNUSED GITypeInfo *array_type_info,
         
     | 
| 
       1880 
     | 
    
         
            -
                                           GITypeInfo *element_type_info 
     | 
| 
      
 1897 
     | 
    
         
            +
                                           GITypeInfo *element_type_info,
         
     | 
| 
      
 1898 
     | 
    
         
            +
                                           GITransfer transfer)
         
     | 
| 
       1881 
1899 
     | 
    
         
             
            {
         
     | 
| 
       1882 
1900 
     | 
    
         
             
                GITypeTag element_type_tag;
         
     | 
| 
       1883 
1901 
     | 
    
         | 
| 
         @@ -1893,6 +1911,9 @@ rb_gi_out_argument_fin_array_c(GIArgument *argument, 
     | 
|
| 
       1893 
1911 
     | 
    
         
             
                             g_type_tag_to_string(element_type_tag));
         
     | 
| 
       1894 
1912 
     | 
    
         
             
                    break;
         
     | 
| 
       1895 
1913 
     | 
    
         
             
                  case GI_TYPE_TAG_UINT8:
         
     | 
| 
      
 1914 
     | 
    
         
            +
                    if (transfer == GI_TRANSFER_EVERYTHING) {
         
     | 
| 
      
 1915 
     | 
    
         
            +
                        g_free(*((guint8 **)(argument->v_pointer)));
         
     | 
| 
      
 1916 
     | 
    
         
            +
                    }
         
     | 
| 
       1896 
1917 
     | 
    
         
             
                    xfree(argument->v_pointer);
         
     | 
| 
       1897 
1918 
     | 
    
         
             
                    break;
         
     | 
| 
       1898 
1919 
     | 
    
         
             
                  case GI_TYPE_TAG_INT16:
         
     | 
| 
         @@ -1910,6 +1931,9 @@ rb_gi_out_argument_fin_array_c(GIArgument *argument, 
     | 
|
| 
       1910 
1931 
     | 
    
         
             
                             g_type_tag_to_string(element_type_tag));
         
     | 
| 
       1911 
1932 
     | 
    
         
             
                    break;
         
     | 
| 
       1912 
1933 
     | 
    
         
             
                  case GI_TYPE_TAG_UTF8:
         
     | 
| 
      
 1934 
     | 
    
         
            +
                    if (transfer != GI_TRANSFER_NOTHING) {
         
     | 
| 
      
 1935 
     | 
    
         
            +
                        g_free(*((gchar **)argument->v_pointer));
         
     | 
| 
      
 1936 
     | 
    
         
            +
                    }
         
     | 
| 
       1913 
1937 
     | 
    
         
             
                    xfree(argument->v_pointer);
         
     | 
| 
       1914 
1938 
     | 
    
         
             
                    break;
         
     | 
| 
       1915 
1939 
     | 
    
         
             
                  case GI_TYPE_TAG_FILENAME:
         
     | 
| 
         @@ -1920,6 +1944,16 @@ rb_gi_out_argument_fin_array_c(GIArgument *argument, 
     | 
|
| 
       1920 
1944 
     | 
    
         
             
                             g_type_tag_to_string(element_type_tag));
         
     | 
| 
       1921 
1945 
     | 
    
         
             
                    break;
         
     | 
| 
       1922 
1946 
     | 
    
         
             
                  case GI_TYPE_TAG_INTERFACE:
         
     | 
| 
      
 1947 
     | 
    
         
            +
                    if (transfer == GI_TRANSFER_EVERYTHING) {
         
     | 
| 
      
 1948 
     | 
    
         
            +
                        g_base_info_unref(element_type_info);
         
     | 
| 
      
 1949 
     | 
    
         
            +
                        rb_raise(rb_eNotImpError,
         
     | 
| 
      
 1950 
     | 
    
         
            +
                                 "TODO: free out transfer GIArgument(array)[c][%s][%s]",
         
     | 
| 
      
 1951 
     | 
    
         
            +
                                 g_type_tag_to_string(element_type_tag),
         
     | 
| 
      
 1952 
     | 
    
         
            +
                                 rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 1953 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1954 
     | 
    
         
            +
                    if (transfer != GI_TRANSFER_NOTHING) {
         
     | 
| 
      
 1955 
     | 
    
         
            +
                        g_free(*((gpointer *)argument->v_pointer));
         
     | 
| 
      
 1956 
     | 
    
         
            +
                    }
         
     | 
| 
       1923 
1957 
     | 
    
         
             
                    xfree(argument->v_pointer);
         
     | 
| 
       1924 
1958 
     | 
    
         
             
                    break;
         
     | 
| 
       1925 
1959 
     | 
    
         
             
                  case GI_TYPE_TAG_GLIST:
         
     | 
| 
         @@ -1942,7 +1976,8 @@ rb_gi_out_argument_fin_array_c(GIArgument *argument, 
     | 
|
| 
       1942 
1976 
     | 
    
         
             
            static void
         
     | 
| 
       1943 
1977 
     | 
    
         
             
            rb_gi_out_argument_fin_array(GIArgument *argument,
         
     | 
| 
       1944 
1978 
     | 
    
         
             
                                         GIArgInfo *arg_info,
         
     | 
| 
       1945 
     | 
    
         
            -
                                         GITypeInfo *array_type_info 
     | 
| 
      
 1979 
     | 
    
         
            +
                                         GITypeInfo *array_type_info,
         
     | 
| 
      
 1980 
     | 
    
         
            +
                                         GITransfer transfer)
         
     | 
| 
       1946 
1981 
     | 
    
         
             
            {
         
     | 
| 
       1947 
1982 
     | 
    
         
             
                GIArrayType array_type;
         
     | 
| 
       1948 
1983 
     | 
    
         
             
                GITypeInfo *element_type_info;
         
     | 
| 
         @@ -1957,9 +1992,17 @@ rb_gi_out_argument_fin_array(GIArgument *argument, 
     | 
|
| 
       1957 
1992 
     | 
    
         
             
                    rb_gi_out_argument_fin_array_c(argument,
         
     | 
| 
       1958 
1993 
     | 
    
         
             
                                                   arg_info,
         
     | 
| 
       1959 
1994 
     | 
    
         
             
                                                   array_type_info,
         
     | 
| 
       1960 
     | 
    
         
            -
                                                   element_type_info 
     | 
| 
      
 1995 
     | 
    
         
            +
                                                   element_type_info,
         
     | 
| 
      
 1996 
     | 
    
         
            +
                                                   transfer);
         
     | 
| 
       1961 
1997 
     | 
    
         
             
                    break;
         
     | 
| 
       1962 
1998 
     | 
    
         
             
                case GI_ARRAY_TYPE_ARRAY:
         
     | 
| 
      
 1999 
     | 
    
         
            +
                    if (transfer != GI_TRANSFER_NOTHING) {
         
     | 
| 
      
 2000 
     | 
    
         
            +
                        g_base_info_unref(element_type_info);
         
     | 
| 
      
 2001 
     | 
    
         
            +
                        rb_raise(rb_eNotImpError,
         
     | 
| 
      
 2002 
     | 
    
         
            +
                                 "TODO: free out transfer GIArgument(array)[ptr-array][%s][%s]",
         
     | 
| 
      
 2003 
     | 
    
         
            +
                                 g_type_tag_to_string(element_type_tag),
         
     | 
| 
      
 2004 
     | 
    
         
            +
                                 rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 2005 
     | 
    
         
            +
                    }
         
     | 
| 
       1963 
2006 
     | 
    
         
             
                    g_array_free(argument->v_pointer, TRUE);
         
     | 
| 
       1964 
2007 
     | 
    
         
             
                    break;
         
     | 
| 
       1965 
2008 
     | 
    
         
             
                case GI_ARRAY_TYPE_PTR_ARRAY:
         
     | 
| 
         @@ -1983,11 +2026,88 @@ rb_gi_out_argument_fin_array(GIArgument *argument, 
     | 
|
| 
       1983 
2026 
     | 
    
         
             
                g_base_info_unref(element_type_info);
         
     | 
| 
       1984 
2027 
     | 
    
         
             
            }
         
     | 
| 
       1985 
2028 
     | 
    
         | 
| 
      
 2029 
     | 
    
         
            +
            static void
         
     | 
| 
      
 2030 
     | 
    
         
            +
            rb_gi_out_argument_fin_interface(GIArgument *argument,
         
     | 
| 
      
 2031 
     | 
    
         
            +
                                             G_GNUC_UNUSED GIArgInfo *arg_info,
         
     | 
| 
      
 2032 
     | 
    
         
            +
                                             GITypeInfo *interface_type_info,
         
     | 
| 
      
 2033 
     | 
    
         
            +
                                             GITransfer transfer)
         
     | 
| 
      
 2034 
     | 
    
         
            +
            {
         
     | 
| 
      
 2035 
     | 
    
         
            +
                GIBaseInfo *interface_info;
         
     | 
| 
      
 2036 
     | 
    
         
            +
                GIInfoType interface_type;
         
     | 
| 
      
 2037 
     | 
    
         
            +
             
     | 
| 
      
 2038 
     | 
    
         
            +
                interface_info = g_type_info_get_interface(interface_type_info);
         
     | 
| 
      
 2039 
     | 
    
         
            +
                interface_type = g_base_info_get_type(interface_info);
         
     | 
| 
      
 2040 
     | 
    
         
            +
                g_base_info_unref(interface_info);
         
     | 
| 
      
 2041 
     | 
    
         
            +
             
     | 
| 
      
 2042 
     | 
    
         
            +
                switch (interface_type) {
         
     | 
| 
      
 2043 
     | 
    
         
            +
                  case GI_INFO_TYPE_INVALID:
         
     | 
| 
      
 2044 
     | 
    
         
            +
                  case GI_INFO_TYPE_FUNCTION:
         
     | 
| 
      
 2045 
     | 
    
         
            +
                  case GI_INFO_TYPE_CALLBACK:
         
     | 
| 
      
 2046 
     | 
    
         
            +
                    rb_raise(rb_eNotImpError,
         
     | 
| 
      
 2047 
     | 
    
         
            +
                             "TODO: free out transfer GIArgument(interface)[%s][%s]",
         
     | 
| 
      
 2048 
     | 
    
         
            +
                             g_info_type_to_string(interface_type),
         
     | 
| 
      
 2049 
     | 
    
         
            +
                             rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 2050 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 2051 
     | 
    
         
            +
                  case GI_INFO_TYPE_STRUCT:
         
     | 
| 
      
 2052 
     | 
    
         
            +
                    /* Should we care gtype?
         
     | 
| 
      
 2053 
     | 
    
         
            +
                       Related: rb_gi_out_argument_init_interface() */
         
     | 
| 
      
 2054 
     | 
    
         
            +
                    xfree(argument->v_pointer);
         
     | 
| 
      
 2055 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 2056 
     | 
    
         
            +
                  case GI_INFO_TYPE_BOXED:
         
     | 
| 
      
 2057 
     | 
    
         
            +
                    rb_raise(rb_eNotImpError,
         
     | 
| 
      
 2058 
     | 
    
         
            +
                             "TODO: free out transfer GIArgument(interface)[%s][%s]",
         
     | 
| 
      
 2059 
     | 
    
         
            +
                             g_info_type_to_string(interface_type),
         
     | 
| 
      
 2060 
     | 
    
         
            +
                             rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 2061 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 2062 
     | 
    
         
            +
                  case GI_INFO_TYPE_ENUM:
         
     | 
| 
      
 2063 
     | 
    
         
            +
                  case GI_INFO_TYPE_FLAGS:
         
     | 
| 
      
 2064 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 2065 
     | 
    
         
            +
                  case GI_INFO_TYPE_OBJECT:
         
     | 
| 
      
 2066 
     | 
    
         
            +
                    if (transfer != GI_TRANSFER_NOTHING) {
         
     | 
| 
      
 2067 
     | 
    
         
            +
                        rb_raise(rb_eNotImpError,
         
     | 
| 
      
 2068 
     | 
    
         
            +
                                 "TODO: free out transfer GIArgument(interface)[%s][%s]",
         
     | 
| 
      
 2069 
     | 
    
         
            +
                                 g_info_type_to_string(interface_type),
         
     | 
| 
      
 2070 
     | 
    
         
            +
                                 rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 2071 
     | 
    
         
            +
                    }
         
     | 
| 
      
 2072 
     | 
    
         
            +
                    xfree(argument->v_pointer);
         
     | 
| 
      
 2073 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 2074 
     | 
    
         
            +
                  case GI_INFO_TYPE_INTERFACE:
         
     | 
| 
      
 2075 
     | 
    
         
            +
                    if (transfer != GI_TRANSFER_NOTHING) {
         
     | 
| 
      
 2076 
     | 
    
         
            +
                        rb_raise(rb_eNotImpError,
         
     | 
| 
      
 2077 
     | 
    
         
            +
                                 "TODO: free out transfer GIArgument(interface)[%s][%s]",
         
     | 
| 
      
 2078 
     | 
    
         
            +
                                 g_info_type_to_string(interface_type),
         
     | 
| 
      
 2079 
     | 
    
         
            +
                                 rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 2080 
     | 
    
         
            +
                    }
         
     | 
| 
      
 2081 
     | 
    
         
            +
                    xfree(argument->v_pointer);
         
     | 
| 
      
 2082 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 2083 
     | 
    
         
            +
                  case GI_INFO_TYPE_CONSTANT:
         
     | 
| 
      
 2084 
     | 
    
         
            +
                  case GI_INFO_TYPE_INVALID_0:
         
     | 
| 
      
 2085 
     | 
    
         
            +
                  case GI_INFO_TYPE_UNION:
         
     | 
| 
      
 2086 
     | 
    
         
            +
                  case GI_INFO_TYPE_VALUE:
         
     | 
| 
      
 2087 
     | 
    
         
            +
                  case GI_INFO_TYPE_SIGNAL:
         
     | 
| 
      
 2088 
     | 
    
         
            +
                  case GI_INFO_TYPE_VFUNC:
         
     | 
| 
      
 2089 
     | 
    
         
            +
                  case GI_INFO_TYPE_PROPERTY:
         
     | 
| 
      
 2090 
     | 
    
         
            +
                  case GI_INFO_TYPE_FIELD:
         
     | 
| 
      
 2091 
     | 
    
         
            +
                  case GI_INFO_TYPE_ARG:
         
     | 
| 
      
 2092 
     | 
    
         
            +
                  case GI_INFO_TYPE_TYPE:
         
     | 
| 
      
 2093 
     | 
    
         
            +
                  case GI_INFO_TYPE_UNRESOLVED:
         
     | 
| 
      
 2094 
     | 
    
         
            +
                    rb_raise(rb_eNotImpError,
         
     | 
| 
      
 2095 
     | 
    
         
            +
                             "TODO: free out transfer GIArgument(interface)[%s][%s]",
         
     | 
| 
      
 2096 
     | 
    
         
            +
                             g_info_type_to_string(interface_type),
         
     | 
| 
      
 2097 
     | 
    
         
            +
                             rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 2098 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 2099 
     | 
    
         
            +
                  default:
         
     | 
| 
      
 2100 
     | 
    
         
            +
                    g_assert_not_reached();
         
     | 
| 
      
 2101 
     | 
    
         
            +
                    break;
         
     | 
| 
      
 2102 
     | 
    
         
            +
                }
         
     | 
| 
      
 2103 
     | 
    
         
            +
            }
         
     | 
| 
      
 2104 
     | 
    
         
            +
             
     | 
| 
       1986 
2105 
     | 
    
         
             
            void
         
     | 
| 
       1987 
2106 
     | 
    
         
             
            rb_gi_out_argument_fin(GIArgument *argument, GIArgInfo *arg_info)
         
     | 
| 
       1988 
2107 
     | 
    
         
             
            {
         
     | 
| 
       1989 
2108 
     | 
    
         
             
                GITypeInfo type_info;
         
     | 
| 
       1990 
2109 
     | 
    
         
             
                GITypeTag type_tag;
         
     | 
| 
      
 2110 
     | 
    
         
            +
                GITransfer transfer;
         
     | 
| 
       1991 
2111 
     | 
    
         | 
| 
       1992 
2112 
     | 
    
         
             
                if (g_arg_info_get_direction(arg_info) != GI_DIRECTION_OUT) {
         
     | 
| 
       1993 
2113 
     | 
    
         
             
                    return;
         
     | 
| 
         @@ -1995,6 +2115,7 @@ rb_gi_out_argument_fin(GIArgument *argument, GIArgInfo *arg_info) 
     | 
|
| 
       1995 
2115 
     | 
    
         | 
| 
       1996 
2116 
     | 
    
         
             
                g_arg_info_load_type(arg_info, &type_info);
         
     | 
| 
       1997 
2117 
     | 
    
         
             
                type_tag = g_type_info_get_tag(&type_info);
         
     | 
| 
      
 2118 
     | 
    
         
            +
                transfer = g_arg_info_get_ownership_transfer(arg_info);
         
     | 
| 
       1998 
2119 
     | 
    
         | 
| 
       1999 
2120 
     | 
    
         
             
                switch (type_tag) {
         
     | 
| 
       2000 
2121 
     | 
    
         
             
                case GI_TYPE_TAG_VOID:
         
     | 
| 
         @@ -2010,7 +2131,12 @@ rb_gi_out_argument_fin(GIArgument *argument, GIArgInfo *arg_info) 
     | 
|
| 
       2010 
2131 
     | 
    
         
             
                case GI_TYPE_TAG_FLOAT:
         
     | 
| 
       2011 
2132 
     | 
    
         
             
                case GI_TYPE_TAG_DOUBLE:
         
     | 
| 
       2012 
2133 
     | 
    
         
             
                case GI_TYPE_TAG_GTYPE:
         
     | 
| 
      
 2134 
     | 
    
         
            +
                    xfree(argument->v_pointer);
         
     | 
| 
      
 2135 
     | 
    
         
            +
                    break;
         
     | 
| 
       2013 
2136 
     | 
    
         
             
                case GI_TYPE_TAG_UTF8:
         
     | 
| 
      
 2137 
     | 
    
         
            +
                    if (transfer != GI_TRANSFER_NOTHING) {
         
     | 
| 
      
 2138 
     | 
    
         
            +
                        g_free(*((gchar **)argument->v_pointer));
         
     | 
| 
      
 2139 
     | 
    
         
            +
                    }
         
     | 
| 
       2014 
2140 
     | 
    
         
             
                    xfree(argument->v_pointer);
         
     | 
| 
       2015 
2141 
     | 
    
         
             
                    break;
         
     | 
| 
       2016 
2142 
     | 
    
         
             
                case GI_TYPE_TAG_FILENAME:
         
     | 
| 
         @@ -2019,13 +2145,37 @@ rb_gi_out_argument_fin(GIArgument *argument, GIArgInfo *arg_info) 
     | 
|
| 
       2019 
2145 
     | 
    
         
             
                             g_type_tag_to_string(type_tag));
         
     | 
| 
       2020 
2146 
     | 
    
         
             
                    break;
         
     | 
| 
       2021 
2147 
     | 
    
         
             
                case GI_TYPE_TAG_ARRAY:
         
     | 
| 
       2022 
     | 
    
         
            -
                    rb_gi_out_argument_fin_array(argument, arg_info, &type_info);
         
     | 
| 
      
 2148 
     | 
    
         
            +
                    rb_gi_out_argument_fin_array(argument, arg_info, &type_info, transfer);
         
     | 
| 
       2023 
2149 
     | 
    
         
             
                    break;
         
     | 
| 
       2024 
2150 
     | 
    
         
             
                case GI_TYPE_TAG_INTERFACE:
         
     | 
| 
      
 2151 
     | 
    
         
            +
                    rb_gi_out_argument_fin_interface(argument,
         
     | 
| 
      
 2152 
     | 
    
         
            +
                                                     arg_info,
         
     | 
| 
      
 2153 
     | 
    
         
            +
                                                     &type_info,
         
     | 
| 
      
 2154 
     | 
    
         
            +
                                                     transfer);
         
     | 
| 
      
 2155 
     | 
    
         
            +
                    break;
         
     | 
| 
       2025 
2156 
     | 
    
         
             
                case GI_TYPE_TAG_GLIST:
         
     | 
| 
      
 2157 
     | 
    
         
            +
                    if (transfer == GI_TRANSFER_EVERYTHING) {
         
     | 
| 
      
 2158 
     | 
    
         
            +
                        rb_raise(rb_eNotImpError,
         
     | 
| 
      
 2159 
     | 
    
         
            +
                                 "TODO: free out transfer GIArgument(%s)[%s]",
         
     | 
| 
      
 2160 
     | 
    
         
            +
                                 g_type_tag_to_string(type_tag),
         
     | 
| 
      
 2161 
     | 
    
         
            +
                                 rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 2162 
     | 
    
         
            +
                    }
         
     | 
| 
      
 2163 
     | 
    
         
            +
                    if (transfer != GI_TRANSFER_NOTHING) {
         
     | 
| 
      
 2164 
     | 
    
         
            +
                        g_list_free(*((GList **)argument->v_pointer));
         
     | 
| 
      
 2165 
     | 
    
         
            +
                    }
         
     | 
| 
      
 2166 
     | 
    
         
            +
                    xfree(argument->v_pointer);
         
     | 
| 
      
 2167 
     | 
    
         
            +
                    break;
         
     | 
| 
       2026 
2168 
     | 
    
         
             
                case GI_TYPE_TAG_GSLIST:
         
     | 
| 
       2027 
2169 
     | 
    
         
             
                case GI_TYPE_TAG_GHASH:
         
     | 
| 
       2028 
2170 
     | 
    
         
             
                case GI_TYPE_TAG_ERROR:
         
     | 
| 
      
 2171 
     | 
    
         
            +
                    if (transfer != GI_TRANSFER_NOTHING) {
         
     | 
| 
      
 2172 
     | 
    
         
            +
                        rb_raise(rb_eNotImpError,
         
     | 
| 
      
 2173 
     | 
    
         
            +
                                 "TODO: free out transfer GIArgument(%s)[%s]",
         
     | 
| 
      
 2174 
     | 
    
         
            +
                                 g_type_tag_to_string(type_tag),
         
     | 
| 
      
 2175 
     | 
    
         
            +
                                 rb_gi_transfer_to_string(transfer));
         
     | 
| 
      
 2176 
     | 
    
         
            +
                    }
         
     | 
| 
      
 2177 
     | 
    
         
            +
                    xfree(argument->v_pointer);
         
     | 
| 
      
 2178 
     | 
    
         
            +
                    break;
         
     | 
| 
       2029 
2179 
     | 
    
         
             
                case GI_TYPE_TAG_UNICHAR:
         
     | 
| 
       2030 
2180 
     | 
    
         
             
                    xfree(argument->v_pointer);
         
     | 
| 
       2031 
2181 
     | 
    
         
             
                    break;
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: gobject-introspection
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.2.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - The Ruby-GNOME2 Project Team
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017-11- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-11-19 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: glib2
         
     | 
| 
         @@ -16,14 +16,14 @@ dependencies: 
     | 
|
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - '='
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: 3.2. 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: 3.2.1
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
24 
     | 
    
         
             
                - - '='
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: 3.2. 
     | 
| 
      
 26 
     | 
    
         
            +
                    version: 3.2.1
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
28 
     | 
    
         
             
              name: test-unit
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |