LCOV - code coverage report
Current view: top level - glib/gobject - gvaluetransform.c (source / functions) Hit Total Coverage
Test: unnamed Lines: 280 290 96.6 %
Date: 2024-04-23 05:16:05 Functions: 90 92 97.8 %
Branches: 10 16 62.5 %

           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 = 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                 :          1 : DEFINE_SPRINTF (int_string,     v_int,    "%d");
     159                 :          1 : DEFINE_SPRINTF (uint_string,    v_uint,   "%u");
     160                 :          1 : DEFINE_SPRINTF (long_string,    v_long,   "%ld");
     161                 :          1 : 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                 :          1 : value_transform_bool_string (const GValue *src_value,
     172                 :            :                              GValue       *dest_value)
     173                 :            : {
     174                 :          1 :   dest_value->data[0].v_pointer = g_strdup_printf ("%s",
     175         [ +  - ]:          1 :                                                    src_value->data[0].v_int ?
     176                 :            :                                                    "TRUE" : "FALSE");
     177                 :          1 : }
     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                 :          0 : value_transform_enum_string (const GValue *src_value,
     186                 :            :                              GValue       *dest_value)
     187                 :            : {
     188                 :          0 :   gint v_enum = src_value->data[0].v_long;
     189                 :          0 :   gchar *str = g_enum_to_string (G_VALUE_TYPE (src_value), v_enum);
     190                 :            : 
     191                 :          0 :   dest_value->data[0].v_pointer = str;
     192                 :          0 : }
     193                 :            : static void
     194                 :          1 : value_transform_flags_string (const GValue *src_value,
     195                 :            :                               GValue       *dest_value)
     196                 :            : {
     197                 :          1 :   GFlagsClass *class = g_type_class_ref (G_VALUE_TYPE (src_value));
     198                 :          1 :   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         [ +  - ]:          1 :   if (flags_value)
     204                 :            :     {
     205                 :          1 :       GString *gstring = g_string_new (NULL);
     206                 :          1 :       guint v_flags = src_value->data[0].v_ulong;
     207                 :            :       
     208                 :            :       do
     209                 :            :         {
     210                 :          2 :           v_flags &= ~flags_value->value;
     211                 :            :           
     212         [ +  + ]:          2 :           if (gstring->str[0])
     213         [ +  - ]:          2 :             g_string_append (gstring, " | ");
     214         [ -  + ]:          2 :           g_string_append (gstring, flags_value->value_name);
     215                 :          2 :           flags_value = g_flags_get_first_value (class, v_flags);
     216                 :            :         }
     217   [ +  -  +  + ]:          2 :       while (flags_value && v_flags);
     218                 :            :       
     219         [ -  + ]:          1 :       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                 :          2 :         dest_value->data[0].v_pointer = g_strdup (gstring->str);
     225                 :          1 :       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                 :          1 :   g_type_class_unref (class);
     231                 :          1 : }
     232                 :            : 
     233                 :            : 
     234                 :            : /* registration
     235                 :            :  */
     236                 :            : void
     237                 :        527 : _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                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_CHAR,            value_transform_int_int);
     247                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UCHAR,           value_transform_int_u8);
     248                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_BOOLEAN,         value_transform_int_bool);
     249                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT,             value_transform_int_int);
     250                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT,            value_transform_int_uint);
     251                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_LONG,            value_transform_int_long);
     252                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ULONG,           value_transform_int_ulong);
     253                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT64,           value_transform_int_int64);
     254                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT64,          value_transform_int_uint64);
     255                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ENUM,            value_transform_int_long);
     256                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLAGS,           value_transform_int_ulong);
     257                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLOAT,           value_transform_int_float);
     258                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_DOUBLE,          value_transform_int_double);
     259                 :        527 :   g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_STRING,          value_transform_int_string);
     260                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_CHAR,            value_transform_uint_s8);
     261                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UCHAR,           value_transform_uint_uint);
     262                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_BOOLEAN,         value_transform_uint_bool);
     263                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT,             value_transform_uint_int);
     264                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT,            value_transform_uint_uint);
     265                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_LONG,            value_transform_uint_long);
     266                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ULONG,           value_transform_uint_ulong);
     267                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT64,           value_transform_uint_int64);
     268                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT64,          value_transform_uint_uint64);
     269                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ENUM,            value_transform_uint_long);
     270                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLAGS,           value_transform_uint_ulong);
     271                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLOAT,           value_transform_uint_float);
     272                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_DOUBLE,          value_transform_uint_double);
     273                 :        527 :   g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_STRING,          value_transform_uint_string);
     274                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_CHAR,            value_transform_int_s8);
     275                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UCHAR,           value_transform_int_u8);
     276                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_BOOLEAN,         value_transform_int_int);
     277                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT,             value_transform_int_int);
     278                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT,            value_transform_int_uint);
     279                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_LONG,            value_transform_int_long);
     280                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ULONG,           value_transform_int_ulong);
     281                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT64,           value_transform_int_int64);
     282                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT64,          value_transform_int_uint64);
     283                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ENUM,            value_transform_int_long);
     284                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_STRING,          value_transform_bool_string);
     288                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_CHAR,            value_transform_int_s8);
     289                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UCHAR,           value_transform_int_u8);
     290                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_BOOLEAN,         value_transform_int_bool);
     291                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT,             value_transform_int_int);
     292                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UINT,            value_transform_int_uint);
     293                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_LONG,            value_transform_int_long);
     294                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_ULONG,           value_transform_int_ulong);
     295                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT64,           value_transform_int_int64);
     296                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UINT64,          value_transform_int_uint64);
     297                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_ENUM,            value_transform_int_long);
     298                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_FLAGS,           value_transform_int_ulong);
     299                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_FLOAT,           value_transform_int_float);
     300                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_DOUBLE,          value_transform_int_double);
     301                 :        527 :   g_value_register_transform_func (G_TYPE_INT,          G_TYPE_STRING,          value_transform_int_string);
     302                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_CHAR,            value_transform_uint_s8);
     303                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UCHAR,           value_transform_uint_u8);
     304                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_BOOLEAN,         value_transform_uint_bool);
     305                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_INT,             value_transform_uint_int);
     306                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT,            value_transform_uint_uint);
     307                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_LONG,            value_transform_uint_long);
     308                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_ULONG,           value_transform_uint_ulong);
     309                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_INT64,           value_transform_uint_int64);
     310                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT64,          value_transform_uint_uint64);
     311                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_ENUM,            value_transform_uint_long);
     312                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_FLAGS,           value_transform_uint_ulong);
     313                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_FLOAT,           value_transform_uint_float);
     314                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_DOUBLE,          value_transform_uint_double);
     315                 :        527 :   g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_STRING,          value_transform_uint_string);
     316                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_CHAR,            value_transform_long_s8);
     317                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UCHAR,           value_transform_long_u8);
     318                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_BOOLEAN,         value_transform_long_bool);
     319                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_INT,             value_transform_long_int);
     320                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UINT,            value_transform_long_uint);
     321                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_LONG,            value_transform_long_long);
     322                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ULONG,           value_transform_long_ulong);
     323                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_INT64,           value_transform_long_int64);
     324                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UINT64,          value_transform_long_uint64);
     325                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ENUM,            value_transform_long_long);
     326                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_FLAGS,           value_transform_long_ulong);
     327                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_FLOAT,           value_transform_long_float);
     328                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_DOUBLE,          value_transform_long_double);
     329                 :        527 :   g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_STRING,          value_transform_long_string);
     330                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_CHAR,            value_transform_ulong_s8);
     331                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UCHAR,           value_transform_ulong_u8);
     332                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_BOOLEAN,         value_transform_ulong_bool);
     333                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_INT,             value_transform_ulong_int);
     334                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UINT,            value_transform_ulong_uint);
     335                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_LONG,            value_transform_ulong_long);
     336                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ULONG,           value_transform_ulong_ulong);
     337                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_INT64,           value_transform_ulong_int64);
     338                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UINT64,          value_transform_ulong_uint64);
     339                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ENUM,            value_transform_ulong_long);
     340                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
     341                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLOAT,           value_transform_ulong_float);
     342                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_DOUBLE,          value_transform_ulong_double);
     343                 :        527 :   g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_STRING,          value_transform_ulong_string);
     344                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_CHAR,            value_transform_int64_s8);
     345                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UCHAR,           value_transform_int64_u8);
     346                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_BOOLEAN,         value_transform_int64_bool);
     347                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT,             value_transform_int64_int);
     348                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UINT,            value_transform_int64_uint);
     349                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_LONG,            value_transform_int64_long);
     350                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_ULONG,           value_transform_int64_ulong);
     351                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT64,           value_transform_int64_int64);
     352                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UINT64,          value_transform_int64_uint64);
     353                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_ENUM,            value_transform_int64_long);
     354                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_FLAGS,           value_transform_int64_ulong);
     355                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_FLOAT,           value_transform_int64_float);
     356                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_DOUBLE,          value_transform_int64_double);
     357                 :        527 :   g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_STRING,          value_transform_int64_string);
     358                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_CHAR,            value_transform_uint64_s8);
     359                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UCHAR,           value_transform_uint64_u8);
     360                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_BOOLEAN,         value_transform_uint64_bool);
     361                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_INT,             value_transform_uint64_int);
     362                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT,            value_transform_uint64_uint);
     363                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_LONG,            value_transform_uint64_long);
     364                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_ULONG,           value_transform_uint64_ulong);
     365                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_INT64,           value_transform_uint64_int64);
     366                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT64,          value_transform_uint64_uint64);
     367                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_ENUM,            value_transform_uint64_long);
     368                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_FLAGS,           value_transform_uint64_ulong);
     369                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_FLOAT,           value_transform_uint64_float);
     370                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_DOUBLE,          value_transform_uint64_double);
     371                 :        527 :   g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_STRING,          value_transform_uint64_string);
     372                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_CHAR,            value_transform_long_s8);
     373                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_INT,             value_transform_long_int);
     376                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UINT,            value_transform_long_uint);
     377                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_LONG,            value_transform_long_long);
     378                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ULONG,           value_transform_long_ulong);
     379                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_INT64,           value_transform_long_int64);
     380                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UINT64,          value_transform_long_uint64);
     381                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ENUM,            value_transform_long_long);
     382                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_STRING,          value_transform_enum_string);
     386                 :        527 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_CHAR,            value_transform_ulong_s8);
     387                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_INT,             value_transform_ulong_int);
     390                 :        527 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UINT,            value_transform_ulong_uint);
     391                 :        527 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_LONG,            value_transform_ulong_long);
     392                 :        527 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_ULONG,           value_transform_ulong_ulong);
     393                 :        527 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_INT64,           value_transform_ulong_int64);
     394                 :        527 :   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                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_STRING,          value_transform_flags_string);
     400                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_CHAR,            value_transform_float_s8);
     401                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_INT,             value_transform_float_int);
     404                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UINT,            value_transform_float_uint);
     405                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_LONG,            value_transform_float_long);
     406                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_ULONG,           value_transform_float_ulong);
     407                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_INT64,           value_transform_float_int64);
     408                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_FLOAT,           value_transform_float_float);
     412                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_DOUBLE,          value_transform_float_double);
     413                 :        527 :   g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_STRING,          value_transform_float_string);
     414                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_CHAR,            value_transform_double_s8);
     415                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_INT,             value_transform_double_int);
     418                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UINT,            value_transform_double_uint);
     419                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_LONG,            value_transform_double_long);
     420                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_ULONG,           value_transform_double_ulong);
     421                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_INT64,           value_transform_double_int64);
     422                 :        527 :   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                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_FLOAT,           value_transform_double_float);
     426                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_DOUBLE,          value_transform_double_double);
     427                 :        527 :   g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_STRING,          value_transform_double_string);
     428                 :            :   /* string types */
     429                 :        527 :   g_value_register_transform_func (G_TYPE_STRING,       G_TYPE_STRING,          value_transform_string_string);
     430                 :        527 : }

Generated by: LCOV version 1.14