LCOV - code coverage report
Current view: top level - gobject - gvaluetransform.c (source / functions) Coverage Total Hit
Test: unnamed Lines: 98.3 % 290 285
Test Date: 2024-11-26 05:23:01 Functions: 98.9 % 92 91
Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : /* GObject - GLib Type, Object, Parameter and Signal Library
       2                 :             :  * Copyright (C) 2001 Red Hat, Inc.
       3                 :             :  *
       4                 :             :  * SPDX-License-Identifier: LGPL-2.1-or-later
       5                 :             :  *
       6                 :             :  * This library is free software; you can redistribute it and/or
       7                 :             :  * modify it under the terms of the GNU Lesser General Public
       8                 :             :  * License as published by the Free Software Foundation; either
       9                 :             :  * version 2.1 of the License, or (at your option) any later version.
      10                 :             :  *
      11                 :             :  * This library is distributed in the hope that it will be useful,
      12                 :             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      13                 :             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      14                 :             :  * Lesser General Public License for more details.
      15                 :             :  *
      16                 :             :  * You should have received a copy of the GNU Lesser General
      17                 :             :  * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
      18                 :             :  */
      19                 :             : 
      20                 :             : #include "config.h"
      21                 :             : 
      22                 :             : #include <string.h>
      23                 :             : 
      24                 :             : #include "gvalue.h"
      25                 :             : #include "gtype-private.h"
      26                 :             : #include "genums.h"
      27                 :             : 
      28                 :             : 
      29                 :             : /* same type transforms
      30                 :             :  */
      31                 :             : static void
      32                 :           1 : value_transform_memcpy_data0 (const GValue *src_value,
      33                 :             :                               GValue       *dest_value)
      34                 :             : {
      35                 :           1 :   memcpy (&dest_value->data[0], &src_value->data[0], sizeof (src_value->data[0]));
      36                 :           1 : }
      37                 :             : #define value_transform_int_int         value_transform_memcpy_data0
      38                 :             : #define value_transform_uint_uint       value_transform_memcpy_data0
      39                 :             : #define value_transform_long_long       value_transform_memcpy_data0
      40                 :             : #define value_transform_ulong_ulong     value_transform_memcpy_data0
      41                 :             : #define value_transform_int64_int64     value_transform_memcpy_data0
      42                 :             : #define value_transform_uint64_uint64   value_transform_memcpy_data0
      43                 :             : #define value_transform_float_float     value_transform_memcpy_data0
      44                 :             : #define value_transform_double_double   value_transform_memcpy_data0
      45                 :             : 
      46                 :             : 
      47                 :             : /* numeric casts
      48                 :             :  */
      49                 :             : #define DEFINE_CAST(func_name, from_member, ctype, to_member)               \
      50                 :             : static void                                                                 \
      51                 :             : value_transform_##func_name (const GValue *src_value,                       \
      52                 :             :                              GValue       *dest_value)                      \
      53                 :             : {                                                                           \
      54                 :             :   ctype c_value = (ctype) src_value->data[0].from_member;                   \
      55                 :             :   dest_value->data[0].to_member = c_value;                                  \
      56                 :             : } extern void glib_dummy_decl (void)
      57                 :           3 : DEFINE_CAST (int_s8,            v_int,    gint8,   v_int);
      58                 :           2 : DEFINE_CAST (int_u8,            v_int,    guint8,  v_uint);
      59                 :           2 : DEFINE_CAST (int_uint,          v_int,    guint,   v_uint);
      60                 :           1 : DEFINE_CAST (int_long,          v_int,    glong,   v_long);
      61                 :           1 : DEFINE_CAST (int_ulong,         v_int,    gulong,  v_ulong);
      62                 :           1 : DEFINE_CAST (int_int64,         v_int,    gint64,  v_int64);
      63                 :           1 : DEFINE_CAST (int_uint64,        v_int,    guint64, v_uint64);
      64                 :           1 : DEFINE_CAST (int_float,         v_int,    gfloat,  v_float);
      65                 :           2 : DEFINE_CAST (int_double,        v_int,    gdouble, v_double);
      66                 :           2 : DEFINE_CAST (uint_s8,           v_uint,   gint8,   v_int);
      67                 :           2 : DEFINE_CAST (uint_u8,           v_uint,   guint8,  v_uint);
      68                 :           4 : DEFINE_CAST (uint_int,          v_uint,   gint,    v_int);
      69                 :           1 : DEFINE_CAST (uint_long,         v_uint,   glong,   v_long);
      70                 :           1 : DEFINE_CAST (uint_ulong,        v_uint,   gulong,  v_ulong);
      71                 :           1 : DEFINE_CAST (uint_int64,        v_uint,   gint64,  v_int64);
      72                 :           1 : DEFINE_CAST (uint_uint64,       v_uint,   guint64, v_uint64);
      73                 :           1 : DEFINE_CAST (uint_float,        v_uint,   gfloat,  v_float);
      74                 :           1 : DEFINE_CAST (uint_double,       v_uint,   gdouble, v_double);
      75                 :           3 : DEFINE_CAST (long_s8,           v_long,   gint8,   v_int);
      76                 :           3 : DEFINE_CAST (long_u8,           v_long,   guint8,  v_uint);
      77                 :           3 : DEFINE_CAST (long_int,          v_long,   gint,    v_int);
      78                 :           3 : DEFINE_CAST (long_uint,         v_long,   guint,   v_uint);
      79                 :           2 : DEFINE_CAST (long_ulong,        v_long,   gulong,  v_ulong);
      80                 :           2 : DEFINE_CAST (long_int64,        v_long,   gint64,  v_int64);
      81                 :           2 : DEFINE_CAST (long_uint64,       v_long,   guint64, v_uint64);
      82                 :           1 : DEFINE_CAST (long_float,        v_long,   gfloat,  v_float);
      83                 :           1 : DEFINE_CAST (long_double,       v_long,   gdouble, v_double);
      84                 :           2 : DEFINE_CAST (ulong_s8,          v_ulong,  gint8,   v_int);
      85                 :           2 : DEFINE_CAST (ulong_u8,          v_ulong,  guint8,  v_uint);
      86                 :           2 : DEFINE_CAST (ulong_int,         v_ulong,  gint,    v_int);
      87                 :           2 : DEFINE_CAST (ulong_uint,        v_ulong,  guint,   v_uint);
      88                 :           1 : DEFINE_CAST (ulong_int64,       v_ulong,  gint64,  v_int64);
      89                 :           1 : DEFINE_CAST (ulong_uint64,      v_ulong,  guint64, v_uint64);
      90                 :           1 : DEFINE_CAST (ulong_long,        v_ulong,  glong,   v_long);
      91                 :           1 : DEFINE_CAST (ulong_float,       v_ulong,  gfloat,  v_float);
      92                 :           1 : DEFINE_CAST (ulong_double,      v_ulong,  gdouble, v_double);
      93                 :           2 : DEFINE_CAST (int64_s8,          v_int64,  gint8,   v_int);
      94                 :           2 : DEFINE_CAST (int64_u8,          v_int64,  guint8,  v_uint);
      95                 :           2 : DEFINE_CAST (int64_int,         v_int64,  gint,    v_int);
      96                 :           2 : DEFINE_CAST (int64_uint,        v_int64,  guint,   v_uint);
      97                 :           1 : DEFINE_CAST (int64_long,        v_int64,  glong,   v_long);
      98                 :           1 : DEFINE_CAST (int64_uint64,      v_int64,  guint64, v_uint64);
      99                 :           1 : DEFINE_CAST (int64_ulong,       v_int64,  gulong,  v_ulong);
     100                 :           1 : DEFINE_CAST (int64_float,       v_int64,  gfloat,  v_float);
     101                 :           1 : DEFINE_CAST (int64_double,      v_int64,  gdouble, v_double);
     102                 :           2 : DEFINE_CAST (uint64_s8,         v_uint64, gint8,   v_int);
     103                 :           2 : DEFINE_CAST (uint64_u8,         v_uint64, guint8,  v_uint);
     104                 :           2 : DEFINE_CAST (uint64_int,        v_uint64, gint,    v_int);
     105                 :           2 : DEFINE_CAST (uint64_uint,       v_uint64, guint,   v_uint);
     106                 :           1 : DEFINE_CAST (uint64_long,       v_uint64, glong,   v_long);
     107                 :           1 : DEFINE_CAST (uint64_ulong,      v_uint64, gulong,  v_ulong);
     108                 :           1 : DEFINE_CAST (uint64_int64,      v_uint64, gint64,  v_int64);
     109                 :           1 : DEFINE_CAST (uint64_float,      v_uint64, gfloat,  v_float);
     110                 :           1 : DEFINE_CAST (uint64_double,     v_uint64, gdouble, v_double);
     111                 :           2 : DEFINE_CAST (float_s8,          v_float,  gint8,   v_int);
     112                 :           2 : DEFINE_CAST (float_u8,          v_float,  guint8,  v_uint);
     113                 :           2 : DEFINE_CAST (float_int,         v_float,  gint,    v_int);
     114                 :           2 : DEFINE_CAST (float_uint,        v_float,  guint,   v_uint);
     115                 :           1 : DEFINE_CAST (float_long,        v_float,  glong,   v_long);
     116                 :           1 : DEFINE_CAST (float_ulong,       v_float,  gulong,  v_ulong);
     117                 :           1 : DEFINE_CAST (float_int64,       v_float,  gint64,  v_int64);
     118                 :           1 : DEFINE_CAST (float_uint64,      v_float,  guint64, v_uint64);
     119                 :           1 : DEFINE_CAST (float_double,      v_float,  gdouble, v_double);
     120                 :           2 : DEFINE_CAST (double_s8,         v_double, gint8,   v_int);
     121                 :           2 : DEFINE_CAST (double_u8,         v_double, guint8,  v_uint);
     122                 :           3 : DEFINE_CAST (double_int,        v_double, gint,    v_int);
     123                 :           2 : DEFINE_CAST (double_uint,       v_double, guint,   v_uint);
     124                 :           1 : DEFINE_CAST (double_long,       v_double, glong,   v_long);
     125                 :           1 : DEFINE_CAST (double_ulong,      v_double, gulong,  v_ulong);
     126                 :           1 : DEFINE_CAST (double_int64,      v_double, gint64,  v_int64);
     127                 :           1 : DEFINE_CAST (double_uint64,     v_double, guint64, v_uint64);
     128                 :           1 : DEFINE_CAST (double_float,      v_double, gfloat,  v_float);
     129                 :             : 
     130                 :             : 
     131                 :             : /* boolean assignments
     132                 :             :  */
     133                 :             : #define DEFINE_BOOL_CHECK(func_name, from_member)                           \
     134                 :             : static void                                                                 \
     135                 :             : value_transform_##func_name (const GValue *src_value,                       \
     136                 :             :                              GValue       *dest_value)                      \
     137                 :             : {                                                                           \
     138                 :             :   dest_value->data[0].v_int = src_value->data[0].from_member != 0;  \
     139                 :             : } extern void glib_dummy_decl (void)
     140                 :           2 : DEFINE_BOOL_CHECK (int_bool,    v_int);
     141                 :           2 : DEFINE_BOOL_CHECK (uint_bool,   v_uint);
     142                 :           2 : DEFINE_BOOL_CHECK (long_bool,   v_long);
     143                 :           2 : DEFINE_BOOL_CHECK (ulong_bool,  v_ulong);
     144                 :           2 : DEFINE_BOOL_CHECK (int64_bool,  v_int64);
     145                 :           2 : DEFINE_BOOL_CHECK (uint64_bool, v_uint64);
     146                 :             : 
     147                 :             : 
     148                 :             : /* string printouts
     149                 :             :  */
     150                 :             : #define DEFINE_SPRINTF(func_name, from_member, format)                      \
     151                 :             : static void                                                                 \
     152                 :             : value_transform_##func_name (const GValue *src_value,                       \
     153                 :             :                              GValue       *dest_value)                      \
     154                 :             : {                                                                           \
     155                 :             :   dest_value->data[0].v_pointer = g_strdup_printf ((format),                \
     156                 :             :                                                    src_value->data[0].from_member);             \
     157                 :             : } extern void glib_dummy_decl (void)
     158                 :          13 : DEFINE_SPRINTF (int_string,     v_int,    "%d");
     159                 :          18 : DEFINE_SPRINTF (uint_string,    v_uint,   "%u");
     160                 :           1 : DEFINE_SPRINTF (long_string,    v_long,   "%ld");
     161                 :           3 : DEFINE_SPRINTF (ulong_string,   v_ulong,  "%lu");
     162                 :           1 : DEFINE_SPRINTF (int64_string,   v_int64,  "%" G_GINT64_FORMAT);
     163                 :           1 : DEFINE_SPRINTF (uint64_string,  v_uint64, "%" G_GUINT64_FORMAT);
     164                 :           1 : DEFINE_SPRINTF (float_string,   v_float,  "%f");
     165                 :           1 : DEFINE_SPRINTF (double_string,  v_double, "%f");
     166                 :             : 
     167                 :             : 
     168                 :             : /* special cases
     169                 :             :  */
     170                 :             : static void
     171                 :          60 : value_transform_bool_string (const GValue *src_value,
     172                 :             :                              GValue       *dest_value)
     173                 :             : {
     174                 :          60 :   dest_value->data[0].v_pointer = g_strdup_printf ("%s",
     175                 :          60 :                                                    src_value->data[0].v_int ?
     176                 :             :                                                    "TRUE" : "FALSE");
     177                 :          60 : }
     178                 :             : static void
     179                 :           0 : value_transform_string_string (const GValue *src_value,
     180                 :             :                                GValue       *dest_value)
     181                 :             : {
     182                 :           0 :   dest_value->data[0].v_pointer = g_strdup (src_value->data[0].v_pointer);
     183                 :           0 : }
     184                 :             : static void
     185                 :          26 : value_transform_enum_string (const GValue *src_value,
     186                 :             :                              GValue       *dest_value)
     187                 :             : {
     188                 :          26 :   gint v_enum = src_value->data[0].v_long;
     189                 :          26 :   gchar *str = g_enum_to_string (G_VALUE_TYPE (src_value), v_enum);
     190                 :             : 
     191                 :          26 :   dest_value->data[0].v_pointer = str;
     192                 :          26 : }
     193                 :             : static void
     194                 :          18 : value_transform_flags_string (const GValue *src_value,
     195                 :             :                               GValue       *dest_value)
     196                 :             : {
     197                 :          18 :   GFlagsClass *class = g_type_class_ref (G_VALUE_TYPE (src_value));
     198                 :          18 :   GFlagsValue *flags_value = g_flags_get_first_value (class, src_value->data[0].v_ulong);
     199                 :             : 
     200                 :             :   /* Note: this does not use g_flags_to_string()
     201                 :             :    * to keep backwards compatibility.
     202                 :             :    */
     203                 :          18 :   if (flags_value)
     204                 :             :     {
     205                 :          18 :       GString *gstring = g_string_new (NULL);
     206                 :          18 :       guint v_flags = src_value->data[0].v_ulong;
     207                 :             :       
     208                 :             :       do
     209                 :             :         {
     210                 :          37 :           v_flags &= ~flags_value->value;
     211                 :             :           
     212                 :          37 :           if (gstring->str[0])
     213                 :          38 :             g_string_append (gstring, " | ");
     214                 :          37 :           g_string_append (gstring, flags_value->value_name);
     215                 :          37 :           flags_value = g_flags_get_first_value (class, v_flags);
     216                 :             :         }
     217                 :          37 :       while (flags_value && v_flags);
     218                 :             :       
     219                 :          18 :       if (v_flags)
     220                 :           0 :         dest_value->data[0].v_pointer = g_strdup_printf ("%s | %u",
     221                 :             :                                                          gstring->str,
     222                 :             :                                                          v_flags);
     223                 :             :       else
     224                 :          36 :         dest_value->data[0].v_pointer = g_strdup (gstring->str);
     225                 :          18 :       g_string_free (gstring, TRUE);
     226                 :             :     }
     227                 :             :   else
     228                 :           0 :     dest_value->data[0].v_pointer = g_strdup_printf ("%lu", src_value->data[0].v_ulong);
     229                 :             :   
     230                 :          18 :   g_type_class_unref (class);
     231                 :          18 : }
     232                 :             : 
     233                 :             : 
     234                 :             : /* registration
     235                 :             :  */
     236                 :             : void
     237                 :         545 : _g_value_transforms_init (void)
     238                 :             : {
     239                 :             :   /* some transformations are a bit questionable,
     240                 :             :    * we currently skip those
     241                 :             :    */
     242                 :             : #define SKIP____register_transform_func(type1,type2,transform_func)     /* skip questionable transforms */ \
     243                 :             :   (void)0
     244                 :             :   
     245                 :             :   /* numeric types (plus to string) */
     246                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_CHAR,            value_transform_int_int);
     247                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UCHAR,           value_transform_int_u8);
     248                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_BOOLEAN,         value_transform_int_bool);
     249                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT,             value_transform_int_int);
     250                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT,            value_transform_int_uint);
     251                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_LONG,            value_transform_int_long);
     252                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ULONG,           value_transform_int_ulong);
     253                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT64,           value_transform_int_int64);
     254                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT64,          value_transform_int_uint64);
     255                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ENUM,            value_transform_int_long);
     256                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLAGS,           value_transform_int_ulong);
     257                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLOAT,           value_transform_int_float);
     258                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_DOUBLE,          value_transform_int_double);
     259                 :         545 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_STRING,          value_transform_int_string);
     260                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_CHAR,            value_transform_uint_s8);
     261                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UCHAR,           value_transform_uint_uint);
     262                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_BOOLEAN,         value_transform_uint_bool);
     263                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT,             value_transform_uint_int);
     264                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT,            value_transform_uint_uint);
     265                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_LONG,            value_transform_uint_long);
     266                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ULONG,           value_transform_uint_ulong);
     267                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT64,           value_transform_uint_int64);
     268                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT64,          value_transform_uint_uint64);
     269                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ENUM,            value_transform_uint_long);
     270                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLAGS,           value_transform_uint_ulong);
     271                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLOAT,           value_transform_uint_float);
     272                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_DOUBLE,          value_transform_uint_double);
     273                 :         545 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_STRING,          value_transform_uint_string);
     274                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_CHAR,            value_transform_int_s8);
     275                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UCHAR,           value_transform_int_u8);
     276                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_BOOLEAN,         value_transform_int_int);
     277                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT,             value_transform_int_int);
     278                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT,            value_transform_int_uint);
     279                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_LONG,            value_transform_int_long);
     280                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ULONG,           value_transform_int_ulong);
     281                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT64,           value_transform_int_int64);
     282                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT64,          value_transform_int_uint64);
     283                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ENUM,            value_transform_int_long);
     284                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_FLAGS,           value_transform_int_ulong);
     285                 :             :   SKIP____register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_FLOAT,           value_transform_int_float);
     286                 :             :   SKIP____register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_DOUBLE,          value_transform_int_double);
     287                 :         545 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_STRING,          value_transform_bool_string);
     288                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_CHAR,            value_transform_int_s8);
     289                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UCHAR,           value_transform_int_u8);
     290                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_BOOLEAN,         value_transform_int_bool);
     291                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT,             value_transform_int_int);
     292                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UINT,            value_transform_int_uint);
     293                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_LONG,            value_transform_int_long);
     294                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_ULONG,           value_transform_int_ulong);
     295                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT64,           value_transform_int_int64);
     296                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UINT64,          value_transform_int_uint64);
     297                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_ENUM,            value_transform_int_long);
     298                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_FLAGS,           value_transform_int_ulong);
     299                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_FLOAT,           value_transform_int_float);
     300                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_DOUBLE,          value_transform_int_double);
     301                 :         545 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_STRING,          value_transform_int_string);
     302                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_CHAR,            value_transform_uint_s8);
     303                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UCHAR,           value_transform_uint_u8);
     304                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_BOOLEAN,         value_transform_uint_bool);
     305                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_INT,             value_transform_uint_int);
     306                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT,            value_transform_uint_uint);
     307                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_LONG,            value_transform_uint_long);
     308                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_ULONG,           value_transform_uint_ulong);
     309                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_INT64,           value_transform_uint_int64);
     310                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT64,          value_transform_uint_uint64);
     311                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_ENUM,            value_transform_uint_long);
     312                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_FLAGS,           value_transform_uint_ulong);
     313                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_FLOAT,           value_transform_uint_float);
     314                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_DOUBLE,          value_transform_uint_double);
     315                 :         545 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_STRING,          value_transform_uint_string);
     316                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_CHAR,            value_transform_long_s8);
     317                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UCHAR,           value_transform_long_u8);
     318                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_BOOLEAN,         value_transform_long_bool);
     319                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_INT,             value_transform_long_int);
     320                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UINT,            value_transform_long_uint);
     321                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_LONG,            value_transform_long_long);
     322                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ULONG,           value_transform_long_ulong);
     323                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_INT64,           value_transform_long_int64);
     324                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UINT64,          value_transform_long_uint64);
     325                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ENUM,            value_transform_long_long);
     326                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_FLAGS,           value_transform_long_ulong);
     327                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_FLOAT,           value_transform_long_float);
     328                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_DOUBLE,          value_transform_long_double);
     329                 :         545 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_STRING,          value_transform_long_string);
     330                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_CHAR,            value_transform_ulong_s8);
     331                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UCHAR,           value_transform_ulong_u8);
     332                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_BOOLEAN,         value_transform_ulong_bool);
     333                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_INT,             value_transform_ulong_int);
     334                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UINT,            value_transform_ulong_uint);
     335                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_LONG,            value_transform_ulong_long);
     336                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ULONG,           value_transform_ulong_ulong);
     337                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_INT64,           value_transform_ulong_int64);
     338                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UINT64,          value_transform_ulong_uint64);
     339                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ENUM,            value_transform_ulong_long);
     340                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
     341                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLOAT,           value_transform_ulong_float);
     342                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_DOUBLE,          value_transform_ulong_double);
     343                 :         545 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_STRING,          value_transform_ulong_string);
     344                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_CHAR,            value_transform_int64_s8);
     345                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UCHAR,           value_transform_int64_u8);
     346                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_BOOLEAN,         value_transform_int64_bool);
     347                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT,             value_transform_int64_int);
     348                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UINT,            value_transform_int64_uint);
     349                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_LONG,            value_transform_int64_long);
     350                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_ULONG,           value_transform_int64_ulong);
     351                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT64,           value_transform_int64_int64);
     352                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UINT64,          value_transform_int64_uint64);
     353                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_ENUM,            value_transform_int64_long);
     354                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_FLAGS,           value_transform_int64_ulong);
     355                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_FLOAT,           value_transform_int64_float);
     356                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_DOUBLE,          value_transform_int64_double);
     357                 :         545 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_STRING,          value_transform_int64_string);
     358                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_CHAR,            value_transform_uint64_s8);
     359                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UCHAR,           value_transform_uint64_u8);
     360                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_BOOLEAN,         value_transform_uint64_bool);
     361                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_INT,             value_transform_uint64_int);
     362                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT,            value_transform_uint64_uint);
     363                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_LONG,            value_transform_uint64_long);
     364                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_ULONG,           value_transform_uint64_ulong);
     365                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_INT64,           value_transform_uint64_int64);
     366                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT64,          value_transform_uint64_uint64);
     367                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_ENUM,            value_transform_uint64_long);
     368                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_FLAGS,           value_transform_uint64_ulong);
     369                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_FLOAT,           value_transform_uint64_float);
     370                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_DOUBLE,          value_transform_uint64_double);
     371                 :         545 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_STRING,          value_transform_uint64_string);
     372                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_CHAR,            value_transform_long_s8);
     373                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UCHAR,           value_transform_long_u8);
     374                 :             :   SKIP____register_transform_func (G_TYPE_ENUM,         G_TYPE_BOOLEAN,         value_transform_long_bool);
     375                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_INT,             value_transform_long_int);
     376                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UINT,            value_transform_long_uint);
     377                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_LONG,            value_transform_long_long);
     378                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ULONG,           value_transform_long_ulong);
     379                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_INT64,           value_transform_long_int64);
     380                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UINT64,          value_transform_long_uint64);
     381                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ENUM,            value_transform_long_long);
     382                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_FLAGS,           value_transform_long_ulong);
     383                 :             :   SKIP____register_transform_func (G_TYPE_ENUM,         G_TYPE_FLOAT,           value_transform_long_float);
     384                 :             :   SKIP____register_transform_func (G_TYPE_ENUM,         G_TYPE_DOUBLE,          value_transform_long_double);
     385                 :         545 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_STRING,          value_transform_enum_string);
     386                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_CHAR,            value_transform_ulong_s8);
     387                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UCHAR,           value_transform_ulong_u8);
     388                 :             :   SKIP____register_transform_func (G_TYPE_FLAGS,        G_TYPE_BOOLEAN,         value_transform_ulong_bool);
     389                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_INT,             value_transform_ulong_int);
     390                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UINT,            value_transform_ulong_uint);
     391                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_LONG,            value_transform_ulong_long);
     392                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_ULONG,           value_transform_ulong_ulong);
     393                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_INT64,           value_transform_ulong_int64);
     394                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UINT64,          value_transform_ulong_uint64);
     395                 :             :   SKIP____register_transform_func (G_TYPE_FLAGS,        G_TYPE_ENUM,            value_transform_ulong_long);
     396                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
     397                 :             :   SKIP____register_transform_func (G_TYPE_FLAGS,        G_TYPE_FLOAT,           value_transform_ulong_float);
     398                 :             :   SKIP____register_transform_func (G_TYPE_FLAGS,        G_TYPE_DOUBLE,          value_transform_ulong_double);
     399                 :         545 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_STRING,          value_transform_flags_string);
     400                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_CHAR,            value_transform_float_s8);
     401                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UCHAR,           value_transform_float_u8);
     402                 :             :   SKIP____register_transform_func (G_TYPE_FLOAT,        G_TYPE_BOOLEAN,         value_transform_float_bool);
     403                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_INT,             value_transform_float_int);
     404                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UINT,            value_transform_float_uint);
     405                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_LONG,            value_transform_float_long);
     406                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_ULONG,           value_transform_float_ulong);
     407                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_INT64,           value_transform_float_int64);
     408                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UINT64,          value_transform_float_uint64);
     409                 :             :   SKIP____register_transform_func (G_TYPE_FLOAT,        G_TYPE_ENUM,            value_transform_float_long);
     410                 :             :   SKIP____register_transform_func (G_TYPE_FLOAT,        G_TYPE_FLAGS,           value_transform_float_ulong);
     411                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_FLOAT,           value_transform_float_float);
     412                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_DOUBLE,          value_transform_float_double);
     413                 :         545 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_STRING,          value_transform_float_string);
     414                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_CHAR,            value_transform_double_s8);
     415                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UCHAR,           value_transform_double_u8);
     416                 :             :   SKIP____register_transform_func (G_TYPE_DOUBLE,       G_TYPE_BOOLEAN,         value_transform_double_bool);
     417                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_INT,             value_transform_double_int);
     418                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UINT,            value_transform_double_uint);
     419                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_LONG,            value_transform_double_long);
     420                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_ULONG,           value_transform_double_ulong);
     421                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_INT64,           value_transform_double_int64);
     422                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UINT64,          value_transform_double_uint64);
     423                 :             :   SKIP____register_transform_func (G_TYPE_DOUBLE,       G_TYPE_ENUM,            value_transform_double_long);
     424                 :             :   SKIP____register_transform_func (G_TYPE_DOUBLE,       G_TYPE_FLAGS,           value_transform_double_ulong);
     425                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_FLOAT,           value_transform_double_float);
     426                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_DOUBLE,          value_transform_double_double);
     427                 :         545 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_STRING,          value_transform_double_string);
     428                 :             :   /* string types */
     429                 :         545 :   g_value_register_transform_func (G_TYPE_STRING,       G_TYPE_STRING,          value_transform_string_string);
     430                 :         545 : }
        

Generated by: LCOV version 2.0-1