fwupd_error_to_string:
   26|     22|{
   27|     22|	if (error == FWUPD_ERROR_INTERNAL)
  ------------------
  |  Branch (27:6): [True: 1, False: 21]
  ------------------
   28|      1|		return FWUPD_DBUS_INTERFACE ".Internal";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   29|     21|	if (error == FWUPD_ERROR_VERSION_NEWER)
  ------------------
  |  Branch (29:6): [True: 1, False: 20]
  ------------------
   30|      1|		return FWUPD_DBUS_INTERFACE ".VersionNewer";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   31|     20|	if (error == FWUPD_ERROR_VERSION_SAME)
  ------------------
  |  Branch (31:6): [True: 1, False: 19]
  ------------------
   32|      1|		return FWUPD_DBUS_INTERFACE ".VersionSame";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   33|     19|	if (error == FWUPD_ERROR_ALREADY_PENDING)
  ------------------
  |  Branch (33:6): [True: 1, False: 18]
  ------------------
   34|      1|		return FWUPD_DBUS_INTERFACE ".AlreadyPending";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   35|     18|	if (error == FWUPD_ERROR_AUTH_FAILED)
  ------------------
  |  Branch (35:6): [True: 1, False: 17]
  ------------------
   36|      1|		return FWUPD_DBUS_INTERFACE ".AuthFailed";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   37|     17|	if (error == FWUPD_ERROR_READ)
  ------------------
  |  Branch (37:6): [True: 1, False: 16]
  ------------------
   38|      1|		return FWUPD_DBUS_INTERFACE ".Read";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   39|     16|	if (error == FWUPD_ERROR_WRITE)
  ------------------
  |  Branch (39:6): [True: 1, False: 15]
  ------------------
   40|      1|		return FWUPD_DBUS_INTERFACE ".Write";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   41|     15|	if (error == FWUPD_ERROR_INVALID_FILE)
  ------------------
  |  Branch (41:6): [True: 1, False: 14]
  ------------------
   42|      1|		return FWUPD_DBUS_INTERFACE ".InvalidFile";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   43|     14|	if (error == FWUPD_ERROR_NOT_FOUND)
  ------------------
  |  Branch (43:6): [True: 1, False: 13]
  ------------------
   44|      1|		return FWUPD_DBUS_INTERFACE ".NotFound";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   45|     13|	if (error == FWUPD_ERROR_NOTHING_TO_DO)
  ------------------
  |  Branch (45:6): [True: 1, False: 12]
  ------------------
   46|      1|		return FWUPD_DBUS_INTERFACE ".NothingToDo";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   47|     12|	if (error == FWUPD_ERROR_NOT_SUPPORTED)
  ------------------
  |  Branch (47:6): [True: 1, False: 11]
  ------------------
   48|      1|		return FWUPD_DBUS_INTERFACE ".NotSupported";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   49|     11|	if (error == FWUPD_ERROR_SIGNATURE_INVALID)
  ------------------
  |  Branch (49:6): [True: 1, False: 10]
  ------------------
   50|      1|		return FWUPD_DBUS_INTERFACE ".SignatureInvalid";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   51|     10|	if (error == FWUPD_ERROR_AC_POWER_REQUIRED)
  ------------------
  |  Branch (51:6): [True: 1, False: 9]
  ------------------
   52|      1|		return FWUPD_DBUS_INTERFACE ".AcPowerRequired";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   53|      9|	if (error == FWUPD_ERROR_PERMISSION_DENIED)
  ------------------
  |  Branch (53:6): [True: 1, False: 8]
  ------------------
   54|      1|		return FWUPD_DBUS_INTERFACE ".PermissionDenied";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   55|      8|	if (error == FWUPD_ERROR_BROKEN_SYSTEM)
  ------------------
  |  Branch (55:6): [True: 1, False: 7]
  ------------------
   56|      1|		return FWUPD_DBUS_INTERFACE ".BrokenSystem";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   57|      7|	if (error == FWUPD_ERROR_BATTERY_LEVEL_TOO_LOW)
  ------------------
  |  Branch (57:6): [True: 1, False: 6]
  ------------------
   58|      1|		return FWUPD_DBUS_INTERFACE ".BatteryLevelTooLow";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   59|      6|	if (error == FWUPD_ERROR_NEEDS_USER_ACTION)
  ------------------
  |  Branch (59:6): [True: 1, False: 5]
  ------------------
   60|      1|		return FWUPD_DBUS_INTERFACE ".NeedsUserAction";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   61|      5|	if (error == FWUPD_ERROR_AUTH_EXPIRED)
  ------------------
  |  Branch (61:6): [True: 1, False: 4]
  ------------------
   62|      1|		return FWUPD_DBUS_INTERFACE ".AuthExpired";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   63|      4|	if (error == FWUPD_ERROR_INVALID_DATA)
  ------------------
  |  Branch (63:6): [True: 1, False: 3]
  ------------------
   64|      1|		return FWUPD_DBUS_INTERFACE ".InvalidData";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   65|      3|	if (error == FWUPD_ERROR_TIMED_OUT)
  ------------------
  |  Branch (65:6): [True: 1, False: 2]
  ------------------
   66|      1|		return FWUPD_DBUS_INTERFACE ".TimedOut";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   67|      2|	if (error == FWUPD_ERROR_BUSY)
  ------------------
  |  Branch (67:6): [True: 1, False: 1]
  ------------------
   68|      1|		return FWUPD_DBUS_INTERFACE ".Busy";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   69|      1|	if (error == FWUPD_ERROR_NOT_REACHABLE)
  ------------------
  |  Branch (69:6): [True: 1, False: 0]
  ------------------
   70|      1|		return FWUPD_DBUS_INTERFACE ".NotReachable";
  ------------------
  |  |   30|      1|#define FWUPD_DBUS_INTERFACE "org.freedesktop.fwupd"
  ------------------
   71|      0|	return NULL;
   72|      1|}
fwupd_error_quark:
  145|    475|{
  146|    475|	static GQuark quark = 0;
  147|    475|	if (!quark) {
  ------------------
  |  Branch (147:6): [True: 1, False: 474]
  ------------------
  148|      1|		quark = g_quark_from_static_string("FwupdError");
  149|     23|		for (gint i = 0; i < FWUPD_ERROR_LAST; i++) {
  ------------------
  |  |  150|     23|#define FWUPD_ERROR_LAST 22
  ------------------
  |  Branch (149:20): [True: 22, False: 1]
  ------------------
  150|     22|			g_dbus_error_register_error(quark, i, fwupd_error_to_string(i));
  151|     22|		}
  152|      1|	}
  153|    475|	return quark;
  154|    475|}

fu_byte_array_append_uint32:
  129|    128|{
  130|    128|	guint8 buf[4]; /* nocheck:zero-init */
  131|    128|	fu_memwrite_uint32(buf, data, endian);
  132|    128|	g_byte_array_append(array, buf, sizeof(buf));
  133|    128|}
fu_byte_array_append_bytes:
  164|    741|{
  165|       |	g_byte_array_append(array, g_bytes_get_data(bytes, NULL), g_bytes_get_size(bytes));
  166|    741|}
fu_byte_array_set_size:
  230|    869|{
  231|    869|	guint oldlength = array->len;
  232|    869|	g_return_if_fail(array != NULL);
  ------------------
  |  |  650|    869|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    869|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    869|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    869|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    869|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    869| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    869|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    869|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    869|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 869, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    869|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    869|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    869|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    869|   else                                         \
  |  |  |  |  |  |  |  | 1240|    869|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    869|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    869|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    869|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    869|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 869, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    869|      { } \
  |  |  653|    869|    else \
  |  |  654|    869|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    869|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    869|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 869]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  233|    869|	g_return_if_fail(length < G_MAXUINT);
  ------------------
  |  |  650|    869|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    869|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    869|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    869|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    869|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    869| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    869|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    869|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    869|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 869, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    869|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    869|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    869|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    869|   else                                         \
  |  |  |  |  |  |  |  | 1240|    869|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    869|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    869|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    869|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    869|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 869, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    869|      { } \
  |  |  653|    869|    else \
  |  |  654|    869|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    869|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    869|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 869]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|    869|	g_byte_array_set_size(array, length);
  235|    869|	if (length > oldlength)
  ------------------
  |  Branch (235:6): [True: 869, False: 0]
  ------------------
  236|    869|		memset(array->data + oldlength, data, length - oldlength);
  237|    869|}

fu_chunk_set_address:
  111|  1.09k|{
  112|  1.09k|	g_return_if_fail(FU_IS_CHUNK(self));
  ------------------
  |  |  650|  1.09k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.09k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.09k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.09k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.09k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.09k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.09k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.09k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.09k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.09k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.09k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.09k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.09k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.09k|      { } \
  |  |  653|  1.09k|    else \
  |  |  654|  1.09k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuChunk"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.09k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.09k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.09k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  113|  1.09k|	self->address = address;
  114|  1.09k|}
fu_chunk_get_address:
  128|    505|{
  129|    505|	g_return_val_if_fail(FU_IS_CHUNK(self), G_MAXSIZE);
  ------------------
  |  |  663|    505|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    505|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    505|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    505|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    505|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    505| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    505|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    505|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    505|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 505, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    505|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    505|   else                                         \
  |  |  |  |  |  |  |  | 1240|    505|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    505|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    505|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 505, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    505|      { } \
  |  |  666|    505|    else \
  |  |  667|    505|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuChunk"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    505|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    505|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 505]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  130|    505|	return self->address;
  131|    505|}
fu_chunk_get_data:
  145|    505|{
  146|    505|	g_return_val_if_fail(FU_IS_CHUNK(self), NULL);
  ------------------
  |  |  663|    505|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    505|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    505|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    505|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    505|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    505| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    505|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    505|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    505|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 505, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    505|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    505|   else                                         \
  |  |  |  |  |  |  |  | 1240|    505|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    505|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    505|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 505, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    505|      { } \
  |  |  666|    505|    else \
  |  |  667|    505|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuChunk"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    505|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    505|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 505]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  147|    505|	return self->data;
  148|    505|}
fu_chunk_get_data_sz:
  190|  2.10k|{
  191|  2.10k|	g_return_val_if_fail(FU_IS_CHUNK(self), G_MAXSIZE);
  ------------------
  |  |  663|  2.10k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.10k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.10k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.10k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.10k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.10k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.10k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.10k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.10k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.10k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.10k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.10k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.10k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.10k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.10k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.10k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.10k|      { } \
  |  |  666|  2.10k|    else \
  |  |  667|  2.10k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuChunk"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.10k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.10k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.10k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  192|  2.10k|	return self->data_sz;
  193|  2.10k|}
fu_chunk_set_bytes:
  214|  1.09k|{
  215|  1.09k|	g_return_if_fail(FU_IS_CHUNK(self));
  ------------------
  |  |  650|  1.09k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.09k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.09k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.09k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.09k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.09k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.09k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.09k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.09k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.09k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.09k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.09k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.09k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.09k|      { } \
  |  |  653|  1.09k|    else \
  |  |  654|  1.09k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuChunk"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.09k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.09k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.09k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  216|       |
  217|       |	/* not changed */
  218|  1.09k|	if (self->bytes == bytes)
  ------------------
  |  Branch (218:6): [True: 0, False: 1.09k]
  ------------------
  219|      0|		return;
  220|       |
  221|  1.09k|	g_clear_pointer(&self->bytes, g_bytes_unref);
  ------------------
  |  |  136|  1.09k|  G_STMT_START                                           \
  |  |  ------------------
  |  |  |  |  985|  1.09k|#define G_STMT_START  do
  |  |  ------------------
  |  |  137|  1.09k|  {                                                      \
  |  |  138|  1.09k|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|  1.09k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  139|  1.09k|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  ------------------
  |  |  |  |   39|  1.09k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  140|  1.09k|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  ------------------
  |  |  |  |   39|  1.09k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  141|  1.09k|    *_pp = NULL;                                         \
  |  |  142|  1.09k|    if (_ptr)                                            \
  |  |  ------------------
  |  |  |  Branch (142:9): [True: 0, False: 1.09k]
  |  |  ------------------
  |  |  143|  1.09k|      (destroy) (_ptr);                                  \
  |  |  144|  1.09k|  }                                                      \
  |  |  145|  1.09k|  G_STMT_END                                             \
  |  |  ------------------
  |  |  |  |  993|  1.09k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.09k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  146|  1.09k|  GLIB_AVAILABLE_MACRO_IN_2_34
  ------------------
  222|  1.09k|	if (bytes != NULL) {
  ------------------
  |  Branch (222:6): [True: 1.09k, False: 0]
  ------------------
  223|  1.09k|		self->bytes = g_bytes_ref(bytes);
  224|       |		self->data = g_bytes_get_data(bytes, NULL);
  225|  1.09k|		self->data_sz = g_bytes_get_size(bytes);
  226|  1.09k|	}
  227|  1.09k|}
fu_chunk_bytes_new:
  286|  1.09k|{
  287|  1.09k|	FuChunk *self = g_object_new(FU_TYPE_CHUNK, NULL);
  ------------------
  |  |   13|  1.09k|#define FU_TYPE_CHUNK (fu_chunk_get_type())
  ------------------
  288|  1.09k|	fu_chunk_set_bytes(self, bytes);
  289|  1.09k|	return self;
  290|  1.09k|}
fu-chunk.c:fu_chunk_class_init:
  535|      1|{
  536|      1|	GObjectClass *object_class = G_OBJECT_CLASS(klass);
  ------------------
  |  |   61|      1|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  537|      1|	object_class->finalize = fu_chunk_finalize;
  538|      1|}
fu-chunk.c:fu_chunk_finalize:
  526|  1.09k|{
  527|  1.09k|	FuChunk *self = FU_CHUNK(object);
  528|  1.09k|	if (self->bytes != NULL)
  ------------------
  |  Branch (528:6): [True: 1.09k, False: 0]
  ------------------
  529|  1.09k|		g_bytes_unref(self->bytes);
  530|  1.09k|	G_OBJECT_CLASS(fu_chunk_parent_class)->finalize(object);
  ------------------
  |  |   61|  1.09k|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|  1.09k|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|  1.09k|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  531|  1.09k|}
fu-chunk.c:fu_chunk_init:
  542|  1.09k|{
  543|  1.09k|}

fu_size_checked_add:
  112|  1.07k|{
  113|  1.07k|	gsize tmp = 0;
  114|  1.07k|	if (!g_size_checked_add(&tmp, a, b))
  ------------------
  |  |  472|  1.07k|    (!__builtin_add_overflow(a, b, dest))
  ------------------
  |  Branch (114:6): [True: 0, False: 1.07k]
  ------------------
  115|      0|		return G_MAXSIZE;
  ------------------
  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  116|  1.07k|	return tmp;
  117|  1.07k|}
fu_size_checked_inc:
  135|  3.33k|{
  136|  3.33k|	gsize value_new;
  137|       |
  138|  3.33k|	g_return_val_if_fail(value != NULL, FALSE);
  ------------------
  |  |  663|  3.33k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.33k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.33k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.33k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.33k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.33k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.33k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.33k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.33k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.33k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.33k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.33k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.33k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.33k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.33k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  3.33k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.33k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.33k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.33k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.33k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.33k|      { } \
  |  |  666|  3.33k|    else \
  |  |  667|  3.33k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  3.33k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.33k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.33k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  139|  3.33k|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|  3.33k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.33k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.33k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.33k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.33k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.33k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.33k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.33k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  6.66k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.33k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.33k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.33k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.33k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.33k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.33k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  3.33k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.33k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.33k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.33k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.33k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.33k|      { } \
  |  |  666|  3.33k|    else \
  |  |  667|  3.33k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  3.33k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.33k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.33k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  140|       |
  141|  3.33k|	value_new = *value;
  142|  3.33k|	if (!g_size_checked_add(&value_new, *value, len)) {
  ------------------
  |  |  472|  3.33k|    (!__builtin_add_overflow(a, b, dest))
  ------------------
  |  Branch (142:6): [True: 0, False: 3.33k]
  ------------------
  143|      0|		g_set_error(error,
  144|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  145|      0|			    FWUPD_ERROR_INVALID_DATA,
  146|      0|			    "0x%zx + 0x%zx would overflow",
  147|      0|			    *value,
  148|      0|			    len);
  149|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  150|      0|	}
  151|       |
  152|       |	/* success */
  153|  3.33k|	*value = value_new;
  154|  3.33k|	return TRUE;
  ------------------
  |  |  929|  3.33k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  3.33k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  155|  3.33k|}

fu_crc32_step:
  395|    128|{
  396|    128|	const guint bitwidth = sizeof(crc) * 8;
  397|       |
  398|    128|	g_return_val_if_fail(kind < FU_CRC_KIND_LAST, 0x0);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  399|    128|	g_return_val_if_fail(crc_map[kind].bitwidth == 32, 0x0);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  400|       |
  401|  40.6k|	for (gsize i = 0; i < bufsz; ++i) {
  ------------------
  |  Branch (401:20): [True: 40.5k, False: 128]
  ------------------
  402|  40.5k|		guint32 tmp = crc_map[kind].reflected ? fu_crc_reflect8(buf[i]) : buf[i];
  ------------------
  |  Branch (402:17): [True: 40.5k, False: 0]
  ------------------
  403|  40.5k|		crc ^= tmp << (bitwidth - 8);
  404|   364k|		for (guint8 bit = 0; bit < 8; bit++) {
  ------------------
  |  Branch (404:24): [True: 324k, False: 40.5k]
  ------------------
  405|   324k|			if (crc & (1ul << (bitwidth - 1))) {
  ------------------
  |  Branch (405:8): [True: 162k, False: 162k]
  ------------------
  406|   162k|				crc = (crc << 1) ^ crc_map[kind].poly;
  407|   162k|			} else {
  408|   162k|				crc = (crc << 1);
  409|   162k|			}
  410|   324k|		}
  411|  40.5k|	}
  412|    128|	return crc;
  413|    128|}
fu_crc32_done:
  447|    128|{
  448|    128|	g_return_val_if_fail(kind < FU_CRC_KIND_LAST, 0x0);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  449|    128|	g_return_val_if_fail(crc_map[kind].bitwidth == 32, 0x0);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  450|    128|	crc = crc_map[kind].reflected ? fu_crc_reflect(crc, crc_map[kind].bitwidth) : crc;
  ------------------
  |  Branch (450:8): [True: 128, False: 0]
  ------------------
  451|    128|	return crc ^ crc_map[kind].xorout;
  452|    128|}
fu_crc32:
  468|    128|{
  469|    128|	g_return_val_if_fail(kind < FU_CRC_KIND_LAST, 0x0);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  470|    128|	g_return_val_if_fail(crc_map[kind].bitwidth == 32, 0x0);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  471|       |
  472|       |	/* use hand-crafted assembly with pre-computed table for raw speed */
  473|    128|	if (kind == FU_CRC_KIND_B32_STANDARD)
  ------------------
  |  Branch (473:6): [True: 0, False: 128]
  ------------------
  474|      0|		return crc32_z(0, buf, bufsz);
  475|       |
  476|    128|	return fu_crc32_done(kind, fu_crc32_step(kind, buf, bufsz, crc_map[kind].init));
  477|    128|}
fu-crc.c:fu_crc_reflect8:
   66|  40.5k|{
   67|  40.5k|	guint8 val = 0;
   68|   364k|	for (guint8 bit = 0; bit < 8; bit++) {
  ------------------
  |  Branch (68:23): [True: 324k, False: 40.5k]
  ------------------
   69|   324k|		if (data & 0x01)
  ------------------
  |  Branch (69:7): [True: 42.7k, False: 281k]
  ------------------
   70|  42.7k|			FU_BIT_SET(val, 7 - bit);
  ------------------
  |  |   26|  42.7k|#define FU_BIT_SET(val, pos) ((val) |= (1ull << (pos))) /* nocheck:blocked */
  ------------------
   71|   324k|		data = (data >> 1);
   72|   324k|	}
   73|  40.5k|	return val;
   74|  40.5k|}
fu-crc.c:fu_crc_reflect:
   78|    128|{
   79|    128|	guint32 val = 0;
   80|  4.22k|	for (guint bit = 0; bit < bitwidth; bit++) {
  ------------------
  |  Branch (80:22): [True: 4.09k, False: 128]
  ------------------
   81|  4.09k|		if (data & 0x01)
  ------------------
  |  Branch (81:7): [True: 1.99k, False: 2.10k]
  ------------------
   82|  1.99k|			val |= 1ul << ((bitwidth - 1) - bit); /* nocheck:blocked */
   83|  4.09k|		data = (data >> 1);
   84|  4.09k|	}
   85|    128|	return val;
   86|    128|}

fu_dfu_firmware_get_footer_len:
   53|    931|{
   54|    931|	FuDfuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   37|    931|#define GET_PRIVATE(o) (fu_dfu_firmware_get_instance_private(o))
  ------------------
   55|    931|	g_return_val_if_fail(FU_IS_DFU_FIRMWARE(self), 0x0);
  ------------------
  |  |  663|    931|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    931|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    931|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    931|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    931|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    931| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    931|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    931|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    931|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 931, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    931|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    931|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    931|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    931|   else                                         \
  |  |  |  |  |  |  |  | 1240|    931|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    931|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    931|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    931|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    931|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 931, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    931|      { } \
  |  |  666|    931|    else \
  |  |  667|    931|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    931|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    931|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 931]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   56|    931|	return priv->footer_len;
   57|    931|}
fu_dfu_firmware_set_version:
  193|    567|{
  194|    567|	FuDfuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   37|    567|#define GET_PRIVATE(o) (fu_dfu_firmware_get_instance_private(o))
  ------------------
  195|    567|	g_return_if_fail(FU_IS_DFU_FIRMWARE(self));
  ------------------
  |  |  650|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    567|      { } \
  |  |  653|    567|    else \
  |  |  654|    567|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  196|    567|	priv->dfu_version = version;
  197|    567|}
fu_dfu_firmware_parse_footer:
  220|    499|{
  221|    499|	FuDfuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   37|    499|#define GET_PRIVATE(o) (fu_dfu_firmware_get_instance_private(o))
  ------------------
  222|    499|	gsize bufsz;
  223|    499|	const guint8 *buf;
  224|    499|	g_autoptr(FuStructDfuFtr) st = NULL;
  ------------------
  |  | 1381|    499|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    499|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  225|    499|	g_autoptr(GBytes) fw = NULL;
  ------------------
  |  | 1381|    499|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    499|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  226|       |
  227|    499|	fw = fu_input_stream_read_bytes(stream, 0, G_MAXSIZE, NULL, error);
  ------------------
  |  |   89|    499|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|    499|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  228|    499|	if (fw == NULL)
  ------------------
  |  Branch (228:6): [True: 0, False: 499]
  ------------------
  229|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  230|    499|	buf = g_bytes_get_data(fw, &bufsz);
  231|       |
  232|       |	/* validate buffer is large enough for footer */
  233|    499|	if (bufsz < FU_STRUCT_DFU_FTR_SIZE) {
  ------------------
  |  |   48|    499|#define FU_STRUCT_DFU_FTR_SIZE 0x10
  ------------------
  |  Branch (233:6): [True: 6, False: 493]
  ------------------
  234|      6|		g_set_error(error,
  235|      6|			    FWUPD_ERROR,
  ------------------
  |  |   15|      6|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  236|      6|			    FWUPD_ERROR_INVALID_DATA,
  237|      6|			    "file too small for DFU footer: 0x%x < 0x%x",
  238|      6|			    (guint)bufsz,
  239|      6|			    (guint)FU_STRUCT_DFU_FTR_SIZE);
  ------------------
  |  |   48|      6|#define FU_STRUCT_DFU_FTR_SIZE 0x10
  ------------------
  240|      6|		return FALSE;
  ------------------
  |  |  925|      6|#define	FALSE	(0)
  ------------------
  241|      6|	}
  242|       |
  243|       |	/* parse */
  244|    493|	st = fu_struct_dfu_ftr_parse_stream(stream, bufsz - FU_STRUCT_DFU_FTR_SIZE, error);
  ------------------
  |  |   48|    493|#define FU_STRUCT_DFU_FTR_SIZE 0x10
  ------------------
  245|    493|	if (st == NULL)
  ------------------
  |  Branch (245:6): [True: 37, False: 456]
  ------------------
  246|     37|		return FALSE;
  ------------------
  |  |  925|     37|#define	FALSE	(0)
  ------------------
  247|    456|	priv->vid = fu_struct_dfu_ftr_get_vid(st);
  248|    456|	priv->pid = fu_struct_dfu_ftr_get_pid(st);
  249|    456|	priv->release = fu_struct_dfu_ftr_get_release(st);
  250|    456|	priv->dfu_version = fu_struct_dfu_ftr_get_ver(st);
  251|    456|	priv->footer_len = fu_struct_dfu_ftr_get_len(st);
  252|       |
  253|       |	/* verify the checksum */
  254|    456|	if ((flags & FU_FIRMWARE_PARSE_FLAG_IGNORE_CHECKSUM) == 0) {
  ------------------
  |  Branch (254:6): [True: 0, False: 456]
  ------------------
  255|      0|		guint32 crc_new = 0;
  256|      0|		if (!fu_crc32_safe(FU_CRC_KIND_B32_JAMCRC,
  ------------------
  |  Branch (256:7): [True: 0, False: 0]
  ------------------
  257|      0|				   buf,
  258|      0|				   bufsz,
  259|      0|				   0x0,
  260|      0|				   bufsz - 4,
  261|      0|				   &crc_new,
  262|      0|				   error))
  263|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  264|      0|		if (fu_struct_dfu_ftr_get_crc(st) != crc_new) {
  ------------------
  |  Branch (264:7): [True: 0, False: 0]
  ------------------
  265|      0|			g_set_error(error,
  266|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  267|      0|				    FWUPD_ERROR_INTERNAL,
  268|      0|				    "CRC failed, expected 0x%04x, got 0x%04x",
  269|      0|				    crc_new,
  270|      0|				    fu_struct_dfu_ftr_get_crc(st));
  271|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  272|      0|		}
  273|      0|	}
  274|       |
  275|       |	/* check reported length */
  276|    456|	if (priv->footer_len > bufsz) {
  ------------------
  |  Branch (276:6): [True: 4, False: 452]
  ------------------
  277|      4|		g_set_error(error,
  278|      4|			    FWUPD_ERROR,
  ------------------
  |  |   15|      4|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  279|      4|			    FWUPD_ERROR_INTERNAL,
  280|      4|			    "reported footer size 0x%04x larger than file 0x%04x",
  281|      4|			    (guint)priv->footer_len,
  282|      4|			    (guint)bufsz);
  283|      4|		return FALSE;
  ------------------
  |  |  925|      4|#define	FALSE	(0)
  ------------------
  284|      4|	}
  285|    452|	if (priv->footer_len < FU_STRUCT_DFU_FTR_SIZE) {
  ------------------
  |  |   48|    452|#define FU_STRUCT_DFU_FTR_SIZE 0x10
  ------------------
  |  Branch (285:6): [True: 32, False: 420]
  ------------------
  286|     32|		g_set_error(error,
  287|     32|			    FWUPD_ERROR,
  ------------------
  |  |   15|     32|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  288|     32|			    FWUPD_ERROR_INTERNAL,
  289|     32|			    "reported footer size 0x%02x < expected size 0x%02x",
  290|     32|			    (guint)priv->footer_len,
  291|     32|			    (guint)FU_STRUCT_DFU_FTR_SIZE);
  ------------------
  |  |   48|     32|#define FU_STRUCT_DFU_FTR_SIZE 0x10
  ------------------
  292|     32|		return FALSE;
  ------------------
  |  |  925|     32|#define	FALSE	(0)
  ------------------
  293|     32|	}
  294|       |
  295|       |	/* success */
  296|    420|	return TRUE;
  ------------------
  |  |  929|    420|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    420|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  297|    452|}
fu_dfu_firmware_append_footer:
  326|    128|{
  327|    128|	FuDfuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   37|    128|#define GET_PRIVATE(o) (fu_dfu_firmware_get_instance_private(o))
  ------------------
  328|    128|	g_autoptr(GByteArray) buf = g_byte_array_new();
  ------------------
  |  | 1381|    128|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    128|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  329|    128|	g_autoptr(FuStructDfuFtr) st = fu_struct_dfu_ftr_new();
  ------------------
  |  | 1381|    128|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    128|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  330|       |
  331|       |	/* add the raw firmware data, the footer-less-CRC, and only then the CRC */
  332|    128|	fu_byte_array_append_bytes(buf, contents);
  333|    128|	fu_struct_dfu_ftr_set_release(st, priv->release);
  334|    128|	fu_struct_dfu_ftr_set_pid(st, priv->pid);
  335|    128|	fu_struct_dfu_ftr_set_vid(st, priv->vid);
  336|    128|	fu_struct_dfu_ftr_set_ver(st, priv->dfu_version);
  337|    128|	g_byte_array_append(buf, st->buf->data, st->buf->len - sizeof(guint32));
  338|    128|	fu_byte_array_append_uint32(buf,
  339|    128|				    fu_crc32(FU_CRC_KIND_B32_JAMCRC, buf->data, buf->len),
  340|    128|				    G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    128|#define G_LITTLE_ENDIAN 1234
  ------------------
  341|    128|	return g_steal_pointer(&buf);
  ------------------
  |  |  247|    128|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  342|    128|}
fu-dfu-firmware.c:fu_dfu_firmware_class_init:
  406|      1|{
  407|      1|	FuFirmwareClass *firmware_class = FU_FIRMWARE_CLASS(klass);
  408|      1|	fu_firmware_set_size_max(firmware_class, 128 * FU_MB);
  ------------------
  |  |   81|      1|#define FU_MB (1ull << 20)
  ------------------
  409|      1|	firmware_class->validate = fu_dfu_firmware_validate;
  410|      1|	firmware_class->export = fu_dfu_firmware_export;
  411|      1|	firmware_class->parse = fu_dfu_firmware_parse;
  412|      1|	firmware_class->write = fu_dfu_firmware_write;
  413|      1|	firmware_class->build = fu_dfu_firmware_build;
  414|      1|}
fu-dfu-firmware.c:fu_dfu_firmware_init:
  394|    567|{
  395|    567|	FuDfuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   37|    567|#define GET_PRIVATE(o) (fu_dfu_firmware_get_instance_private(o))
  ------------------
  396|    567|	priv->vid = 0xffff;
  397|    567|	priv->pid = 0xffff;
  398|    567|	priv->release = 0xffff;
  399|    567|	priv->dfu_version = FU_DFU_FIRMWARE_VERSION_DFU_1_0;
  ------------------
  |  |   32|    567|#define FU_DFU_FIRMWARE_VERSION_DFU_1_0 (0x0100)
  ------------------
  400|    567|	fu_firmware_add_flag(FU_FIRMWARE(self), FU_FIRMWARE_FLAG_HAS_CHECKSUM);
  401|    567|	fu_firmware_add_flag(FU_FIRMWARE(self), FU_FIRMWARE_FLAG_HAS_VID_PID);
  402|    567|}

fu-dfuse-firmware.c:fu_dfuse_firmware_class_init:
  305|      1|{
  306|      1|	FuFirmwareClass *firmware_class = FU_FIRMWARE_CLASS(klass);
  307|      1|	fu_firmware_add_image_gtype(firmware_class, FU_TYPE_FIRMWARE);
  ------------------
  |  |   18|      1|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
  308|      1|	firmware_class->validate = fu_dfuse_firmware_validate;
  309|      1|	firmware_class->parse = fu_dfuse_firmware_parse;
  310|      1|	firmware_class->write = fu_dfuse_firmware_write;
  311|      1|	fu_firmware_set_images_max(firmware_class, 255);
  312|      1|	fu_firmware_set_size_max(firmware_class, 256 * FU_MB);
  ------------------
  |  |   81|      1|#define FU_MB (1ull << 20)
  ------------------
  313|      1|}
fu-dfuse-firmware.c:fu_dfuse_firmware_validate:
  128|    567|{
  129|    567|	return fu_struct_dfuse_hdr_validate_stream(stream, offset, error);
  130|    567|}
fu-dfuse-firmware.c:fu_dfuse_firmware_parse:
  137|    499|{
  138|    499|	FuDfuFirmware *dfu_firmware = FU_DFU_FIRMWARE(firmware);
  139|    499|	gsize offset = 0;
  140|    499|	gsize streamsz = 0;
  141|    499|	guint8 targets = 0;
  142|    499|	g_autoptr(FuStructDfuseHdr) st_hdr = NULL;
  ------------------
  |  | 1381|    499|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    499|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  143|       |
  144|       |	/* DFU footer first */
  145|    499|	if (!fu_dfu_firmware_parse_footer(dfu_firmware, stream, flags, error))
  ------------------
  |  Branch (145:6): [True: 79, False: 420]
  ------------------
  146|     79|		return FALSE;
  ------------------
  |  |  925|     79|#define	FALSE	(0)
  ------------------
  147|       |
  148|       |	/* parse */
  149|    420|	st_hdr = fu_struct_dfuse_hdr_parse_stream(stream, offset, error);
  150|    420|	if (st_hdr == NULL)
  ------------------
  |  Branch (150:6): [True: 0, False: 420]
  ------------------
  151|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  152|       |
  153|       |	/* check image size */
  154|    420|	if (!fu_input_stream_size(stream, &streamsz, error))
  ------------------
  |  Branch (154:6): [True: 0, False: 420]
  ------------------
  155|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  156|    420|	if (fu_dfu_firmware_get_footer_len(dfu_firmware) > streamsz) {
  ------------------
  |  Branch (156:6): [True: 0, False: 420]
  ------------------
  157|      0|		g_set_error(error,
  158|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  159|      0|			    FWUPD_ERROR_INVALID_DATA,
  160|      0|			    "footer length 0x%x exceeds stream size 0x%x",
  161|      0|			    (guint)fu_dfu_firmware_get_footer_len(dfu_firmware),
  162|      0|			    (guint)streamsz);
  163|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  164|      0|	}
  165|    420|	if (fu_struct_dfuse_hdr_get_image_size(st_hdr) !=
  ------------------
  |  Branch (165:6): [True: 91, False: 329]
  ------------------
  166|    420|	    streamsz - fu_dfu_firmware_get_footer_len(dfu_firmware)) {
  167|     91|		g_set_error(error,
  168|     91|			    FWUPD_ERROR,
  ------------------
  |  |   15|     91|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  169|     91|			    FWUPD_ERROR_INTERNAL,
  170|     91|			    "invalid DfuSe image size, "
  171|     91|			    "got %" G_GUINT32_FORMAT ", "
  172|     91|			    "expected %zu",
  173|     91|			    fu_struct_dfuse_hdr_get_image_size(st_hdr),
  174|     91|			    streamsz - fu_dfu_firmware_get_footer_len(dfu_firmware));
  175|     91|		return FALSE;
  ------------------
  |  |  925|     91|#define	FALSE	(0)
  ------------------
  176|     91|	}
  177|       |
  178|       |	/* parse the image targets */
  179|    329|	targets = fu_struct_dfuse_hdr_get_targets(st_hdr);
  180|    329|	if (!fu_size_checked_inc(&offset, st_hdr->buf->len, error)) {
  ------------------
  |  Branch (180:6): [True: 0, False: 329]
  ------------------
  181|      0|		g_prefix_error_literal(error, "DfuSe header offset overflow: ");
  182|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  183|      0|	}
  184|       |
  185|    457|	for (guint i = 0; i < targets; i++) {
  ------------------
  |  Branch (185:20): [True: 329, False: 128]
  ------------------
  186|    329|		g_autoptr(FuFirmware) image = NULL;
  ------------------
  |  | 1381|    329|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    329|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  187|    329|		image = fu_dfuse_firmware_image_parse_stream(FU_DFUSE_FIRMWARE(firmware),
  188|    329|							     stream,
  189|    329|							     &offset,
  190|    329|							     error);
  191|    329|		if (image == NULL)
  ------------------
  |  Branch (191:7): [True: 201, False: 128]
  ------------------
  192|    201|			return FALSE;
  ------------------
  |  |  925|    201|#define	FALSE	(0)
  ------------------
  193|    128|		if (!fu_firmware_add_image(firmware, image, error))
  ------------------
  |  Branch (193:7): [True: 0, False: 128]
  ------------------
  194|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  195|    128|	}
  196|    128|	return TRUE;
  ------------------
  |  |  929|    128|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    128|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  197|    329|}
fu-dfuse-firmware.c:fu_dfuse_firmware_image_parse_stream:
   70|    329|{
   71|    329|	guint chunks;
   72|    329|	g_autoptr(FuFirmware) image = fu_firmware_new();
  ------------------
  |  | 1381|    329|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    329|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   73|    329|	g_autoptr(FuStructDfuseImage) st_img = NULL;
  ------------------
  |  | 1381|    329|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    329|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   74|       |
   75|       |	/* verify image signature */
   76|    329|	st_img = fu_struct_dfuse_image_parse_stream(stream, *offset, error);
   77|    329|	if (st_img == NULL)
  ------------------
  |  Branch (77:6): [True: 79, False: 250]
  ------------------
   78|     79|		return NULL;
   79|       |
   80|       |	/* set properties */
   81|    250|	fu_firmware_set_idx(image, fu_struct_dfuse_image_get_alt_setting(st_img));
   82|    250|	if (fu_struct_dfuse_image_get_target_named(st_img) == 0x01) {
  ------------------
  |  Branch (82:6): [True: 102, False: 148]
  ------------------
   83|    102|		g_autofree gchar *target_name = fu_struct_dfuse_image_get_target_name(st_img);
  ------------------
  |  | 1386|    102|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|    102|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   84|    102|		fu_firmware_set_id(image, target_name);
   85|    102|	}
   86|       |
   87|       |	/* no chunks */
   88|    250|	chunks = fu_struct_dfuse_image_get_chunks(st_img);
   89|    250|	if (chunks == 0) {
  ------------------
  |  Branch (89:6): [True: 1, False: 249]
  ------------------
   90|      1|		g_set_error_literal(error,
   91|      1|				    FWUPD_ERROR,
  ------------------
  |  |   15|      1|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   92|      1|				    FWUPD_ERROR_INVALID_FILE,
   93|      1|				    "DfuSe image has no chunks");
   94|      1|		return NULL;
   95|      1|	}
   96|    249|	if (chunks > FU_DFUSE_FIRMWARE_CHUNKS_MAX) {
  ------------------
  |  |   28|    249|#define FU_DFUSE_FIRMWARE_CHUNKS_MAX 10000
  ------------------
  |  Branch (96:6): [True: 62, False: 187]
  ------------------
   97|     62|		g_set_error(error,
   98|     62|			    FWUPD_ERROR,
  ------------------
  |  |   15|     62|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   99|     62|			    FWUPD_ERROR_INVALID_DATA,
  100|     62|			    "excessive chunk count: %u",
  101|     62|			    chunks);
  102|     62|		return NULL;
  103|     62|	}
  104|       |
  105|       |	/* parse chunks */
  106|    187|	if (!fu_size_checked_inc(offset, st_img->buf->len, error)) {
  ------------------
  |  Branch (106:6): [True: 0, False: 187]
  ------------------
  107|      0|		g_prefix_error_literal(error, "DfuSe image offset overflow: ");
  108|      0|		return NULL;
  109|      0|	}
  110|       |
  111|  1.28k|	for (guint j = 0; j < chunks; j++) {
  ------------------
  |  Branch (111:20): [True: 1.15k, False: 128]
  ------------------
  112|  1.15k|		g_autoptr(FuChunk) chk = NULL;
  ------------------
  |  | 1381|  1.15k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  1.15k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  113|  1.15k|		chk = fu_dfuse_firmware_image_chunk_parse(self, stream, offset, error);
  114|  1.15k|		if (chk == NULL)
  ------------------
  |  Branch (114:7): [True: 59, False: 1.09k]
  ------------------
  115|     59|			return NULL;
  116|  1.09k|		fu_firmware_add_chunk(image, chk);
  117|  1.09k|	}
  118|       |
  119|       |	/* success */
  120|    128|	return g_steal_pointer(&image);
  ------------------
  |  |  247|    128|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  121|    187|}
fu-dfuse-firmware.c:fu_dfuse_firmware_image_chunk_parse:
   35|  1.15k|{
   36|  1.15k|	g_autoptr(FuChunk) chk = NULL;
  ------------------
  |  | 1381|  1.15k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  1.15k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   37|  1.15k|	g_autoptr(FuStructDfuseElement) st_ele = NULL;
  ------------------
  |  | 1381|  1.15k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  1.15k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   38|  1.15k|	g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|  1.15k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  1.15k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   39|       |
   40|       |	/* create new chunk */
   41|  1.15k|	st_ele = fu_struct_dfuse_element_parse_stream(stream, *offset, error);
   42|  1.15k|	if (st_ele == NULL)
  ------------------
  |  Branch (42:6): [True: 51, False: 1.10k]
  ------------------
   43|     51|		return NULL;
   44|  1.10k|	if (!fu_size_checked_inc(offset, st_ele->buf->len, error)) {
  ------------------
  |  Branch (44:6): [True: 0, False: 1.10k]
  ------------------
   45|      0|		g_prefix_error_literal(error, "DfuSe element offset overflow: ");
   46|      0|		return NULL;
   47|      0|	}
   48|       |
   49|  1.10k|	blob = fu_input_stream_read_bytes(stream,
   50|  1.10k|					  *offset,
   51|  1.10k|					  fu_struct_dfuse_element_get_size(st_ele),
   52|  1.10k|					  NULL,
   53|  1.10k|					  error);
   54|  1.10k|	if (blob == NULL)
  ------------------
  |  Branch (54:6): [True: 8, False: 1.09k]
  ------------------
   55|      8|		return NULL;
   56|  1.09k|	chk = fu_chunk_bytes_new(blob);
   57|  1.09k|	fu_chunk_set_address(chk, fu_struct_dfuse_element_get_address(st_ele));
   58|  1.09k|	if (!fu_size_checked_inc(offset, fu_chunk_get_data_sz(chk), error))
  ------------------
  |  Branch (58:6): [True: 0, False: 1.09k]
  ------------------
   59|      0|		return NULL;
   60|       |
   61|       |	/* success */
   62|  1.09k|	return g_steal_pointer(&chk);
  ------------------
  |  |  247|  1.09k|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
   63|  1.09k|}
fu-dfuse-firmware.c:fu_dfuse_firmware_write:
  252|    128|{
  253|    128|	FuDfuseFirmware *self = FU_DFUSE_FIRMWARE(firmware);
  254|    128|	gsize totalsz = 0;
  255|    128|	g_autoptr(FuStructDfuseHdr) st_hdr = fu_struct_dfuse_hdr_new();
  ------------------
  |  | 1381|    128|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    128|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  256|    128|	g_autoptr(GBytes) blob_noftr = NULL;
  ------------------
  |  | 1381|    128|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    128|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  257|    128|	g_autoptr(GPtrArray) blobs = NULL;
  ------------------
  |  | 1381|    128|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    128|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  258|    128|	g_autoptr(GPtrArray) images = NULL;
  ------------------
  |  | 1381|    128|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    128|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  259|       |
  260|       |	/* create mutable output buffer */
  261|    128|	blobs = g_ptr_array_new_with_free_func((GDestroyNotify)g_bytes_unref);
  262|    128|	images = fu_firmware_get_images(FU_FIRMWARE(firmware));
  263|    236|	for (guint i = 0; i < images->len; i++) {
  ------------------
  |  Branch (263:20): [True: 108, False: 128]
  ------------------
  264|    108|		FuFirmware *img = g_ptr_array_index(images, i);
  ------------------
  |  |  149|    108|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  265|    108|		g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|    108|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    108|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  266|    108|		blob = fu_dfuse_firmware_write_image(self, img, error);
  267|    108|		if (blob == NULL)
  ------------------
  |  Branch (267:7): [True: 0, False: 108]
  ------------------
  268|      0|			return NULL;
  269|    108|		if (!fu_size_checked_inc(&totalsz, g_bytes_get_size(blob), error))
  ------------------
  |  Branch (269:7): [True: 0, False: 108]
  ------------------
  270|      0|			return NULL;
  271|    108|		g_ptr_array_add(blobs, g_steal_pointer(&blob));
  ------------------
  |  |  247|    108|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  272|    108|	}
  273|       |
  274|       |	/* DfuSe header */
  275|    128|	fu_struct_dfuse_hdr_set_image_size(st_hdr, st_hdr->buf->len + totalsz);
  276|    128|	if (images->len > G_MAXUINT8) {
  ------------------
  |  |   76|    128|#define G_MAXUINT8	((guint8) 0xff)
  ------------------
  |  Branch (276:6): [True: 0, False: 128]
  ------------------
  277|      0|		g_set_error(error,
  278|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  279|      0|			    FWUPD_ERROR_INTERNAL,
  280|      0|			    "too many (%u) images to write DfuSe file",
  281|      0|			    images->len);
  282|      0|		return NULL;
  283|      0|	}
  284|    128|	fu_struct_dfuse_hdr_set_targets(st_hdr, (guint8)images->len);
  285|       |
  286|       |	/* copy images */
  287|    236|	for (guint i = 0; i < blobs->len; i++) {
  ------------------
  |  Branch (287:20): [True: 108, False: 128]
  ------------------
  288|    108|		GBytes *blob = g_ptr_array_index(blobs, i);
  ------------------
  |  |  149|    108|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  289|    108|		fu_byte_array_append_bytes(st_hdr->buf, blob);
  290|    108|	}
  291|       |
  292|       |	/* return blob */
  293|    128|	blob_noftr = fu_struct_dfuse_hdr_to_bytes(st_hdr);
  294|    128|	return fu_dfu_firmware_append_footer(FU_DFU_FIRMWARE(firmware), blob_noftr, error);
  295|    128|}
fu-dfuse-firmware.c:fu_dfuse_firmware_write_image:
  211|    108|{
  212|    108|	gsize totalsz = 0;
  213|    108|	g_autoptr(FuStructDfuseImage) st_img = fu_struct_dfuse_image_new();
  ------------------
  |  | 1381|    108|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    108|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  214|    108|	g_autoptr(GPtrArray) blobs = NULL;
  ------------------
  |  | 1381|    108|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    108|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  215|    108|	g_autoptr(GPtrArray) chunks = NULL;
  ------------------
  |  | 1381|    108|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    108|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  216|       |
  217|       |	/* get total size */
  218|    108|	blobs = g_ptr_array_new_with_free_func((GDestroyNotify)g_bytes_unref);
  219|    108|	chunks = fu_firmware_get_chunks(image, error);
  220|    108|	if (chunks == NULL)
  ------------------
  |  Branch (220:6): [True: 0, False: 108]
  ------------------
  221|      0|		return NULL;
  222|    613|	for (guint i = 0; i < chunks->len; i++) {
  ------------------
  |  Branch (222:20): [True: 505, False: 108]
  ------------------
  223|    505|		FuChunk *chk = g_ptr_array_index(chunks, i);
  ------------------
  |  |  149|    505|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  224|    505|		GBytes *bytes = fu_dfuse_firmware_chunk_write(self, chk);
  225|    505|		g_ptr_array_add(blobs, bytes);
  226|    505|		if (!fu_size_checked_inc(&totalsz, g_bytes_get_size(bytes), error))
  ------------------
  |  Branch (226:7): [True: 0, False: 505]
  ------------------
  227|      0|			return NULL;
  228|    505|	}
  229|       |
  230|       |	/* add prefix */
  231|    108|	fu_struct_dfuse_image_set_alt_setting(st_img, fu_firmware_get_idx(image));
  232|    108|	if (fu_firmware_get_id(image) != NULL) {
  ------------------
  |  Branch (232:6): [True: 56, False: 52]
  ------------------
  233|     56|		fu_struct_dfuse_image_set_target_named(st_img, 0x01);
  234|     56|		if (!fu_struct_dfuse_image_set_target_name(st_img,
  ------------------
  |  Branch (234:7): [True: 0, False: 56]
  ------------------
  235|     56|							   fu_firmware_get_id(image),
  236|     56|							   error))
  237|      0|			return NULL;
  238|     56|	}
  239|    108|	fu_struct_dfuse_image_set_target_size(st_img, totalsz);
  240|    108|	fu_struct_dfuse_image_set_chunks(st_img, chunks->len);
  241|       |
  242|       |	/* copy data */
  243|    613|	for (guint i = 0; i < blobs->len; i++) {
  ------------------
  |  Branch (243:20): [True: 505, False: 108]
  ------------------
  244|    505|		GBytes *blob = g_ptr_array_index(blobs, i);
  ------------------
  |  |  149|    505|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  245|    505|		fu_byte_array_append_bytes(st_img->buf, blob);
  246|    505|	}
  247|    108|	return fu_struct_dfuse_image_to_bytes(st_img);
  248|    108|}
fu-dfuse-firmware.c:fu_dfuse_firmware_chunk_write:
  201|    505|{
  202|    505|	g_autoptr(FuStructDfuseElement) st_ele = fu_struct_dfuse_element_new();
  ------------------
  |  | 1381|    505|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    505|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  203|    505|	fu_struct_dfuse_element_set_address(st_ele, fu_chunk_get_address(chk));
  204|    505|	fu_struct_dfuse_element_set_size(st_ele, fu_chunk_get_data_sz(chk));
  205|    505|	g_byte_array_append(st_ele->buf, fu_chunk_get_data(chk), fu_chunk_get_data_sz(chk));
  206|    505|	return fu_struct_dfuse_element_to_bytes(st_ele);
  207|    505|}
fu-dfuse-firmware.c:fu_dfuse_firmware_init:
  299|    567|{
  300|    567|	fu_dfu_firmware_set_version(FU_DFU_FIRMWARE(self), FU_DFU_FIRMWARE_VERSION_DFUSE);
  ------------------
  |  |   46|    567|#define FU_DFU_FIRMWARE_VERSION_DFUSE (0x011a)
  ------------------
  301|    567|}

fu_firmware_add_flag:
  107|  1.63k|{
  108|  1.63k|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|  1.63k|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  109|  1.63k|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|  1.63k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.63k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.63k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.63k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.63k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.63k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.63k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.63k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.63k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.63k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.63k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.63k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.63k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.63k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.63k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.63k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.63k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.63k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.63k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.63k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.63k|      { } \
  |  |  653|  1.63k|    else \
  |  |  654|  1.63k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.63k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.63k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.63k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  110|  1.63k|	priv->flags |= flag;
  111|  1.63k|}
fu_firmware_has_flag:
  126|  1.26k|{
  127|  1.26k|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|  1.26k|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  128|  1.26k|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|  1.26k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.26k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.26k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.26k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.26k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.26k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.26k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.26k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.26k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.26k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.26k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.26k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.26k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.26k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.26k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.26k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.26k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.26k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.26k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.26k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.26k|      { } \
  |  |  666|  1.26k|    else \
  |  |  667|  1.26k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  1.26k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.26k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.26k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  129|  1.26k|	return (priv->flags & flag) > 0;
  130|  1.26k|}
fu_firmware_set_id:
  307|    102|{
  308|    102|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    102|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  309|    102|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    102|      { } \
  |  |  653|    102|    else \
  |  |  654|    102|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  310|    102|	g_set_str(&priv->id, id);
  311|    102|}
fu_firmware_get_id:
  325|    164|{
  326|    164|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    164|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  327|    164|	g_return_val_if_fail(FU_IS_FIRMWARE(self), NULL);
  ------------------
  |  |  663|    164|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    164|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    164|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    164|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    164|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    164| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    164|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    164|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    164|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 164, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    164|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    164|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    164|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    164|   else                                         \
  |  |  |  |  |  |  |  | 1240|    164|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    164|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    164|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    164|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    164|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 164, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    164|      { } \
  |  |  666|    164|    else \
  |  |  667|    164|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    164|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    164|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 164]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|    164|	return priv->id;
  329|    164|}
fu_firmware_set_offset:
  377|    499|{
  378|    499|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    499|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  379|    499|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    499|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    499|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    499|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    499|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    499|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    499| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    499|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    499|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    499|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 499, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    499|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    499|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    499|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    499|   else                                         \
  |  |  |  |  |  |  |  | 1240|    499|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    499|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    499|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    499|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    499|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 499, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    499|      { } \
  |  |  653|    499|    else \
  |  |  654|    499|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    499|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    499|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 499]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  380|    499|	priv->offset = offset;
  381|    499|}
fu_firmware_set_parent:
  430|  1.02k|{
  431|  1.02k|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|  1.02k|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  432|  1.02k|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|  1.02k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.02k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.02k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.02k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.02k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.02k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.02k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.02k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.02k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.02k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.02k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.02k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.02k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.02k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.02k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.02k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.02k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.02k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.02k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.02k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.02k|      { } \
  |  |  653|  1.02k|    else \
  |  |  654|  1.02k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.02k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.02k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.02k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  433|       |
  434|  1.02k|	if (priv->parent != NULL)
  ------------------
  |  Branch (434:6): [True: 0, False: 1.02k]
  ------------------
  435|      0|		g_object_remove_weak_pointer(G_OBJECT(priv->parent), (gpointer *)&priv->parent);
  ------------------
  |  |   54|      0|#define G_OBJECT(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
  |  |  ------------------
  |  |  |  |  528|      0|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|      0|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  436|  1.02k|	if (parent != NULL)
  ------------------
  |  Branch (436:6): [True: 128, False: 896]
  ------------------
  437|    128|		g_object_add_weak_pointer(G_OBJECT(parent), (gpointer *)&priv->parent);
  ------------------
  |  |   54|    128|#define G_OBJECT(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
  |  |  ------------------
  |  |  |  |  528|    128|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    128|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  438|  1.02k|	priv->parent = parent;
  439|  1.02k|}
fu_firmware_set_size_max:
  500|      3|{
  501|      3|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(klass);
  502|      3|	cpriv->size_max = size_max;
  503|      3|}
fu_firmware_set_idx:
  535|    250|{
  536|    250|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    250|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  537|    250|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    250|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    250|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    250|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    250|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    250|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    250| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    250|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    250|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    250|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 250, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    250|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    250|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    250|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    250|   else                                         \
  |  |  |  |  |  |  |  | 1240|    250|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    250|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    250|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    250|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    250|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 250, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    250|      { } \
  |  |  653|    250|    else \
  |  |  654|    250|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    250|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    250|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 250]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  538|    250|	priv->idx = idx;
  539|    250|}
fu_firmware_get_idx:
  553|    108|{
  554|    108|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    108|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  555|    108|	g_return_val_if_fail(FU_IS_FIRMWARE(self), G_MAXUINT64);
  ------------------
  |  |  663|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    108|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    108|      { } \
  |  |  666|    108|    else \
  |  |  667|    108|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  556|    108|	return priv->idx;
  557|    108|}
fu_firmware_set_bytes:
  570|    499|{
  571|    499|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    499|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  572|    499|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    499|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    499|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    499|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    499|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    499|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    499| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    499|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    499|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    499|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 499, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    499|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    499|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    499|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    499|   else                                         \
  |  |  |  |  |  |  |  | 1240|    499|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    499|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    499|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    499|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    499|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 499, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    499|      { } \
  |  |  653|    499|    else \
  |  |  654|    499|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    499|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    499|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 499]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  573|    499|	g_return_if_fail(bytes != NULL);
  ------------------
  |  |  650|    499|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    499|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    499|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    499|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    499|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    499| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    499|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    499|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    499|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 499, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    499|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    499|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    499|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    499|   else                                         \
  |  |  |  |  |  |  |  | 1240|    499|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    499|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    499|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    499|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    499|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 499, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    499|      { } \
  |  |  653|    499|    else \
  |  |  654|    499|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    499|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    499|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 499]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  574|    499|	if (priv->bytes == bytes)
  ------------------
  |  Branch (574:6): [True: 0, False: 499]
  ------------------
  575|      0|		return;
  576|    499|	if (priv->bytes != NULL)
  ------------------
  |  Branch (576:6): [True: 0, False: 499]
  ------------------
  577|      0|		g_bytes_unref(priv->bytes);
  578|    499|	priv->bytes = g_bytes_ref(bytes);
  579|       |
  580|       |	/* the input stream is no longer valid */
  581|       |	g_clear_object(&priv->stream);
  ------------------
  |  |  695|    499|#define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
  |  |  ------------------
  |  |  |  |  136|    499|  G_STMT_START                                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|    499|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  137|    499|  {                                                      \
  |  |  |  |  138|    499|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    499|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  139|    499|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    499|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  140|    499|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    499|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  141|    499|    *_pp = NULL;                                         \
  |  |  |  |  142|    499|    if (_ptr)                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (142:9): [True: 0, False: 499]
  |  |  |  |  ------------------
  |  |  |  |  143|    499|      (destroy) (_ptr);                                  \
  |  |  |  |  144|    499|  }                                                      \
  |  |  |  |  145|    499|  G_STMT_END                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|    499|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 499]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  146|    499|  GLIB_AVAILABLE_MACRO_IN_2_34
  |  |  ------------------
  ------------------
  582|    499|}
fu_firmware_get_chunks:
  776|    108|{
  777|    108|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    108|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  778|       |
  779|    108|	g_return_val_if_fail(FU_IS_FIRMWARE(self), NULL);
  ------------------
  |  |  663|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    108|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    108|      { } \
  |  |  666|    108|    else \
  |  |  667|    108|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  780|    108|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    216|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    108|      { } \
  |  |  666|    108|    else \
  |  |  667|    108|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  781|       |
  782|       |	/* set */
  783|    108|	if (priv->chunks != NULL)
  ------------------
  |  Branch (783:6): [True: 108, False: 0]
  ------------------
  784|    108|		return g_ptr_array_ref(priv->chunks);
  785|       |
  786|       |	/* lets build something plausible */
  787|      0|	if (priv->bytes != NULL) {
  ------------------
  |  Branch (787:6): [True: 0, False: 0]
  ------------------
  788|      0|		g_autoptr(GPtrArray) chunks = NULL;
  ------------------
  |  | 1381|      0|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  789|      0|		g_autoptr(FuChunk) chk = NULL;
  ------------------
  |  | 1381|      0|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  790|      0|		chunks = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref);
  791|      0|		chk = fu_chunk_bytes_new(priv->bytes);
  792|      0|		fu_chunk_set_idx(chk, priv->idx);
  793|      0|		fu_chunk_set_address(chk, priv->addr);
  794|      0|		g_ptr_array_add(chunks, g_steal_pointer(&chk));
  ------------------
  |  |  247|      0|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  795|      0|		return g_steal_pointer(&chunks);
  ------------------
  |  |  247|      0|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  796|      0|	}
  797|       |
  798|       |	/* nothing to do */
  799|      0|	g_set_error_literal(error,
  800|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  801|      0|			    FWUPD_ERROR_NOT_FOUND,
  802|      0|			    "no bytes or chunks found in firmware");
  803|       |	return NULL;
  804|      0|}
fu_firmware_add_chunk:
  817|  1.09k|{
  818|  1.09k|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|  1.09k|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  819|  1.09k|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|  1.09k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.09k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.09k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.09k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.09k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.09k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.09k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.09k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.09k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.09k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.09k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.09k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.09k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.09k|      { } \
  |  |  653|  1.09k|    else \
  |  |  654|  1.09k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.09k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.09k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.09k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  820|  1.09k|	g_return_if_fail(FU_IS_CHUNK(chk));
  ------------------
  |  |  650|  1.09k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.09k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.09k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.09k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.09k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.09k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.09k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.09k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.09k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.09k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.09k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.09k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.09k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.09k|      { } \
  |  |  653|  1.09k|    else \
  |  |  654|  1.09k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.09k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.09k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.09k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  821|  1.09k|	if (priv->chunks == NULL)
  ------------------
  |  Branch (821:6): [True: 166, False: 932]
  ------------------
  822|    166|		priv->chunks = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref);
  823|  1.09k|	g_ptr_array_add(priv->chunks, g_object_ref(chk));
  ------------------
  |  |  533|  1.09k|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
  824|  1.09k|}
fu_firmware_parse_stream:
 1095|    567|{
 1096|    567|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1097|    567|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    567|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1098|    567|	gsize streamsz = 0;
 1099|    567|	g_autoptr(FuInputStream) partial_stream = NULL;
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1100|    567|	g_autoptr(FuInputStream) seekable_stream = NULL;
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1101|    567|	g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1102|       |
 1103|    567|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    567|      { } \
  |  |  666|    567|    else \
  |  |  667|    567|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1104|    567|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    567|      { } \
  |  |  666|    567|    else \
  |  |  667|    567|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1105|    567|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.13k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    567|      { } \
  |  |  666|    567|    else \
  |  |  667|    567|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1106|       |
 1107|       |	/* sanity check */
 1108|    567|	if (fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_DONE_PARSE)) {
  ------------------
  |  Branch (1108:6): [True: 0, False: 567]
  ------------------
 1109|      0|		g_set_error_literal(error,
 1110|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1111|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
 1112|      0|				    "firmware object cannot be reused");
 1113|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1114|      0|	}
 1115|       |
 1116|       |	/* ensure the stream is seekable */
 1117|    567|	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|  1.13k|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|    567|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|    567|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|    567|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|    567|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 567]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|    567|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|    567|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 567, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 567]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|    567|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|    567|  else \
  |  |  |  |  |  | 2678|    567|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|    567|  __r; \
  |  |  |  |  |  | 2680|    567|}))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|    567|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    567|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    567|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1117:6): [True: 0, False: 567]
  |  Branch (1117:32): [True: 0, False: 567]
  ------------------
 1118|      0|		blob = fu_input_stream_read_bytes(stream,
 1119|      0|						  offset,
 1120|      0|						  fu_firmware_get_size_max(self) + 0x1,
 1121|      0|						  NULL,
 1122|      0|						  error);
 1123|      0|		if (blob == NULL)
  ------------------
  |  Branch (1123:7): [True: 0, False: 0]
  ------------------
 1124|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1125|      0|		seekable_stream = fu_memory_input_stream_new_from_bytes(blob);
 1126|    567|	} else {
 1127|    567|		seekable_stream = g_object_ref(stream);
  ------------------
  |  |  533|    567|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 1128|    567|	}
 1129|       |
 1130|       |	/* check size */
 1131|    567|	if (!fu_input_stream_size(seekable_stream, &streamsz, error))
  ------------------
  |  Branch (1131:6): [True: 0, False: 567]
  ------------------
 1132|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1133|    567|	if (streamsz <= offset) {
  ------------------
  |  Branch (1133:6): [True: 0, False: 567]
  ------------------
 1134|      0|		g_set_error(error,
 1135|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1136|      0|			    FWUPD_ERROR_NOT_SUPPORTED,
 1137|      0|			    "stream size 0x%x is smaller than offset 0x%x",
 1138|      0|			    (guint)streamsz,
 1139|      0|			    (guint)offset);
 1140|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1141|      0|	}
 1142|       |
 1143|       |	/* optional */
 1144|    567|	if (!fu_firmware_validate_for_offset(self, seekable_stream, offset, &offset, flags, error))
  ------------------
  |  Branch (1144:6): [True: 68, False: 499]
  ------------------
 1145|     68|		return FALSE;
  ------------------
  |  |  925|     68|#define	FALSE	(0)
  ------------------
 1146|    499|	fu_firmware_set_offset(self, offset);
 1147|       |
 1148|       |	/* validate offset hasn't been corrupted */
 1149|    499|	if (offset >= streamsz) {
  ------------------
  |  Branch (1149:6): [True: 0, False: 499]
  ------------------
 1150|      0|		g_set_error(error,
 1151|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1152|      0|			    FWUPD_ERROR_INVALID_FILE,
 1153|      0|			    "offset 0x%x exceeds stream size 0x%x",
 1154|      0|			    (guint)offset,
 1155|      0|			    (guint)streamsz);
 1156|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1157|      0|	}
 1158|       |
 1159|       |	/* save stream size */
 1160|    499|	priv->streamsz = streamsz - offset;
 1161|    499|	if (priv->streamsz == 0) {
  ------------------
  |  Branch (1161:6): [True: 0, False: 499]
  ------------------
 1162|      0|		g_set_error_literal(error,
 1163|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1164|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
 1165|      0|				    "invalid firmware as zero sized");
 1166|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1167|      0|	}
 1168|    499|	{
 1169|    499|		FuFirmwareClassPrivate *cpriv =
 1170|    499|		    fu_firmware_get_class_private(FU_FIRMWARE_GET_CLASS(self));
 1171|    499|		if (cpriv->size_max > 0 && priv->streamsz > cpriv->size_max) {
  ------------------
  |  Branch (1171:7): [True: 499, False: 0]
  |  Branch (1171:30): [True: 0, False: 499]
  ------------------
 1172|      0|			g_autofree gchar *sz_val = g_format_size(priv->streamsz);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1173|      0|			g_autofree gchar *sz_max = g_format_size(cpriv->size_max);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1174|      0|			g_set_error(error,
 1175|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1176|      0|				    FWUPD_ERROR_INVALID_FILE,
 1177|      0|				    "%s firmware is too large (%s, limit %s)",
 1178|      0|				    G_OBJECT_TYPE_NAME(self),
  ------------------
  |  |  108|      0|#define G_OBJECT_TYPE_NAME(object)  (g_type_name (G_OBJECT_TYPE (object)))
  |  |  ------------------
  |  |  |  |   98|      0|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  |  |  ------------------
  |  |  |  |  |  |  646|      0|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  657|      0|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1179|      0|				    sz_val,
 1180|      0|				    sz_max);
 1181|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1182|      0|		}
 1183|       |
 1184|    499|#ifndef SUPPORTED_BUILD
 1185|       |		/* we want all firmware subclasses to set this now */
 1186|    499|		if (G_OBJECT_TYPE(self) != FU_TYPE_FIRMWARE &&
  ------------------
  |  |   98|    499|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  ------------------
  |  |  |  |  646|    499|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  ------------------
  |  |  |  |  |  |  657|    499|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              		if (G_OBJECT_TYPE(self) != FU_TYPE_FIRMWARE &&
  ------------------
  |  |   18|    998|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
  |  Branch (1186:7): [True: 499, False: 0]
  ------------------
 1187|    499|		    cpriv->size_max == FU_FIRMWARE_SIZE_MAX_DEFAULT) {
  ------------------
  |  |   13|    499|#define FU_FIRMWARE_SIZE_MAX_DEFAULT ((100 * FU_MB) + 1)
  |  |  ------------------
  |  |  |  |   81|    499|#define FU_MB (1ull << 20)
  |  |  ------------------
  ------------------
  |  Branch (1187:7): [True: 0, False: 499]
  ------------------
 1188|      0|			g_autofree gchar *sz = g_format_size(priv->streamsz);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1189|      0|			g_critical("%s did not set firmware max size with "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1190|      0|				   "fu_firmware_set_size_max(); stream was %s",
 1191|      0|				   G_OBJECT_TYPE_NAME(self),
 1192|      0|				   sz);
 1193|      0|		}
 1194|    499|#endif
 1195|    499|	}
 1196|       |
 1197|       |	/* any FuFirmware subclass that gets past this point might have allocated memory in
 1198|       |	 * ->tokenize() or ->parse() and needs to be destroyed before parsing again */
 1199|      0|	fu_firmware_add_flag(self, FU_FIRMWARE_FLAG_DONE_PARSE);
 1200|       |
 1201|       |	/* this allows devices to skip reading the old firmware if the GType is unsuitable */
 1202|    499|	if (klass->check_compatible != NULL)
  ------------------
  |  Branch (1202:6): [True: 0, False: 499]
  ------------------
 1203|      0|		fu_firmware_add_flag(self, FU_FIRMWARE_FLAG_HAS_CHECK_COMPATIBLE);
 1204|       |
 1205|       |	/* save stream */
 1206|    499|	if (offset == 0) {
  ------------------
  |  Branch (1206:6): [True: 499, False: 0]
  ------------------
 1207|    499|		partial_stream = g_object_ref(seekable_stream);
  ------------------
  |  |  533|    499|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 1208|    499|	} else {
 1209|      0|		partial_stream =
 1210|      0|		    fu_partial_input_stream_new(seekable_stream, offset, priv->streamsz, error);
 1211|      0|		if (partial_stream == NULL) {
  ------------------
  |  Branch (1211:7): [True: 0, False: 0]
  ------------------
 1212|      0|			g_prefix_error_literal(error, "failed to cut firmware: ");
 1213|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1214|      0|		}
 1215|      0|	}
 1216|       |
 1217|       |	/* cache */
 1218|    499|	if (flags & FU_FIRMWARE_PARSE_FLAG_CACHE_BLOB) {
  ------------------
  |  Branch (1218:6): [True: 499, False: 0]
  ------------------
 1219|    499|		if (blob == NULL) {
  ------------------
  |  Branch (1219:7): [True: 499, False: 0]
  ------------------
 1220|    499|			blob = fu_input_stream_read_bytes(partial_stream,
 1221|    499|							  0x0,
 1222|    499|							  priv->streamsz,
 1223|    499|							  NULL,
 1224|    499|							  error);
 1225|    499|			if (blob == NULL)
  ------------------
  |  Branch (1225:8): [True: 0, False: 499]
  ------------------
 1226|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1227|    499|		}
 1228|    499|		fu_firmware_set_bytes(self, blob);
 1229|    499|	}
 1230|    499|	if (flags & FU_FIRMWARE_PARSE_FLAG_CACHE_STREAM)
  ------------------
  |  Branch (1230:6): [True: 0, False: 499]
  ------------------
 1231|      0|		g_set_object(&priv->stream, partial_stream);
  ------------------
  |  |  763|      0|  (G_GNUC_EXTENSION ({ \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  764|      0|    G_STATIC_ASSERT (sizeof *(object_ptr) == sizeof (new_object)); \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  765|      0|    /* Only one access, please; work around type aliasing */ \
  |  |  766|      0|    union { char *in; GObject **out; } _object_ptr; \
  |  |  767|      0|    _object_ptr.in = (char *) (object_ptr); \
  |  |  768|      0|    /* Check types match */ \
  |  |  769|      0|    (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |                   (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (769:13): [Folded, False: 0]
  |  |  ------------------
  |  |  770|      0|    (g_set_object) (_object_ptr.out, (GObject *) new_object); \
  |  |  771|      0|  })) \
  |  |  772|    499|  GOBJECT_AVAILABLE_MACRO_IN_2_44
  ------------------
 1232|       |
 1233|       |	/* optional */
 1234|    499|	if (klass->tokenize != NULL) {
  ------------------
  |  Branch (1234:6): [True: 0, False: 499]
  ------------------
 1235|      0|		if (!klass->tokenize(self, partial_stream, flags, error))
  ------------------
  |  Branch (1235:7): [True: 0, False: 0]
  ------------------
 1236|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1237|      0|	}
 1238|       |
 1239|       |	/* optional */
 1240|    499|	if (klass->parse_full != NULL)
  ------------------
  |  Branch (1240:6): [True: 0, False: 499]
  ------------------
 1241|      0|		return klass->parse_full(self, seekable_stream, offset, flags, error);
 1242|    499|	if (klass->parse != NULL)
  ------------------
  |  Branch (1242:6): [True: 499, False: 0]
  ------------------
 1243|    499|		return klass->parse(self, partial_stream, flags, error);
 1244|       |
 1245|       |	/* verify alignment */
 1246|      0|	if (streamsz % (1ull << priv->alignment) != 0) {
  ------------------
  |  Branch (1246:6): [True: 0, False: 0]
  ------------------
 1247|      0|		g_autofree gchar *str = NULL;
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1248|      0|		str = g_format_size_full(1ull << priv->alignment, G_FORMAT_SIZE_IEC_UNITS);
 1249|      0|		g_set_error(error,
 1250|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1251|      0|			    FWUPD_ERROR_INVALID_FILE,
 1252|      0|			    "raw firmware is not aligned to 0x%x (%s)",
 1253|      0|			    (guint)(1ull << priv->alignment),
 1254|      0|			    str);
 1255|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1256|      0|	}
 1257|       |
 1258|       |	/* success */
 1259|      0|	return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1260|      0|}
fu_firmware_write_array:
 1666|    128|{
 1667|    128|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1668|    128|	g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|    128|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    128|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1669|       |
 1670|    128|	g_return_val_if_fail(FU_IS_FIRMWARE(self), NULL);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1671|    128|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    256|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1672|       |
 1673|       |	/* subclassed */
 1674|    128|	if (klass->write != NULL)
  ------------------
  |  Branch (1674:6): [True: 128, False: 0]
  ------------------
 1675|    128|		return klass->write(self, error);
 1676|       |
 1677|       |	/* just add default blob */
 1678|      0|	blob = fu_firmware_get_bytes_with_patches(self, error);
 1679|      0|	if (blob == NULL)
  ------------------
  |  Branch (1679:6): [True: 0, False: 0]
  ------------------
 1680|      0|		return NULL;
 1681|      0|	return g_bytes_unref_to_array(g_steal_pointer(&blob));
  ------------------
  |  |  247|      0|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 1682|      0|}
fu_firmware_add_image_gtype:
 1904|      1|{
 1905|      1|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(klass);
 1906|       |
 1907|      1|	g_return_if_fail(FU_IS_FIRMWARE_CLASS(klass));
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1908|      1|	g_return_if_fail(type != G_TYPE_INVALID);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1909|      1|	g_return_if_fail(cpriv->image_gtypes_cnt < FU_FIRMWARE_IMAGE_GTYPES_MAX);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1910|       |
 1911|      1|	g_type_ensure(type);
 1912|      1|	cpriv->image_gtypes[cpriv->image_gtypes_cnt++] = type;
 1913|      1|}
fu_firmware_add_image:
 1987|    128|{
 1988|    128|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    128|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1989|       |
 1990|    128|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1991|    128|	g_return_val_if_fail(FU_IS_FIRMWARE(img), FALSE);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1992|    128|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    256|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1993|       |
 1994|       |	/* check depth */
 1995|    128|	if (priv->depth > FU_FIRMWARE_IMAGE_DEPTH_MAX) {
  ------------------
  |  |   82|    128|#define FU_FIRMWARE_IMAGE_DEPTH_MAX 50
  ------------------
  |  Branch (1995:6): [True: 0, False: 128]
  ------------------
 1996|      0|		g_set_error(error,
 1997|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1998|      0|			    FWUPD_ERROR_INVALID_DATA,
 1999|      0|			    "images are nested too deep, limit is %u",
 2000|      0|			    (guint)FU_FIRMWARE_IMAGE_DEPTH_MAX);
  ------------------
  |  |   82|      0|#define FU_FIRMWARE_IMAGE_DEPTH_MAX 50
  ------------------
 2001|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2002|      0|	}
 2003|       |
 2004|       |	/* check image is a permissible GType */
 2005|    128|	if (!fu_firmware_check_image_gtype(self, G_OBJECT_TYPE(img), error))
  ------------------
  |  |   98|    128|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  ------------------
  |  |  |  |  646|    128|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  ------------------
  |  |  |  |  |  |  657|    128|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2005:6): [True: 0, False: 128]
  ------------------
 2006|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2007|       |
 2008|       |	/* dedupe */
 2009|    128|	if (priv->flags & FU_FIRMWARE_FLAG_DEDUPE_ID) {
  ------------------
  |  Branch (2009:6): [True: 0, False: 128]
  ------------------
 2010|      0|		for (guint i = 0; i < priv->images->len; i++) {
  ------------------
  |  Branch (2010:21): [True: 0, False: 0]
  ------------------
 2011|      0|			FuFirmware *img_tmp = g_ptr_array_index(priv->images, i);
  ------------------
  |  |  149|      0|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
 2012|      0|			if (g_strcmp0(fu_firmware_get_id(img_tmp), fu_firmware_get_id(img)) == 0) {
  ------------------
  |  Branch (2012:8): [True: 0, False: 0]
  ------------------
 2013|      0|				g_ptr_array_remove_index(priv->images, i);
 2014|      0|				break;
 2015|      0|			}
 2016|      0|		}
 2017|      0|	}
 2018|    128|	if (priv->flags & FU_FIRMWARE_FLAG_DEDUPE_IDX) {
  ------------------
  |  Branch (2018:6): [True: 0, False: 128]
  ------------------
 2019|      0|		for (guint i = 0; i < priv->images->len; i++) {
  ------------------
  |  Branch (2019:21): [True: 0, False: 0]
  ------------------
 2020|      0|			FuFirmware *img_tmp = g_ptr_array_index(priv->images, i);
  ------------------
  |  |  149|      0|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
 2021|      0|			if (fu_firmware_get_idx(img_tmp) == fu_firmware_get_idx(img)) {
  ------------------
  |  Branch (2021:8): [True: 0, False: 0]
  ------------------
 2022|      0|				g_ptr_array_remove_index(priv->images, i);
 2023|      0|				break;
 2024|      0|			}
 2025|      0|		}
 2026|      0|	}
 2027|       |
 2028|       |	/* sanity check */
 2029|    128|	{
 2030|    128|		FuFirmwareClassPrivate *cpriv =
 2031|    128|		    fu_firmware_get_class_private(FU_FIRMWARE_GET_CLASS(self));
 2032|    128|		if (cpriv->images_max > 0 && priv->images->len >= cpriv->images_max) {
  ------------------
  |  Branch (2032:7): [True: 128, False: 0]
  |  Branch (2032:32): [True: 0, False: 128]
  ------------------
 2033|      0|			g_set_error(error,
 2034|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 2035|      0|				    FWUPD_ERROR_INVALID_DATA,
 2036|      0|				    "too many images, limit is %u",
 2037|      0|				    cpriv->images_max);
 2038|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2039|      0|		}
 2040|    128|	}
 2041|       |
 2042|    128|	g_ptr_array_add(priv->images, g_object_ref(img));
  ------------------
  |  |  533|    128|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 2043|       |
 2044|       |	/* set the other way around */
 2045|    128|	fu_firmware_set_parent(img, self);
 2046|    128|	fu_firmware_set_depth(img, priv->depth + 1);
 2047|       |
 2048|       |	/* success */
 2049|    128|	return TRUE;
  ------------------
  |  |  929|    128|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    128|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2050|    128|}
fu_firmware_set_images_max:
 2063|      1|{
 2064|      1|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(klass);
 2065|      1|	cpriv->images_max = images_max;
 2066|      1|}
fu_firmware_get_images:
 2188|    128|{
 2189|    128|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    128|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 2190|    128|	g_autoptr(GPtrArray) imgs = NULL;
  ------------------
  |  | 1381|    128|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    128|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 2191|       |
 2192|    128|	g_return_val_if_fail(FU_IS_FIRMWARE(self), NULL);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2193|       |
 2194|    128|	imgs = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref);
 2195|    236|	for (guint i = 0; i < priv->images->len; i++) {
  ------------------
  |  Branch (2195:20): [True: 108, False: 128]
  ------------------
 2196|    108|		FuFirmware *img = g_ptr_array_index(priv->images, i);
  ------------------
  |  |  149|    108|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
 2197|    108|		g_ptr_array_add(imgs, g_object_ref(img));
  ------------------
  |  |  533|    108|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 2198|    108|	}
 2199|    128|	return g_steal_pointer(&imgs);
  ------------------
  |  |  247|    128|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 2200|    128|}
fu_firmware_new:
 2837|    329|{
 2838|    329|	FuFirmware *self = g_object_new(FU_TYPE_FIRMWARE, NULL);
  ------------------
  |  |   18|    329|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
 2839|    329|	return FU_FIRMWARE(self);
 2840|    329|}
fu-firmware.c:fu_firmware_class_init:
 2801|      1|{
 2802|      1|	GObjectClass *object_class = G_OBJECT_CLASS(klass);
  ------------------
  |  |   61|      1|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2803|      1|	GParamSpec *pspec;
 2804|       |
 2805|      1|	object_class->finalize = fu_firmware_finalize;
 2806|      1|	object_class->get_property = fu_firmware_get_property;
 2807|      1|	object_class->set_property = fu_firmware_set_property;
 2808|      1|	object_class->constructed = fu_firmware_constructed;
 2809|      1|	fu_firmware_set_size_max(klass, FU_FIRMWARE_SIZE_MAX_DEFAULT);
  ------------------
  |  |   13|      1|#define FU_FIRMWARE_SIZE_MAX_DEFAULT ((100 * FU_MB) + 1)
  |  |  ------------------
  |  |  |  |   81|      1|#define FU_MB (1ull << 20)
  |  |  ------------------
  ------------------
 2810|       |
 2811|       |	/**
 2812|       |	 * FuFirmware:parent:
 2813|       |	 *
 2814|       |	 * The firmware parent.
 2815|       |	 *
 2816|       |	 * Since: 1.8.2
 2817|       |	 */
 2818|      1|	pspec = g_param_spec_object("parent",
 2819|      1|				    NULL,
 2820|      1|				    NULL,
 2821|      1|				    FU_TYPE_FIRMWARE,
  ------------------
  |  |   18|      1|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
 2822|      1|				    G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_NAME);
 2823|      1|	g_object_class_install_property(object_class, PROP_PARENT, pspec);
 2824|      1|}
fu-firmware.c:fu_firmware_finalize:
 2777|    896|{
 2778|    896|	FuFirmware *self = FU_FIRMWARE(object);
 2779|    896|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    896|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 2780|    896|	g_free(priv->version);
 2781|    896|	g_free(priv->id);
 2782|    896|	g_free(priv->filename);
 2783|    896|	if (priv->bytes != NULL)
  ------------------
  |  Branch (2783:6): [True: 499, False: 397]
  ------------------
 2784|    499|		g_bytes_unref(priv->bytes);
 2785|    896|	if (priv->stream != NULL)
  ------------------
  |  Branch (2785:6): [True: 0, False: 896]
  ------------------
 2786|      0|		g_object_unref(priv->stream);
 2787|    896|	if (priv->chunks != NULL)
  ------------------
  |  Branch (2787:6): [True: 166, False: 730]
  ------------------
 2788|    166|		g_ptr_array_unref(priv->chunks);
 2789|    896|	if (priv->patches != NULL)
  ------------------
  |  Branch (2789:6): [True: 0, False: 896]
  ------------------
 2790|      0|		g_ptr_array_unref(priv->patches);
 2791|    896|	if (priv->magic != NULL)
  ------------------
  |  Branch (2791:6): [True: 0, False: 896]
  ------------------
 2792|      0|		g_ptr_array_unref(priv->magic);
 2793|    896|	if (priv->parent != NULL)
  ------------------
  |  Branch (2793:6): [True: 0, False: 896]
  ------------------
 2794|      0|		g_object_remove_weak_pointer(G_OBJECT(priv->parent), (gpointer *)&priv->parent);
  ------------------
  |  |   54|      0|#define G_OBJECT(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
  |  |  ------------------
  |  |  |  |  528|      0|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|      0|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2795|    896|	g_ptr_array_unref(priv->images);
 2796|    896|	G_OBJECT_CLASS(fu_firmware_parent_class)->finalize(object);
  ------------------
  |  |   61|    896|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    896|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    896|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2797|    896|}
fu-firmware.c:fu_firmware_set_property:
 2741|    896|{
 2742|    896|	FuFirmware *self = FU_FIRMWARE(object);
 2743|    896|	switch (prop_id) {
 2744|    896|	case PROP_PARENT:
  ------------------
  |  Branch (2744:2): [True: 896, False: 0]
  ------------------
 2745|    896|		fu_firmware_set_parent(self, g_value_get_object(value));
 2746|    896|		break;
 2747|      0|	default:
  ------------------
  |  Branch (2747:2): [True: 0, False: 896]
  ------------------
 2748|      0|		G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
  ------------------
  |  |  691|      0|    G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec))
  |  |  ------------------
  |  |  |  |  668|      0|#define G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, pspec) \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  669|      0|G_STMT_START { \
  |  |  |  |  670|      0|  GObject *_glib__object = (GObject*) (object); \
  |  |  |  |  671|      0|  GParamSpec *_glib__pspec = (GParamSpec*) (pspec); \
  |  |  |  |  672|      0|  guint _glib__property_id = (property_id); \
  |  |  |  |  673|      0|  g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'", \
  |  |  |  |  ------------------
  |  |  |  |  |  |  362|      0|#define g_warning(...)  g_log (G_LOG_DOMAIN,         \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  363|      0|                               G_LOG_LEVEL_WARNING,  \
  |  |  |  |  |  |  364|      0|                               __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  674|      0|             __FILE__, __LINE__, \
  |  |  |  |  675|      0|             (pname), \
  |  |  |  |  676|      0|             _glib__property_id, \
  |  |  |  |  677|      0|             _glib__pspec->name, \
  |  |  |  |  678|      0|             g_type_name (G_PARAM_SPEC_TYPE (_glib__pspec)), \
  |  |  |  |  679|      0|             G_OBJECT_TYPE_NAME (_glib__object)); \
  |  |  |  |  680|      0|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2749|      0|		break;
 2750|    896|	}
 2751|    896|}
fu-firmware.c:fu_firmware_constructed:
 2762|    896|{
 2763|    896|	FuFirmware *self = FU_FIRMWARE(obj);
 2764|    896|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 2765|    896|	if (klass->add_magic != NULL)
  ------------------
  |  Branch (2765:6): [True: 0, False: 896]
  ------------------
 2766|      0|		klass->add_magic(self);
 2767|    896|	if (G_TYPE_FROM_CLASS(klass) != FU_TYPE_FIRMWARE && klass->parse_full == NULL &&
  ------------------
  |  |  657|    896|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  ------------------
              	if (G_TYPE_FROM_CLASS(klass) != FU_TYPE_FIRMWARE && klass->parse_full == NULL &&
  ------------------
  |  |   18|  1.79k|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
  |  Branch (2767:6): [True: 567, False: 329]
  |  Branch (2767:54): [True: 567, False: 0]
  ------------------
 2768|    567|	    klass->parse == NULL)
  ------------------
  |  Branch (2768:6): [True: 0, False: 567]
  ------------------
 2769|      0|		fu_firmware_add_flag(self, FU_FIRMWARE_FLAG_IS_ABSTRACT);
 2770|       |
 2771|       |	/* chain up to parent */
 2772|    896|	G_OBJECT_CLASS(fu_firmware_parent_class)->constructed(obj);
  ------------------
  |  |   61|    896|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    896|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    896|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2773|    896|}
fu-firmware.c:fu_firmware_init:
 2755|    896|{
 2756|    896|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    896|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 2757|    896|	priv->images = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref);
 2758|    896|}
fu-firmware.c:fu_firmware_fuzzer_iface_init:
 3134|      1|{
 3135|      1|	iface->test_input = fu_firmware_fuzzer_test_input;
 3136|      1|	iface->build_example = fu_firmware_fuzzer_build_example;
 3137|      1|}
fu-firmware.c:fu_firmware_fuzzer_test_input:
 3070|    567|{
 3071|    567|	FuFirmware *self = FU_FIRMWARE(fuzzer);
 3072|    567|	g_autoptr(GByteArray) buf_out = NULL;
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 3073|    567|	g_autoptr(FuInputStream) stream = NULL;
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 3074|       |
 3075|    567|	stream = fu_memory_input_stream_new_from_data(buf->data, buf->len, NULL);
 3076|    567|	if (!fu_firmware_parse_stream(
  ------------------
  |  Branch (3076:6): [True: 439, False: 128]
  ------------------
 3077|    567|		self,
 3078|    567|		stream,
 3079|    567|		0x0,
 3080|    567|		FU_FIRMWARE_PARSE_FLAG_NO_SEARCH | FU_FIRMWARE_PARSE_FLAG_CACHE_BLOB |
 3081|    567|		    FU_FIRMWARE_PARSE_FLAG_IGNORE_VID_PID | FU_FIRMWARE_PARSE_FLAG_IGNORE_CHECKSUM,
 3082|    567|		error))
 3083|    439|		return FALSE;
  ------------------
  |  |  925|    439|#define	FALSE	(0)
  ------------------
 3084|    128|	buf_out = fu_firmware_write_array(self, error);
 3085|    128|	if (buf_out == NULL)
  ------------------
  |  Branch (3085:6): [True: 0, False: 128]
  ------------------
 3086|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3087|       |
 3088|       |	/* success */
 3089|    128|	return TRUE;
  ------------------
  |  |  929|    128|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    128|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3090|    128|}
fu-firmware.c:fu_firmware_get_class_private:
   76|    760|{
   77|    760|	return G_TYPE_CLASS_GET_PRIVATE(klass, FU_TYPE_FIRMWARE, FuFirmwareClassPrivate);
  ------------------
  |  |  706|    760|#define G_TYPE_CLASS_GET_PRIVATE(klass, g_type, c_type)   ((c_type*) g_type_class_get_private ((GTypeClass*) (klass), (g_type)))
  ------------------
   78|    760|}
fu-firmware.c:fu_firmware_validate_for_offset:
 1040|    567|{
 1041|    567|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1042|    567|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    567|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1043|    567|	gsize streamsz = 0;
 1044|       |
 1045|       |	/* not implemented */
 1046|    567|	if (klass->validate == NULL)
  ------------------
  |  Branch (1046:6): [True: 0, False: 567]
  ------------------
 1047|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1048|       |
 1049|       |	/* fuzzing */
 1050|    567|	if (!fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_ALWAYS_SEARCH) &&
  ------------------
  |  Branch (1050:6): [True: 567, False: 0]
  ------------------
 1051|    567|	    (flags & FU_FIRMWARE_PARSE_FLAG_NO_SEARCH) > 0) {
  ------------------
  |  Branch (1051:6): [True: 567, False: 0]
  ------------------
 1052|    567|		return klass->validate(self, stream, offset, error);
 1053|    567|	}
 1054|       |
 1055|       |	/* try all the magic values, if provided */
 1056|      0|	if (priv->magic != NULL)
  ------------------
  |  Branch (1056:6): [True: 0, False: 0]
  ------------------
 1057|      0|		return fu_firmware_validate_with_magic(self, stream, offset, offset_found, error);
 1058|       |
 1059|       |	/* limit the size of firmware we search as brute force is expensive */
 1060|      0|	if (!fu_input_stream_size(stream, &streamsz, error))
  ------------------
  |  Branch (1060:6): [True: 0, False: 0]
  ------------------
 1061|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1062|      0|	if (streamsz < FU_FIRMWARE_SEARCH_MAGIC_BUFSZ_MAX) {
  ------------------
  |  |   84|      0|#define FU_FIRMWARE_SEARCH_MAGIC_BUFSZ_MAX (64 * FU_KB)
  |  |  ------------------
  |  |  |  |   72|      0|#define FU_KB (1ull << 10)
  |  |  ------------------
  ------------------
  |  Branch (1062:6): [True: 0, False: 0]
  ------------------
 1063|      0|		for (gsize offset_tmp = offset; offset_tmp < streamsz; offset_tmp++) {
  ------------------
  |  Branch (1063:35): [True: 0, False: 0]
  ------------------
 1064|      0|			if (klass->validate(self, stream, offset_tmp, NULL)) {
  ------------------
  |  Branch (1064:8): [True: 0, False: 0]
  ------------------
 1065|      0|				*offset_found = offset_tmp;
 1066|      0|				return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1067|      0|			}
 1068|      0|		}
 1069|      0|	}
 1070|       |
 1071|       |	/* check in more detail */
 1072|      0|	return klass->validate(self, stream, offset, error);
 1073|      0|}
fu-firmware.c:fu_firmware_check_image_gtype:
 1941|    128|{
 1942|    128|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(FU_FIRMWARE_GET_CLASS(self));
 1943|       |
 1944|       |	/* certain GTypes can opt-out of this check */
 1945|    128|	if (fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_NO_IMAGE_TYPE_CHECK))
  ------------------
  |  Branch (1945:6): [True: 0, False: 128]
  ------------------
 1946|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1947|       |
 1948|    128|	if (cpriv->image_gtypes_cnt == 0) {
  ------------------
  |  Branch (1948:6): [True: 0, False: 128]
  ------------------
 1949|      0|#ifndef SUPPORTED_BUILD
 1950|      0|		g_critical("%s did not add image GType %s with fu_firmware_add_image_gtype()",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1951|      0|			   G_OBJECT_TYPE_NAME(self),
 1952|      0|			   g_type_name(gtype));
 1953|      0|#endif
 1954|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1955|      0|	}
 1956|    128|	for (guint i = 0; i < cpriv->image_gtypes_cnt; i++) {
  ------------------
  |  Branch (1956:20): [True: 128, False: 0]
  ------------------
 1957|    128|		if (cpriv->image_gtypes[i] == gtype)
  ------------------
  |  Branch (1957:7): [True: 128, False: 0]
  ------------------
 1958|    128|			return TRUE;
  ------------------
  |  |  929|    128|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    128|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1959|    128|	}
 1960|      0|	g_set_error(error,
 1961|      0|		    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1962|      0|		    FWUPD_ERROR_NOT_SUPPORTED,
 1963|      0|		    "cannot add %s to %s",
 1964|      0|		    g_type_name(gtype),
 1965|      0|		    G_OBJECT_TYPE_NAME(self));
  ------------------
  |  |  108|      0|#define G_OBJECT_TYPE_NAME(object)  (g_type_name (G_OBJECT_TYPE (object)))
  |  |  ------------------
  |  |  |  |   98|      0|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  |  |  ------------------
  |  |  |  |  |  |  646|      0|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  657|      0|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1966|      0|	return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1967|    128|}
fu-firmware.c:fu_firmware_set_depth:
 1869|    128|{
 1870|    128|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    128|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1871|    128|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1872|    128|	priv->depth = depth;
 1873|    128|}

fu_fuzzer_test_input:
   32|    567|{
   33|    567|	FuFuzzerInterface *iface = FU_FUZZER_GET_IFACE(self);
   34|    567|	if (iface->test_input == NULL) {
  ------------------
  |  Branch (34:6): [True: 0, False: 567]
  ------------------
   35|      0|		g_set_error_literal(error,
   36|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   37|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
   38|      0|				    "FuFuzzer->test_input() not implemented");
   39|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
   40|      0|	}
   41|    567|	return iface->test_input(self, buf, error);
   42|    567|}
fu-fuzzer.c:fu_fuzzer_default_init:
   15|      1|{
   16|      1|}

fu_input_stream_read:
  155|  6.35k|{
  156|  6.35k|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), -1);
  ------------------
  |  |  663|  6.35k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  6.35k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  6.35k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  6.35k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  6.35k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  6.35k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  6.35k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  6.35k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  6.35k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6.35k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  6.35k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  6.35k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  6.35k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  6.35k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  6.35k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6.35k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  6.35k|      { } \
  |  |  666|  6.35k|    else \
  |  |  667|  6.35k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  6.35k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  6.35k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  157|  6.35k|	g_return_val_if_fail(buffer != NULL, -1);
  ------------------
  |  |  663|  6.35k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  6.35k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  6.35k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  6.35k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  6.35k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  6.35k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  6.35k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  6.35k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  6.35k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6.35k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  6.35k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  6.35k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  6.35k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  6.35k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  6.35k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6.35k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  6.35k|      { } \
  |  |  666|  6.35k|    else \
  |  |  667|  6.35k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  6.35k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  6.35k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  158|  6.35k|	g_return_val_if_fail(error == NULL || *error == NULL, -1);
  ------------------
  |  |  663|  6.35k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  6.35k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  6.35k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  6.35k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  6.35k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  6.35k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  6.35k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  6.35k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  19.0k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 6.35k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6.35k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  6.35k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  6.35k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  6.35k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  6.35k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  6.35k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6.35k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  6.35k|      { } \
  |  |  666|  6.35k|    else \
  |  |  667|  6.35k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  6.35k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  6.35k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  159|  6.35k|	return FU_INPUT_STREAM_GET_CLASS(stream)->read_fn(stream,
  160|  6.35k|							  buffer,
  161|  6.35k|							  count,
  162|  6.35k|							  cancellable,
  163|  6.35k|							  error);
  164|  6.35k|}
fu_input_stream_read_byte_array:
  479|  5.07k|{
  480|  5.07k|	guint8 tmp[0x8000]; /* nocheck:zero-init */
  481|  5.07k|	g_autoptr(GByteArray) buf = g_byte_array_new();
  ------------------
  |  | 1381|  5.07k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  5.07k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  482|  5.07k|	g_autoptr(GError) error_local = NULL;
  ------------------
  |  | 1381|  5.07k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  5.07k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  483|       |
  484|  5.07k|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|  5.07k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.07k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  5.07k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.07k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.07k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.07k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.07k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.07k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  5.07k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.07k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.07k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.07k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.07k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.07k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.07k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  5.07k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.07k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.07k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.07k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.07k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  5.07k|      { } \
  |  |  666|  5.07k|    else \
  |  |  667|  5.07k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  5.07k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.07k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.07k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  485|  5.07k|	g_return_val_if_fail(progress == NULL || FU_IS_PROGRESS(progress), NULL);
  ------------------
  |  |  663|  5.07k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.07k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  5.07k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.07k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.07k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.07k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.07k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.07k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  10.1k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.07k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.07k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.07k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.07k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.07k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.07k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  5.07k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.07k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.07k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.07k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.07k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  5.07k|      { } \
  |  |  666|  5.07k|    else \
  |  |  667|  5.07k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  5.07k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.07k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.07k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  486|  5.07k|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|  5.07k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.07k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  5.07k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.07k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.07k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.07k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.07k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.07k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  10.1k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.07k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.07k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.07k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.07k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.07k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.07k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  5.07k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.07k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.07k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.07k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.07k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  5.07k|      { } \
  |  |  666|  5.07k|    else \
  |  |  667|  5.07k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  5.07k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.07k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.07k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  487|       |
  488|       |	/* this is invalid */
  489|  5.07k|	if (count == 0) {
  ------------------
  |  Branch (489:6): [True: 3, False: 5.06k]
  ------------------
  490|      3|		g_set_error_literal(error,
  491|      3|				    FWUPD_ERROR,
  ------------------
  |  |   15|      3|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  492|      3|				    FWUPD_ERROR_NOT_SUPPORTED,
  493|      3|				    "read size must be non-zero");
  494|      3|		return NULL;
  495|      3|	}
  496|       |
  497|       |	/* seek back to start */
  498|  5.06k|	if (G_IS_SEEKABLE(stream) && g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|  10.1k|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|  5.06k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|  5.06k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  5.06k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|  5.06k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|  5.06k|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 5.06k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|  5.06k|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|  5.06k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 5.06k, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 5.06k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|  5.06k|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|  5.06k|  else \
  |  |  |  |  |  | 2678|  5.06k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|  5.06k|  __r; \
  |  |  |  |  |  | 2680|  5.06k|}))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (36:36): [True: 5.06k, False: 0]
  |  |  ------------------
  ------------------
              	if (G_IS_SEEKABLE(stream) && g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|  5.06k|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|  5.06k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|  5.06k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (498:31): [True: 5.06k, False: 0]
  ------------------
  499|  5.06k|		if (!g_seekable_seek(G_SEEKABLE(stream), offset, G_SEEK_SET, NULL, error))
  ------------------
  |  |   35|  5.06k|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|  5.06k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|  5.06k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (499:7): [True: 0, False: 5.06k]
  ------------------
  500|      0|			return NULL;
  501|  5.06k|	}
  502|       |
  503|       |	/* read from stream in 32kB chunks */
  504|  6.35k|	while (TRUE) {
  ------------------
  |  |  929|  6.35k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  6.35k|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (929:14): [True: 6.35k, Folded]
  |  |  ------------------
  ------------------
  505|  6.35k|		gssize sz;
  506|  6.35k|		sz = fu_input_stream_read(stream,
  507|  6.35k|					  tmp,
  508|  6.35k|					  MIN(count - buf->len, sizeof(tmp)),
  ------------------
  |  |  936|  6.35k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 4.51k, False: 1.84k]
  |  |  ------------------
  ------------------
  509|  6.35k|					  NULL,
  510|  6.35k|					  &error_local);
  511|  6.35k|		if (sz == 0)
  ------------------
  |  Branch (511:7): [True: 720, False: 5.63k]
  ------------------
  512|    720|			break;
  513|  5.63k|		if (sz < 0) {
  ------------------
  |  Branch (513:7): [True: 0, False: 5.63k]
  ------------------
  514|      0|			g_set_error_literal(error,
  515|      0|					    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  516|      0|					    FWUPD_ERROR_INVALID_FILE,
  517|      0|					    error_local->message);
  518|      0|			return NULL;
  519|      0|		}
  520|       |
  521|       |		/* update progress */
  522|  5.63k|		if (progress != NULL)
  ------------------
  |  Branch (522:7): [True: 0, False: 5.63k]
  ------------------
  523|      0|			fu_progress_set_percentage_full(progress, buf->len, count);
  524|       |
  525|  5.63k|		g_byte_array_append(buf, tmp, sz);
  526|  5.63k|		if (buf->len >= count)
  ------------------
  |  Branch (526:7): [True: 4.34k, False: 1.29k]
  ------------------
  527|  4.34k|			break;
  528|  5.63k|	}
  529|       |
  530|       |	/* no data was read */
  531|  5.06k|	if (buf->len == 0) {
  ------------------
  |  Branch (531:6): [True: 60, False: 5.00k]
  ------------------
  532|     60|		g_set_error_literal(error,
  533|     60|				    FWUPD_ERROR,
  ------------------
  |  |   15|     60|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  534|     60|				    FWUPD_ERROR_INVALID_FILE,
  535|     60|				    "no data could be read");
  536|     60|		return NULL;
  537|     60|	}
  538|       |
  539|       |	/* success */
  540|  5.00k|	return g_steal_pointer(&buf);
  ------------------
  |  |  247|  5.00k|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  541|  5.06k|}
fu_input_stream_read_bytes:
  565|  2.10k|{
  566|  2.10k|	g_autoptr(GByteArray) buf = NULL;
  ------------------
  |  | 1381|  2.10k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  2.10k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  567|  2.10k|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|  2.10k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.10k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.10k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.10k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.10k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.10k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.10k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.10k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.10k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.10k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.10k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.10k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.10k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.10k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.10k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.10k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.10k|      { } \
  |  |  666|  2.10k|    else \
  |  |  667|  2.10k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.10k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.10k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.10k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  568|  2.10k|	g_return_val_if_fail(progress == NULL || FU_IS_PROGRESS(progress), NULL);
  ------------------
  |  |  663|  2.10k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.10k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.10k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.10k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.10k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.10k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.10k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.10k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  4.20k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.10k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.10k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.10k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.10k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.10k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.10k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.10k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.10k|      { } \
  |  |  666|  2.10k|    else \
  |  |  667|  2.10k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.10k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.10k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.10k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  569|  2.10k|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|  2.10k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.10k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.10k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.10k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.10k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.10k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.10k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.10k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  4.20k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.10k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.10k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.10k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.10k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.10k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.10k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.10k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.10k|      { } \
  |  |  666|  2.10k|    else \
  |  |  667|  2.10k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.10k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.10k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.10k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  570|  2.10k|	buf = fu_input_stream_read_byte_array(stream, offset, count, progress, error);
  571|  2.10k|	if (buf == NULL)
  ------------------
  |  Branch (571:6): [True: 8, False: 2.09k]
  ------------------
  572|      8|		return NULL;
  573|  2.09k|	return g_byte_array_free_to_bytes(g_steal_pointer(&buf));
  ------------------
  |  |  247|  2.09k|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  574|  2.10k|}
fu_input_stream_size:
  626|    987|{
  627|    987|	goffset current;
  628|       |
  629|    987|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|    987|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    987|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    987|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    987|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    987|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    987| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    987|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    987|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    987|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 987, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    987|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    987|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    987|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    987|   else                                         \
  |  |  |  |  |  |  |  | 1240|    987|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    987|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    987|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    987|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    987|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 987, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    987|      { } \
  |  |  666|    987|    else \
  |  |  667|    987|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    987|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    987|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 987]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  630|    987|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    987|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    987|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    987|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    987|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    987|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    987| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    987|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    987|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.97k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 987, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    987|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    987|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    987|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    987|   else                                         \
  |  |  |  |  |  |  |  | 1240|    987|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    987|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    987|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    987|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    987|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 987, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    987|      { } \
  |  |  666|    987|    else \
  |  |  667|    987|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    987|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    987|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 987]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  631|       |
  632|       |	/* streaming from unseekable stream */
  633|    987|	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|  1.97k|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|    987|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|    987|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    987|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|    987|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|    987|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 987]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|    987|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|    987|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 987, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 987]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|    987|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|    987|  else \
  |  |  |  |  |  | 2678|    987|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|    987|  __r; \
  |  |  |  |  |  | 2680|    987|}))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|    987|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    987|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    987|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (633:6): [True: 0, False: 987]
  |  Branch (633:32): [True: 0, False: 987]
  ------------------
  634|      0|		if (val != NULL)
  ------------------
  |  Branch (634:7): [True: 0, False: 0]
  ------------------
  635|      0|			*val = G_MAXSIZE;
  ------------------
  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  636|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  637|      0|	}
  638|       |
  639|    987|	current = g_seekable_tell(G_SEEKABLE(stream));
  ------------------
  |  |   35|    987|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    987|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    987|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  640|    987|	if (!g_seekable_seek(G_SEEKABLE(stream), 0, G_SEEK_END, NULL, error)) {
  ------------------
  |  |   35|    987|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    987|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    987|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (640:6): [True: 0, False: 987]
  ------------------
  641|      0|		g_prefix_error_literal(error, "seek to end: ");
  642|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  643|      0|	}
  644|    987|	if (val != NULL)
  ------------------
  |  Branch (644:6): [True: 987, False: 0]
  ------------------
  645|    987|		*val = g_seekable_tell(G_SEEKABLE(stream));
  ------------------
  |  |   35|    987|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    987|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    987|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  646|       |
  647|    987|	return g_seekable_seek(G_SEEKABLE(stream), current, G_SEEK_SET, NULL, error);
  ------------------
  |  |   35|    987|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    987|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    987|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  648|    987|}
fu-input-stream.c:fu_input_stream_class_init:
  122|      1|{
  123|      1|	GObjectClass *object_class = G_OBJECT_CLASS(klass);
  ------------------
  |  |   61|      1|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  124|      1|	object_class->constructed = fu_input_stream_constructed;
  125|      1|	klass->tell = fu_input_stream_default_tell;
  126|      1|	klass->can_seek = fu_input_stream_default_can_seek;
  127|      1|	klass->seek = fu_input_stream_default_seek;
  128|      1|}
fu-input-stream.c:fu_input_stream_constructed:
  111|    567|{
  112|    567|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(object);
  113|       |
  114|    567|	G_OBJECT_CLASS(fu_input_stream_parent_class)->constructed(object);
  ------------------
  |  |   61|    567|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    567|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    567|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  115|       |
  116|       |	/* every FuInputStream subclass must implement read_fn */
  117|    567|	g_assert(klass->read_fn != NULL); /* nocheck:blocked */
  ------------------
  |  |  275|    567|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    567|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    567|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |                                                              g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    567|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  118|    567|}
fu-input-stream.c:fu_input_stream_init:
  132|    567|{
  133|    567|}
fu-input-stream.c:fu_input_stream_seekable_iface_init:
  101|      1|{
  102|      1|	iface->tell = fu_input_stream_seekable_tell;
  103|      1|	iface->can_seek = fu_input_stream_seekable_can_seek;
  104|      1|	iface->seek = fu_input_stream_seekable_seek;
  105|      1|	iface->can_truncate = fu_input_stream_seekable_can_truncate;
  106|      1|	iface->truncate_fn = fu_input_stream_seekable_truncate;
  107|      1|}
fu-input-stream.c:fu_input_stream_seekable_tell:
   54|  1.97k|{
   55|  1.97k|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   56|  1.97k|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   57|  1.97k|	return klass->tell(self);
   58|  1.97k|}
fu-input-stream.c:fu_input_stream_seekable_can_seek:
   62|  6.62k|{
   63|  6.62k|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   64|  6.62k|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   65|  6.62k|	return klass->can_seek(self);
   66|  6.62k|}
fu-input-stream.c:fu_input_stream_seekable_seek:
   74|  7.04k|{
   75|  7.04k|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   76|  7.04k|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   77|  7.04k|	return klass->seek(self, offset, type, cancellable, error);
   78|  7.04k|}

fu_memwrite_uint16:
   29|    512|{
   30|    512|	guint16 val_hw;
   31|    512|	switch (endian) {
   32|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (32:2): [True: 0, False: 512]
  ------------------
   33|      0|		val_hw = GUINT16_TO_BE(val_native); /* nocheck:blocked */
  ------------------
  |  |  160|      0|#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
  |  |  ------------------
  |  |  |  |  378|      0|#    define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  218|      0|#define GUINT16_SWAP_LE_BE_CONSTANT(val)	((guint16) ( \
  |  |  |  |  |  |  219|      0|    (guint16) ((guint16) (val) >> 8) |	\
  |  |  |  |  |  |  220|      0|    (guint16) ((guint16) (val) << 8)))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   34|      0|		break;
   35|    512|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|    512|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (35:2): [True: 512, False: 0]
  ------------------
   36|    512|		val_hw = GUINT16_TO_LE(val_native); /* nocheck:blocked */
  ------------------
  |  |  158|    512|#define GUINT16_TO_LE(val)	((guint16) (val))
  ------------------
   37|    512|		break;
   38|      0|	default:
  ------------------
  |  Branch (38:2): [True: 0, False: 512]
  ------------------
   39|      0|		val_hw = val_native;
   40|      0|		break;
   41|    512|	}
   42|    512|	memcpy(buf, &val_hw, sizeof(val_hw)); /* nocheck:blocked */
   43|    512|}
fu_memwrite_uint32:
   85|  1.53k|{
   86|  1.53k|	guint32 val_hw;
   87|  1.53k|	switch (endian) {
   88|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (88:2): [True: 0, False: 1.53k]
  ------------------
   89|      0|		val_hw = GUINT32_TO_BE(val_native); /* nocheck:blocked */
  ------------------
  |  |  165|      0|#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
  |  |  ------------------
  |  |  |  |  380|      0|#      define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86_64 (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  358|      0|       (G_GNUC_EXTENSION					\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  359|      0|	 ({ guint32 __v, __x = ((guint32) (val));		\
  |  |  |  |  |  |  360|      0|	    if (__builtin_constant_p (__x))			\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (360:10): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  361|      0|	      __v = GUINT32_SWAP_LE_BE_CONSTANT (__x);		\
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  222|      0|#define GUINT32_SWAP_LE_BE_CONSTANT(val)	((guint32) ( \
  |  |  |  |  |  |  |  |  223|      0|    (((guint32) (val) & (guint32) 0x000000ffU) << 24) | \
  |  |  |  |  |  |  |  |  224|      0|    (((guint32) (val) & (guint32) 0x0000ff00U) <<  8) | \
  |  |  |  |  |  |  |  |  225|      0|    (((guint32) (val) & (guint32) 0x00ff0000U) >>  8) | \
  |  |  |  |  |  |  |  |  226|      0|    (((guint32) (val) & (guint32) 0xff000000U) >> 24)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  362|      0|	    else						\
  |  |  |  |  |  |  363|      0|	     __asm__ ("bswapl %0"				\
  |  |  |  |  |  |  364|      0|		      : "=r" (__v)				\
  |  |  |  |  |  |  365|      0|		      : "0" (__x));				\
  |  |  |  |  |  |  366|      0|	    __v; }))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   90|      0|		break;
   91|  1.53k|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|  1.53k|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (91:2): [True: 1.53k, False: 0]
  ------------------
   92|  1.53k|		val_hw = GUINT32_TO_LE(val_native); /* nocheck:blocked */
  ------------------
  |  |  163|  1.53k|#define GUINT32_TO_LE(val)	((guint32) (val))
  ------------------
   93|  1.53k|		break;
   94|      0|	default:
  ------------------
  |  Branch (94:2): [True: 0, False: 1.53k]
  ------------------
   95|      0|		val_hw = val_native;
   96|      0|		break;
   97|  1.53k|	}
   98|  1.53k|	memcpy(buf, &val_hw, sizeof(val_hw)); /* nocheck:blocked */
   99|  1.53k|}
fu_memread_uint16:
  142|  1.82k|{
  143|  1.82k|	guint16 val_hw;
  144|  1.82k|	guint16 val_native;
  145|  1.82k|	memcpy(&val_hw, buf, sizeof(val_hw)); /* nocheck:blocked */
  146|  1.82k|	switch (endian) {
  147|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (147:2): [True: 0, False: 1.82k]
  ------------------
  148|      0|		val_native = GUINT16_FROM_BE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  415|      0|#define GUINT16_FROM_BE(val)	(GUINT16_TO_BE (val))
  |  |  ------------------
  |  |  |  |  160|      0|#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  378|      0|#    define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  218|      0|#define GUINT16_SWAP_LE_BE_CONSTANT(val)	((guint16) ( \
  |  |  |  |  |  |  |  |  219|      0|    (guint16) ((guint16) (val) >> 8) |	\
  |  |  |  |  |  |  |  |  220|      0|    (guint16) ((guint16) (val) << 8)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  149|      0|		break;
  150|  1.82k|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|  1.82k|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (150:2): [True: 1.82k, False: 0]
  ------------------
  151|  1.82k|		val_native = GUINT16_FROM_LE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  413|  1.82k|#define GUINT16_FROM_LE(val)	(GUINT16_TO_LE (val))
  |  |  ------------------
  |  |  |  |  158|  1.82k|#define GUINT16_TO_LE(val)	((guint16) (val))
  |  |  ------------------
  ------------------
  152|  1.82k|		break;
  153|      0|	default:
  ------------------
  |  Branch (153:2): [True: 0, False: 1.82k]
  ------------------
  154|      0|		val_native = val_hw;
  155|      0|		break;
  156|  1.82k|	}
  157|  1.82k|	return val_native;
  158|  1.82k|}
fu_memread_uint32:
  205|  3.21k|{
  206|  3.21k|	guint32 val_hw;
  207|  3.21k|	guint32 val_native;
  208|  3.21k|	memcpy(&val_hw, buf, sizeof(val_hw)); /* nocheck:blocked */
  209|  3.21k|	switch (endian) {
  210|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (210:2): [True: 0, False: 3.21k]
  ------------------
  211|      0|		val_native = GUINT32_FROM_BE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  419|      0|#define GUINT32_FROM_BE(val)	(GUINT32_TO_BE (val))
  |  |  ------------------
  |  |  |  |  165|      0|#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  380|      0|#      define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86_64 (val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  358|      0|       (G_GNUC_EXTENSION					\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  359|      0|	 ({ guint32 __v, __x = ((guint32) (val));		\
  |  |  |  |  |  |  |  |  360|      0|	    if (__builtin_constant_p (__x))			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (360:10): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  361|      0|	      __v = GUINT32_SWAP_LE_BE_CONSTANT (__x);		\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  222|      0|#define GUINT32_SWAP_LE_BE_CONSTANT(val)	((guint32) ( \
  |  |  |  |  |  |  |  |  |  |  223|      0|    (((guint32) (val) & (guint32) 0x000000ffU) << 24) | \
  |  |  |  |  |  |  |  |  |  |  224|      0|    (((guint32) (val) & (guint32) 0x0000ff00U) <<  8) | \
  |  |  |  |  |  |  |  |  |  |  225|      0|    (((guint32) (val) & (guint32) 0x00ff0000U) >>  8) | \
  |  |  |  |  |  |  |  |  |  |  226|      0|    (((guint32) (val) & (guint32) 0xff000000U) >> 24)))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  362|      0|	    else						\
  |  |  |  |  |  |  |  |  363|      0|	     __asm__ ("bswapl %0"				\
  |  |  |  |  |  |  |  |  364|      0|		      : "=r" (__v)				\
  |  |  |  |  |  |  |  |  365|      0|		      : "0" (__x));				\
  |  |  |  |  |  |  |  |  366|      0|	    __v; }))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  212|      0|		break;
  213|  3.21k|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|  3.21k|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (213:2): [True: 3.21k, False: 0]
  ------------------
  214|  3.21k|		val_native = GUINT32_FROM_LE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  417|  3.21k|#define GUINT32_FROM_LE(val)	(GUINT32_TO_LE (val))
  |  |  ------------------
  |  |  |  |  163|  3.21k|#define GUINT32_TO_LE(val)	((guint32) (val))
  |  |  ------------------
  ------------------
  215|  3.21k|		break;
  216|      0|	default:
  ------------------
  |  Branch (216:2): [True: 0, False: 3.21k]
  ------------------
  217|      0|		val_native = val_hw;
  218|      0|		break;
  219|  3.21k|	}
  220|  3.21k|	return val_native;
  221|  3.21k|}
fu_memchk_read:
  328|    656|{
  329|    656|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    656|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    656|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    656|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    656|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    656|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    656| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    656|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    656|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.31k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 656, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    656|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    656|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    656|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    656|   else                                         \
  |  |  |  |  |  |  |  | 1240|    656|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    656|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    656|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    656|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    656|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 656, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    656|      { } \
  |  |  666|    656|    else \
  |  |  667|    656|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    656|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    656|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 656]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  330|    656|	if (n == 0)
  ------------------
  |  Branch (330:6): [True: 0, False: 656]
  ------------------
  331|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  332|    656|	if (n > bufsz) {
  ------------------
  |  Branch (332:6): [True: 0, False: 656]
  ------------------
  333|      0|		g_set_error(error,
  334|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  335|      0|			    FWUPD_ERROR_READ,
  336|      0|			    "attempted to read 0x%02x bytes from buffer of 0x%02x",
  337|      0|			    (guint)n,
  338|      0|			    (guint)bufsz);
  339|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  340|      0|	}
  341|    656|	if (fu_size_checked_add(offset, n) == G_MAXSIZE) {
  ------------------
  |  |   89|    656|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|    656|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  |  Branch (341:6): [True: 0, False: 656]
  ------------------
  342|      0|		g_set_error(error,
  343|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  344|      0|			    FWUPD_ERROR_READ,
  345|      0|			    "offset 0x%02x + 0x%02x overflowed",
  346|      0|			    (guint)offset,
  347|      0|			    (guint)n);
  348|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  349|      0|	}
  350|    656|	if (offset > bufsz || n + offset > bufsz) {
  ------------------
  |  Branch (350:6): [True: 0, False: 656]
  |  Branch (350:24): [True: 0, False: 656]
  ------------------
  351|      0|		g_set_error(error,
  352|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  353|      0|			    FWUPD_ERROR_READ,
  354|      0|			    "attempted to read 0x%02x bytes at offset 0x%02x from buffer of 0x%02x",
  355|      0|			    (guint)n,
  356|      0|			    (guint)offset,
  357|      0|			    (guint)bufsz);
  358|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  359|      0|	}
  360|    656|	return TRUE;
  ------------------
  |  |  929|    656|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    656|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  361|    656|}
fu_memchk_write:
  383|    420|{
  384|    420|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    420|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    420|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    420|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    420|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    420|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    420| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    420|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    420|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    840|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 420, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    420|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    420|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    420|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    420|   else                                         \
  |  |  |  |  |  |  |  | 1240|    420|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    420|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    420|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    420|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    420|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 420, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    420|      { } \
  |  |  666|    420|    else \
  |  |  667|    420|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    420|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    420|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 420]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  385|    420|	if (n == 0)
  ------------------
  |  Branch (385:6): [True: 0, False: 420]
  ------------------
  386|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  387|    420|	if (n > bufsz) {
  ------------------
  |  Branch (387:6): [True: 0, False: 420]
  ------------------
  388|      0|		g_set_error(error,
  389|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  390|      0|			    FWUPD_ERROR_WRITE,
  391|      0|			    "attempted to write 0x%02x bytes to buffer of 0x%02x",
  392|      0|			    (guint)n,
  393|      0|			    (guint)bufsz);
  394|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  395|      0|	}
  396|    420|	if (fu_size_checked_add(offset, n) == G_MAXSIZE) {
  ------------------
  |  |   89|    420|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|    420|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  |  Branch (396:6): [True: 0, False: 420]
  ------------------
  397|      0|		g_set_error(error,
  398|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  399|      0|			    FWUPD_ERROR_WRITE,
  400|      0|			    "offset 0x%02x + 0x%02x overflowed",
  401|      0|			    (guint)offset,
  402|      0|			    (guint)n);
  403|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  404|      0|	}
  405|    420|	if (offset > bufsz || n + offset > bufsz) {
  ------------------
  |  Branch (405:6): [True: 0, False: 420]
  |  Branch (405:24): [True: 0, False: 420]
  ------------------
  406|      0|		g_set_error(error,
  407|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  408|      0|			    FWUPD_ERROR_WRITE,
  409|      0|			    "attempted to write 0x%02x bytes at offset 0x%02x to buffer of 0x%02x",
  410|      0|			    (guint)n,
  411|      0|			    (guint)offset,
  412|      0|			    (guint)bufsz);
  413|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  414|      0|	}
  415|    420|	return TRUE;
  ------------------
  |  |  929|    420|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    420|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  416|    420|}
fu_memcpy_safe:
  453|    420|{
  454|    420|	g_return_val_if_fail(dst != NULL, FALSE);
  ------------------
  |  |  663|    420|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    420|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    420|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    420|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    420|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    420| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    420|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    420|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    420|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 420, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    420|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    420|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    420|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    420|   else                                         \
  |  |  |  |  |  |  |  | 1240|    420|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    420|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    420|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    420|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    420|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 420, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    420|      { } \
  |  |  666|    420|    else \
  |  |  667|    420|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    420|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    420|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 420]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  455|    420|	g_return_val_if_fail(src != NULL, FALSE);
  ------------------
  |  |  663|    420|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    420|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    420|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    420|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    420|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    420| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    420|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    420|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    420|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 420, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    420|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    420|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    420|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    420|   else                                         \
  |  |  |  |  |  |  |  | 1240|    420|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    420|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    420|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    420|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    420|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 420, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    420|      { } \
  |  |  666|    420|    else \
  |  |  667|    420|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    420|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    420|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 420]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  456|    420|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    420|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    420|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    420|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    420|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    420|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    420| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    420|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    420|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    840|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 420, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    420|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    420|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    420|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    420|   else                                         \
  |  |  |  |  |  |  |  | 1240|    420|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    420|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    420|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    420|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    420|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 420, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    420|      { } \
  |  |  666|    420|    else \
  |  |  667|    420|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    420|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    420|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 420]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  457|       |
  458|    420|	if (!fu_memchk_read(src_sz, src_offset, n, error))
  ------------------
  |  Branch (458:6): [True: 0, False: 420]
  ------------------
  459|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  460|    420|	if (!fu_memchk_write(dst_sz, dst_offset, n, error))
  ------------------
  |  Branch (460:6): [True: 0, False: 420]
  ------------------
  461|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  462|    420|	memcpy(dst + dst_offset, src + src_offset, n); /* nocheck:blocked */
  463|    420|	return TRUE;
  ------------------
  |  |  929|    420|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    420|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  464|    420|}
fu_memstrsafe:
  980|    236|{
  981|    236|	g_autofree gchar *str = NULL;
  ------------------
  |  | 1386|    236|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|    236|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  982|       |
  983|    236|	g_return_val_if_fail(buf != NULL, NULL);
  ------------------
  |  |  663|    236|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    236|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    236|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    236|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    236|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    236| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    236|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    236|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    236|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 236, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    236|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    236|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    236|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    236|   else                                         \
  |  |  |  |  |  |  |  | 1240|    236|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    236|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    236|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    236|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    236|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 236, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    236|      { } \
  |  |  666|    236|    else \
  |  |  667|    236|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    236|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    236|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 236]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  984|    236|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|    236|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    236|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    236|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    236|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    236|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    236| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    236|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    236|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    472|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 236, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    236|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    236|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    236|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    236|   else                                         \
  |  |  |  |  |  |  |  | 1240|    236|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    236|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    236|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    236|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    236|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 236, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    236|      { } \
  |  |  666|    236|    else \
  |  |  667|    236|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCommon"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    236|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    236|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 236]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  985|       |
  986|    236|	if (!fu_memchk_read(bufsz, offset, maxsz, error))
  ------------------
  |  Branch (986:6): [True: 0, False: 236]
  ------------------
  987|      0|		return NULL;
  988|       |	/* nocheck:memread */
  989|    236|	str = fu_strsafe((const gchar *)buf + offset, maxsz);
  990|    236|	if (str == NULL) {
  ------------------
  |  Branch (990:6): [True: 36, False: 200]
  ------------------
  991|     36|		g_set_error_literal(error,
  992|     36|				    FWUPD_ERROR,
  ------------------
  |  |   15|     36|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  993|     36|				    FWUPD_ERROR_INVALID_DATA,
  994|     36|				    "invalid ASCII string");
  995|     36|		return NULL;
  996|     36|	}
  997|    200|	return g_steal_pointer(&str);
  ------------------
  |  |  247|    200|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  998|    236|}

fu_memory_input_stream_new_from_bytes:
  166|    567|{
  167|    567|	gsize data_sz = 0;
  168|    567|	const guint8 *data;
  169|    567|	g_autoptr(FuMemoryInputStream) self = NULL;
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  170|       |
  171|    567|	g_return_val_if_fail(bytes != NULL, NULL);
  ------------------
  |  |  663|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    567|      { } \
  |  |  666|    567|    else \
  |  |  667|    567|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuMemoryInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  172|       |
  173|    567|	self = g_object_new(FU_TYPE_MEMORY_INPUT_STREAM, NULL);
  ------------------
  |  |   13|    567|#define FU_TYPE_MEMORY_INPUT_STREAM (fu_memory_input_stream_get_type())
  ------------------
  174|       |
  175|    567|	data = g_bytes_get_data(bytes, &data_sz);
  176|       |
  177|    567|	self->rust = fu_rs_borrowed_memory_input_stream_new_from_data(data, data_sz);
  178|       |	/* we must hold a reference to the bytes because we cannot know if the
  179|       |	 * caller uses the same bytes for something. We can't extract the data
  180|       |	 * either because we cannot know if there's a free_func set on the
  181|       |	 * GBytes */
  182|    567|	self->bytes = g_bytes_ref(bytes);
  183|       |
  184|    567|	return FU_INPUT_STREAM(g_steal_pointer(&self));
  ------------------
  |  |  247|    567|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  185|    567|}
fu_memory_input_stream_new_from_data:
  201|    567|{
  202|    567|	g_autoptr(GBytes) bytes = NULL;
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  203|       |
  204|    567|	g_return_val_if_fail(data != NULL, NULL);
  ------------------
  |  |  663|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    567|      { } \
  |  |  666|    567|    else \
  |  |  667|    567|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuMemoryInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  205|    567|	g_return_val_if_fail(len >= -1, NULL);
  ------------------
  |  |  663|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    567|      { } \
  |  |  666|    567|    else \
  |  |  667|    567|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuMemoryInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  206|       |
  207|    567|	if (len == -1)
  ------------------
  |  Branch (207:6): [True: 0, False: 567]
  ------------------
  208|      0|		len = strlen(data);
  209|       |
  210|    567|	bytes = g_bytes_new_with_free_func(data, len, destroy, (gpointer)data);
  211|       |
  212|    567|	return fu_memory_input_stream_new_from_bytes(bytes);
  213|    567|}
fu-memory-input-stream.c:fu_memory_input_stream_class_init:
  138|      1|{
  139|      1|	GObjectClass *object_class = G_OBJECT_CLASS(klass);
  ------------------
  |  |   61|      1|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  140|      1|	FuInputStreamClass *istream_class = FU_INPUT_STREAM_CLASS(klass);
  141|      1|	object_class->finalize = fu_memory_input_stream_finalize;
  142|      1|	istream_class->read_fn = fu_memory_input_stream_read_fn;
  143|      1|	istream_class->tell = fu_memory_input_stream_tell;
  144|      1|	istream_class->can_seek = fu_memory_input_stream_can_seek;
  145|      1|	istream_class->seek = fu_memory_input_stream_seek;
  146|      1|	istream_class->get_stream_impl = fu_memory_input_stream_get_stream_impl;
  147|      1|}
fu-memory-input-stream.c:fu_memory_input_stream_finalize:
  121|    567|{
  122|    567|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(object);
  123|       |	/* free the Rust stream first */
  124|    567|	fu_rs_borrowed_memory_input_stream_free(self->rust);
  125|    567|	g_clear_pointer(&self->bytes, g_bytes_unref);
  ------------------
  |  |  136|    567|  G_STMT_START                                           \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  137|    567|  {                                                      \
  |  |  138|    567|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|    567|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  139|    567|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  ------------------
  |  |  |  |   39|    567|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  140|    567|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  ------------------
  |  |  |  |   39|    567|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  141|    567|    *_pp = NULL;                                         \
  |  |  142|    567|    if (_ptr)                                            \
  |  |  ------------------
  |  |  |  Branch (142:9): [True: 567, False: 0]
  |  |  ------------------
  |  |  143|    567|      (destroy) (_ptr);                                  \
  |  |  144|    567|  }                                                      \
  |  |  145|    567|  G_STMT_END                                             \
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  146|    567|  GLIB_AVAILABLE_MACRO_IN_2_34
  ------------------
  126|    567|	G_OBJECT_CLASS(fu_memory_input_stream_parent_class)->finalize(object);
  ------------------
  |  |   61|    567|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    567|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    567|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  127|    567|}
fu-memory-input-stream.c:fu_memory_input_stream_read_fn:
   37|  6.35k|{
   38|  6.35k|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(stream);
   39|  6.35k|	gssize rc;
   40|       |
   41|  6.35k|	if (g_cancellable_set_error_if_cancelled(cancellable, error))
  ------------------
  |  Branch (41:6): [True: 0, False: 6.35k]
  ------------------
   42|      0|		return -1;
   43|       |
   44|  6.35k|	rc = fu_rs_borrowed_memory_input_stream_read(self->rust, buffer, count);
   45|  6.35k|	if (rc < 0) {
  ------------------
  |  Branch (45:6): [True: 0, False: 6.35k]
  ------------------
   46|      0|		g_set_error(error,
   47|      0|			    G_IO_ERROR, /* nocheck:error */
  ------------------
  |  |   42|      0|#define G_IO_ERROR g_io_error_quark()
  ------------------
   48|       |#ifdef HAVE_ERRNO_H
   49|       |			    g_io_error_from_errno(-rc),
   50|       |#else
   51|      0|			    G_IO_ERROR_FAILED, /* nocheck:blocked */
   52|      0|#endif
   53|      0|			    "failed to read %zu bytes: %s",
   54|      0|			    count,
   55|      0|			    fwupd_strerror(-rc));
   56|      0|		fwupd_error_convert(error);
   57|      0|		return -1;
   58|      0|	}
   59|  6.35k|	return rc;
   60|  6.35k|}
fu-memory-input-stream.c:fu_memory_input_stream_tell:
   64|  1.97k|{
   65|  1.97k|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(stream);
   66|  1.97k|	return fu_rs_borrowed_memory_input_stream_tell(self->rust);
   67|  1.97k|}
fu-memory-input-stream.c:fu_memory_input_stream_can_seek:
   71|  6.62k|{
   72|  6.62k|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(stream);
   73|  6.62k|	return fu_rs_borrowed_memory_input_stream_can_seek(self->rust);
   74|  6.62k|}
fu-memory-input-stream.c:fu_memory_input_stream_seek:
   82|  7.04k|{
   83|  7.04k|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(stream);
   84|       |
   85|  7.04k|	switch (type) {
   86|  6.05k|	case G_SEEK_SET:
  ------------------
  |  Branch (86:2): [True: 6.05k, False: 987]
  ------------------
   87|  6.05k|	case G_SEEK_CUR:
  ------------------
  |  Branch (87:2): [True: 0, False: 7.04k]
  ------------------
   88|  7.04k|	case G_SEEK_END:
  ------------------
  |  Branch (88:2): [True: 987, False: 6.05k]
  ------------------
   89|  7.04k|		break;
   90|      0|	default:
  ------------------
  |  Branch (90:2): [True: 0, False: 7.04k]
  ------------------
   91|      0|		g_set_error_literal(error,
   92|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   93|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
   94|      0|				    "unsupported seek type");
   95|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
   96|  7.04k|	}
   97|       |
   98|  7.04k|	if (!fu_rs_borrowed_memory_input_stream_seek(self->rust, offset, (gint32)type)) {
  ------------------
  |  Branch (98:6): [True: 0, False: 7.04k]
  ------------------
   99|      0|		if (offset >= 0) {
  ------------------
  |  Branch (99:7): [True: 0, False: 0]
  ------------------
  100|      0|			g_set_error(error,
  101|      0|				    G_IO_ERROR,
  ------------------
  |  |   42|      0|#define G_IO_ERROR g_io_error_quark()
  ------------------
  102|      0|				    G_IO_ERROR_INVALID_ARGUMENT,
  103|      0|				    "seek to 0x%" G_GINT64_MODIFIER "x failed",
  104|      0|				    (guint64)offset); /* nocheck:error */
  105|      0|			fwupd_error_convert(error);
  106|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  107|      0|		}
  108|      0|		g_set_error(error,
  109|      0|			    G_IO_ERROR,
  ------------------
  |  |   42|      0|#define G_IO_ERROR g_io_error_quark()
  ------------------
  110|      0|			    G_IO_ERROR_INVALID_ARGUMENT,
  111|      0|			    "seek to %" G_GINT64_MODIFIER "d failed",
  112|      0|			    offset); /* nocheck:error */
  113|      0|		fwupd_error_convert(error);
  114|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  115|      0|	}
  116|  7.04k|	return TRUE;
  ------------------
  |  |  929|  7.04k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  7.04k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  117|  7.04k|}
fu-memory-input-stream.c:fu_memory_input_stream_init:
  151|    567|{
  152|    567|}

fu_strsafe:
  640|    236|{
  641|    236|	gboolean valid = FALSE;
  ------------------
  |  |  925|    236|#define	FALSE	(0)
  ------------------
  642|    236|	g_autoptr(GString) tmp = g_string_new(NULL);
  ------------------
  |  | 1381|    236|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    236|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  643|       |
  644|       |	/* sanity check */
  645|    236|	if (str == NULL || maxsz == 0)
  ------------------
  |  Branch (645:6): [True: 0, False: 236]
  |  Branch (645:21): [True: 0, False: 236]
  ------------------
  646|      0|		return NULL;
  647|       |
  648|       |	/* replace non-printable chars with '.' */
  649|  13.1k|	for (gsize i = 0; i < maxsz && str[i] != '\0'; i++) {
  ------------------
  |  Branch (649:20): [True: 13.0k, False: 118]
  |  Branch (649:33): [True: 12.9k, False: 118]
  ------------------
  650|  12.9k|		if (!g_ascii_isprint(str[i])) {
  ------------------
  |  |   80|  12.9k|  ((g_ascii_table[(guchar) (c)] & G_ASCII_PRINT) != 0)
  ------------------
  |  Branch (650:7): [True: 3.53k, False: 9.41k]
  ------------------
  651|  3.53k|			g_string_append_c(tmp, '.');
  ------------------
  |  |  210|  3.53k|  g_string_append_c_inline (gstr, c)
  ------------------
  652|  3.53k|			continue;
  653|  3.53k|		}
  654|  9.41k|		g_string_append_c(tmp, str[i]);
  ------------------
  |  |  210|  9.41k|  g_string_append_c_inline (gstr, c)
  ------------------
  655|  9.41k|		if (!g_ascii_isspace(str[i]))
  ------------------
  |  |   86|  9.41k|  ((g_ascii_table[(guchar) (c)] & G_ASCII_SPACE) != 0)
  ------------------
  |  Branch (655:7): [True: 2.50k, False: 6.91k]
  ------------------
  656|  2.50k|			valid = TRUE;
  ------------------
  |  |  929|  2.50k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  2.50k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  657|  9.41k|	}
  658|       |
  659|       |	/* if just junk, don't return 'all dots' */
  660|    236|	if (tmp->len == 0 || !valid)
  ------------------
  |  Branch (660:6): [True: 9, False: 227]
  |  Branch (660:23): [True: 27, False: 200]
  ------------------
  661|     36|		return NULL;
  662|    200|	return g_string_free_and_steal(g_steal_pointer(&tmp));
  ------------------
  |  |  247|    200|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  663|    236|}

_RNvNtCshVnoLihkVxE_9fwupd_ffi7streams14seek_from_glib:
   62|  7.04k|fn seek_from_glib(seek_type: GSeekType, offset: GOffset) -> Option<SeekFrom> {
   63|  7.04k|    match seek_type {
   64|      0|        G_SEEK_CUR => Some(SeekFrom::Current(offset)),
   65|       |        G_SEEK_SET => {
   66|  6.05k|            if offset < 0 {
   67|      0|                return None;
   68|  6.05k|            }
   69|  6.05k|            Some(SeekFrom::Start(u64::try_from(offset).unwrap()))
   70|       |        }
   71|    987|        G_SEEK_END => Some(SeekFrom::End(offset)),
   72|      0|        _ => None,
   73|       |    }
   74|  7.04k|}
fu_rs_borrowed_memory_input_stream_can_seek:
  168|  6.62k|        pub unsafe extern "C" fn $func(stream: *const Arc<Mutex<$type>>) -> GBoolean {
  169|  6.62k|            if stream.is_null() {
  170|      0|                return GFALSE;
  171|  6.62k|            }
  172|  6.62k|            let arc = unsafe { &*stream };
  173|  6.62k|            let stream = arc.lock().unwrap();
  174|  6.62k|            if stream.is_seekable() {
  175|  6.62k|                GTRUE
  176|       |            } else {
  177|      0|                GFALSE
  178|       |            }
  179|  6.62k|        }
fu_rs_borrowed_memory_input_stream_free:
   84|    567|        pub unsafe extern "C" fn $func(stream: *mut Arc<Mutex<$type>>) {
   85|    567|            if !stream.is_null() {
   86|    567|                drop(unsafe { Box::from_raw(stream) });
   87|    567|            }
   88|    567|        }
fu_rs_borrowed_memory_input_stream_new_from_data:
  264|    567|pub unsafe extern "C" fn fu_rs_borrowed_memory_input_stream_new_from_data(
  265|    567|    data: *const u8,
  266|    567|    len: usize,
  267|    567|) -> *mut Arc<Mutex<MemoryInputStream<&'static [u8]>>> {
  268|    567|    if data.is_null() && len != 0 {
  269|      0|        return ptr::null_mut();
  270|    567|    }
  271|    567|    let data = if len == 0 {
  272|      0|        &[]
  273|       |    } else {
  274|    567|        unsafe { std::slice::from_raw_parts(data, len) }
  275|       |    };
  276|    567|    Box::into_raw(Box::new(Arc::new(Mutex::new(
  277|    567|        MemoryInputStream::from_data(data),
  278|       |    ))))
  279|    567|}
fu_rs_borrowed_memory_input_stream_read:
  105|  6.35k|        pub unsafe extern "C" fn $func(
  106|  6.35k|            stream: *mut Arc<Mutex<$type>>,
  107|  6.35k|            buf: *mut u8,
  108|  6.35k|            count: usize,
  109|  6.35k|        ) -> isize {
  110|  6.35k|            if stream.is_null() || buf.is_null() {
  111|      0|                return if count == 0 { 0 } else { -EINVAL };
  112|  6.35k|            }
  113|  6.35k|            let arc = unsafe { &*stream };
  114|  6.35k|            let mut stream = arc.lock().unwrap();
  115|  6.35k|            let slice = unsafe { std::slice::from_raw_parts_mut(buf, count) };
  116|  6.35k|            match stream.read(slice) {
  117|  6.35k|                Ok(n) => isize::try_from(n).unwrap_or(-EINVAL),
  118|      0|                Err(e) => io_error_to_neg_errno(&e),
  119|       |            }
  120|  6.35k|        }
fu_rs_borrowed_memory_input_stream_seek:
  135|  7.04k|        pub unsafe extern "C" fn $func(
  136|  7.04k|            stream: *mut Arc<Mutex<$type>>,
  137|  7.04k|            offset: GOffset,
  138|  7.04k|            seek_type: GSeekType,
  139|  7.04k|        ) -> GBoolean {
  140|  7.04k|            if stream.is_null() {
  141|      0|                return GFALSE;
  142|  7.04k|            }
  143|  7.04k|            let arc = unsafe { &*stream };
  144|  7.04k|            let mut stream = arc.lock().unwrap();
  145|  7.04k|            let Some(seek_from) = seek_from_glib(seek_type, offset) else {
  146|      0|                return GFALSE;
  147|       |            };
  148|  7.04k|            if stream.seek(seek_from).is_ok() {
  149|  7.04k|                GTRUE
  150|       |            } else {
  151|      0|                GFALSE
  152|       |            }
  153|  7.04k|        }
fu_rs_borrowed_memory_input_stream_tell:
  194|  1.97k|        pub unsafe extern "C" fn $func(stream: *const Arc<Mutex<$type>>) -> GOffset {
  195|  1.97k|            if stream.is_null() {
  196|      0|                return 0;
  197|  1.97k|            }
  198|  1.97k|            let arc = unsafe { &*stream };
  199|  1.97k|            let mut stream = arc.lock().unwrap();
  200|  1.97k|            let pos = stream.stream_position().unwrap_or(0);
  201|       |            // pos > 2^63 is not worth worrying about
  202|  1.97k|            let pos = i64::try_from(pos).unwrap_or(0);
  203|  1.97k|            pos as GOffset
  204|  1.97k|        }

_RNvMNtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB2_17MemoryInputStreamRShE9from_dataCshVnoLihkVxE_9fwupd_ffi:
   25|    567|    pub fn from_data(data: T) -> Self {
   26|    567|        Self { data, pos: 0 }
   27|    567|    }
_RNvXs2_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB5_17MemoryInputStreamRShENtB7_10IsSeekable11is_seekableCshVnoLihkVxE_9fwupd_ffi:
   61|  6.62k|    fn is_seekable(&self) -> bool {
   62|  6.62k|        true
   63|  6.62k|    }
_RNCNvXs4_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB7_17MemoryInputStreamRShENtNtCsjS9ICikYiHq_3std2io4Seek4seek0CshVnoLihkVxE_9fwupd_ffi:
   84|  1.97k|            SeekFrom::Current(n) => i64::try_from(self.pos).ok().and_then(|p| p.checked_add(n)),
_RNCNvXs4_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB7_17MemoryInputStreamRShENtNtCsjS9ICikYiHq_3std2io4Seek4seeks_0CshVnoLihkVxE_9fwupd_ffi:
   87|    987|                .and_then(|len| len.checked_add(n)),
_RNvXs3_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB5_17MemoryInputStreamRShENtNtCsjS9ICikYiHq_3std2io4Read4readCshVnoLihkVxE_9fwupd_ffi:
   67|  6.35k|    fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
   68|  6.35k|        let slice = self.data.as_ref();
   69|  6.35k|        let available = slice.len().saturating_sub(self.pos);
   70|  6.35k|        let count = buf.len().min(available);
   71|  6.35k|        if count > 0 {
   72|  5.63k|            buf[..count].copy_from_slice(&slice[self.pos..self.pos + count]);
   73|  5.63k|            self.pos += count;
   74|  5.63k|        }
   75|  6.35k|        Ok(count)
   76|  6.35k|    }
_RNvXs4_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB5_17MemoryInputStreamRShENtNtCsjS9ICikYiHq_3std2io4Seek4seekCshVnoLihkVxE_9fwupd_ffi:
   80|  9.01k|    fn seek(&mut self, pos: SeekFrom) -> io::Result<u64> {
   81|  9.01k|        let slice = self.data.as_ref();
   82|  9.01k|        let new_pos = match pos {
   83|  6.05k|            SeekFrom::Start(n) => i64::try_from(n).ok(),
   84|  1.97k|            SeekFrom::Current(n) => i64::try_from(self.pos).ok().and_then(|p| p.checked_add(n)),
   85|    987|            SeekFrom::End(n) => i64::try_from(slice.len())
   86|    987|                .ok()
   87|    987|                .and_then(|len| len.checked_add(n)),
   88|       |        }
   89|  9.01k|        .ok_or_else(|| std::io::Error::from(std::io::ErrorKind::InvalidInput))?;
   90|  9.01k|        let len =
   91|  9.01k|            i64::try_from(slice.len()).map_err(|_| io::Error::other("data length overflow"))?;
   92|  9.01k|        if new_pos < 0 || new_pos > len {
   93|      0|            return Err(io::Error::new(
   94|      0|                io::ErrorKind::InvalidInput,
   95|      0|                format!("seek to {new_pos} out of range [0, {}]", slice.len()),
   96|      0|            ));
   97|  9.01k|        }
   98|  9.01k|        self.pos = usize::try_from(new_pos).map_err(|_| io::Error::other("usize overflow"))?;
   99|  9.01k|        Ok(self.pos as u64)
  100|  9.01k|    }

g_cancellable_is_cancelled:
  303|  6.35k|{
  304|  6.35k|  return cancellable != NULL && g_atomic_int_get (&cancellable->priv->cancelled);
  ------------------
  |  |  110|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (110:3): [True: 0, False: 0]
  |  |  ------------------
  |  |  111|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|      0|    gint gaig_temp;                                                          \
  |  |  113|      0|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 0]
  |  |  ------------------
  |  |  114|      0|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|      0|    (gint) gaig_temp;                                                        \
  |  |  116|      0|  }))
  ------------------
  |  Branch (304:10): [True: 0, False: 6.35k]
  ------------------
  305|  6.35k|}
g_cancellable_set_error_if_cancelled:
  320|  6.35k|{
  321|  6.35k|  if (g_cancellable_is_cancelled (cancellable))
  ------------------
  |  Branch (321:7): [True: 0, False: 6.35k]
  ------------------
  322|      0|    {
  323|      0|      g_set_error_literal (error,
  324|      0|                           G_IO_ERROR,
  ------------------
  |  |   42|      0|#define G_IO_ERROR g_io_error_quark()
  ------------------
  325|      0|                           G_IO_ERROR_CANCELLED,
  326|      0|                           _("Operation was cancelled"));
  ------------------
  |  |   17|      0|#define _(String) glib_gettext(String)
  ------------------
  327|      0|      return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  328|      0|    }
  329|       |
  330|  6.35k|  return FALSE;
  ------------------
  |  |  925|  6.35k|#define	FALSE	(0)
  ------------------
  331|  6.35k|}

g_dbus_error_register_error:
  292|     22|{
  293|     22|  gboolean ret;
  294|     22|  QuarkCodePair pair;
  295|     22|  RegisteredError *re;
  296|       |
  297|     22|  g_return_val_if_fail (dbus_error_name != NULL, FALSE);
  ------------------
  |  |  663|     22|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     22|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     22|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     22|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     22|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     22| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     22|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     22|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     22|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 22, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     22|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     22|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     22|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     22|   else                                         \
  |  |  |  |  |  |  |  | 1240|     22|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     22|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     22|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     22|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     22|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 22, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     22|      { } \
  |  |  666|     22|    else \
  |  |  667|     22|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     22|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     22|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 22]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  298|       |
  299|     22|  ret = FALSE;
  ------------------
  |  |  925|     22|#define	FALSE	(0)
  ------------------
  300|       |
  301|     22|  G_LOCK (error_lock);
  ------------------
  |  |  137|     22|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     22|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  302|       |
  303|     22|  if (quark_code_pair_to_re == NULL)
  ------------------
  |  Branch (303:7): [True: 1, False: 21]
  ------------------
  304|      1|    {
  305|      1|      g_assert (dbus_error_name_to_re == NULL); /* check invariant */
  ------------------
  |  |  275|      1|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      1|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      1|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      1|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  306|      1|      quark_code_pair_to_re = g_hash_table_new ((GHashFunc) quark_code_pair_hash_func,
  307|      1|                                                (GEqualFunc) quark_code_pair_equal_func);
  308|      1|      dbus_error_name_to_re = g_hash_table_new_full (g_str_hash,
  309|      1|                                                     g_str_equal,
  310|      1|                                                     NULL,
  311|      1|                                                     (GDestroyNotify) registered_error_free);
  312|      1|    }
  313|       |
  314|     22|  if (g_hash_table_lookup (dbus_error_name_to_re, dbus_error_name) != NULL)
  ------------------
  |  Branch (314:7): [True: 0, False: 22]
  ------------------
  315|      0|    goto out;
  316|       |
  317|     22|  pair.error_domain = error_domain;
  318|     22|  pair.error_code = error_code;
  319|       |
  320|     22|  if (g_hash_table_lookup (quark_code_pair_to_re, &pair) != NULL)
  ------------------
  |  Branch (320:7): [True: 0, False: 22]
  ------------------
  321|      0|    goto out;
  322|       |
  323|     22|  re = g_new0 (RegisteredError, 1);
  ------------------
  |  |  332|     22|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     22|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     22|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     22|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     22|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     22|	  gpointer __p;						\
  |  |  |  |  264|     22|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 22]
  |  |  |  |  ------------------
  |  |  |  |  265|     22|	    __p = g_##func (__n);				\
  |  |  |  |  266|     22|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 22, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     22|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     22|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     22|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 22]
  |  |  |  |  |  Branch (267:26): [True: 22, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     22|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     22|	  else							\
  |  |  |  |  270|     22|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     22|	  __p;							\
  |  |  |  |  272|     22|	}))
  |  |  ------------------
  ------------------
  324|     22|  re->pair = pair;
  325|     22|  re->dbus_error_name = g_strdup (dbus_error_name);
  ------------------
  |  |  324|     22|#define g_strdup(x) g_strdup_inline (x)
  ------------------
  326|       |
  327|     22|  g_hash_table_insert (quark_code_pair_to_re, &(re->pair), re);
  328|     22|  g_hash_table_insert (dbus_error_name_to_re, re->dbus_error_name, re);
  329|       |
  330|     22|  ret = TRUE;
  ------------------
  |  |  929|     22|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     22|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  331|       |
  332|     22| out:
  333|     22|  G_UNLOCK (error_lock);
  ------------------
  |  |  138|     22|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     22|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  334|     22|  return ret;
  335|     22|}
gdbuserror.c:quark_code_pair_hash_func:
  237|     44|{
  238|     44|  gint val;
  239|     44|  val = pair->error_domain + pair->error_code;
  240|     44|  return g_int_hash (&val);
  241|     44|}

g_seekable_tell:
   66|  1.97k|{
   67|  1.97k|  GSeekableIface *iface;
   68|       |
   69|  1.97k|  g_return_val_if_fail (G_IS_SEEKABLE (seekable), 0);
  ------------------
  |  |  663|  1.97k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.97k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.97k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.97k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.97k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.97k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.97k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.97k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  13.8k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.97k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1.97k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1.97k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.97k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.97k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.97k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.97k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.97k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.97k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.97k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.97k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.97k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.97k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.97k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.97k|      { } \
  |  |  666|  1.97k|    else \
  |  |  667|  1.97k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  1.97k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.97k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.97k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   70|       |
   71|  1.97k|  iface = G_SEEKABLE_GET_IFACE (seekable);
  ------------------
  |  |   37|  1.97k|#define G_SEEKABLE_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_SEEKABLE, GSeekableIface))
  |  |  ------------------
  |  |  |  |  584|  1.97k|#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2668|  1.97k|#define _G_TYPE_IGI(ip, gt, ct)         ((ct*) g_type_interface_peek (((GTypeInstance*) ip)->g_class, gt))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   72|       |
   73|  1.97k|  return (* iface->tell) (seekable);
   74|  1.97k|}
g_seekable_can_seek:
   86|  6.62k|{
   87|  6.62k|  GSeekableIface *iface;
   88|       |  
   89|  6.62k|  g_return_val_if_fail (G_IS_SEEKABLE (seekable), FALSE);
  ------------------
  |  |  663|  6.62k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  6.62k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  6.62k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  6.62k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  6.62k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  6.62k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  6.62k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  6.62k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  46.3k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6.62k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 6.62k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 6.62k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6.62k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  6.62k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.62k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.62k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  6.62k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  6.62k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  6.62k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.62k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.62k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  6.62k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6.62k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  6.62k|      { } \
  |  |  666|  6.62k|    else \
  |  |  667|  6.62k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  6.62k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  6.62k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6.62k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   90|       |
   91|  6.62k|  iface = G_SEEKABLE_GET_IFACE (seekable);
  ------------------
  |  |   37|  6.62k|#define G_SEEKABLE_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_SEEKABLE, GSeekableIface))
  |  |  ------------------
  |  |  |  |  584|  6.62k|#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2668|  6.62k|#define _G_TYPE_IGI(ip, gt, ct)         ((ct*) g_type_interface_peek (((GTypeInstance*) ip)->g_class, gt))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   92|       |
   93|  6.62k|  return (* iface->can_seek) (seekable);
   94|  6.62k|}
g_seekable_seek:
  130|  7.04k|{
  131|  7.04k|  GSeekableIface *iface;
  132|       |  
  133|  7.04k|  g_return_val_if_fail (G_IS_SEEKABLE (seekable), FALSE);
  ------------------
  |  |  663|  7.04k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  7.04k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  7.04k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  7.04k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  7.04k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  7.04k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  7.04k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  7.04k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  49.2k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7.04k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 7.04k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 7.04k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7.04k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  7.04k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  7.04k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  7.04k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  7.04k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  7.04k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  7.04k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  7.04k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  7.04k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  7.04k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 7.04k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  7.04k|      { } \
  |  |  666|  7.04k|    else \
  |  |  667|  7.04k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  7.04k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  7.04k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7.04k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  134|       |
  135|  7.04k|  iface = G_SEEKABLE_GET_IFACE (seekable);
  ------------------
  |  |   37|  7.04k|#define G_SEEKABLE_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_SEEKABLE, GSeekableIface))
  |  |  ------------------
  |  |  |  |  584|  7.04k|#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2668|  7.04k|#define _G_TYPE_IGI(ip, gt, ct)         ((ct*) g_type_interface_peek (((GTypeInstance*) ip)->g_class, gt))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  136|       |
  137|  7.04k|  return (* iface->seek) (seekable, offset, type, cancellable, error);
  138|  7.04k|}
gseekable.c:g_seekable_default_init:
   52|      1|{
   53|      1|}

g_array_sized_new:
  336|  6.06k|{
  337|  6.06k|  GRealArray *array;
  338|       |  
  339|  6.06k|  g_return_val_if_fail (elt_size > 0, NULL);
  ------------------
  |  |  663|  6.06k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  6.06k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  6.06k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  6.06k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  6.06k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  6.06k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  6.06k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  6.06k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  6.06k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6.06k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  6.06k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.06k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.06k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  6.06k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  6.06k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  6.06k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.06k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.06k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  6.06k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6.06k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  6.06k|      { } \
  |  |  666|  6.06k|    else \
  |  |  667|  6.06k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  6.06k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  6.06k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6.06k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  340|       |#if (UINT_WIDTH / 8) >= GLIB_SIZEOF_SIZE_T
  341|       |  g_return_val_if_fail (elt_size <= G_MAXSIZE / 2 - 1, NULL);
  342|       |#endif
  343|       |
  344|  6.06k|  array = g_slice_new (GRealArray);
  ------------------
  |  |   48|  6.06k|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
  345|       |
  346|  6.06k|  array->data            = NULL;
  347|  6.06k|  array->len             = 0;
  348|  6.06k|  array->elt_capacity = 0;
  349|  6.06k|  array->zero_terminated = (zero_terminated ? 1 : 0);
  ------------------
  |  Branch (349:29): [True: 0, False: 6.06k]
  ------------------
  350|  6.06k|  array->clear           = (clear ? 1 : 0);
  ------------------
  |  Branch (350:29): [True: 0, False: 6.06k]
  ------------------
  351|  6.06k|  array->elt_size        = elt_size;
  352|  6.06k|  array->clear_func      = NULL;
  353|       |
  354|  6.06k|  g_atomic_ref_count_init (&array->ref_count);
  355|       |
  356|  6.06k|  if (array->zero_terminated || reserved_size != 0)
  ------------------
  |  Branch (356:7): [True: 0, False: 6.06k]
  |  Branch (356:33): [True: 869, False: 5.19k]
  ------------------
  357|    869|    {
  358|    869|      g_array_maybe_expand (array, reserved_size);
  359|    869|      g_assert (array->data != NULL);
  ------------------
  |  |  275|    869|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    869|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    869|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    869|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    869|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    869| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    869|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    869|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    869|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 869, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    869|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    869|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    869|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    869|   else                                         \
  |  |  |  |  |  |  |  | 1240|    869|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    869|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    869|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    869|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    869|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 869, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    869|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    869|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    869|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 869]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  360|    869|      g_array_zero_terminate (array);
  ------------------
  |  |  114|    869|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|    869|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|    869|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 869]
  |  |  ------------------
  |  |  116|    869|    g_array_elt_zero ((array), (array)->len, 1);                        \
  |  |  ------------------
  |  |  |  |  113|      0|  (memset (g_array_elt_pos ((array), pos), 0,  g_array_elt_len ((array), len)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      0|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                 (memset (g_array_elt_pos ((array), pos), 0,  g_array_elt_len ((array), len)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|    869|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    869|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 869]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  361|    869|    }
  362|       |
  363|  6.06k|  return (GArray*) array;
  364|  6.06k|}
g_array_unref:
  459|  3.97k|{
  460|  3.97k|  GRealArray *rarray = (GRealArray*) array;
  461|  3.97k|  g_return_if_fail (array);
  ------------------
  |  |  650|  3.97k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.97k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  3.97k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.97k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.97k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.97k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.97k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.97k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.97k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.97k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.97k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.97k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.97k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.97k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.97k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  3.97k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.97k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.97k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.97k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.97k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  3.97k|      { } \
  |  |  653|  3.97k|    else \
  |  |  654|  3.97k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  3.97k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.97k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.97k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  462|       |
  463|  3.97k|  if (g_atomic_ref_count_dec (&rarray->ref_count))
  ------------------
  |  Branch (463:7): [True: 3.97k, False: 0]
  ------------------
  464|  3.97k|    array_free (rarray, FREE_SEGMENT);
  465|  3.97k|}
g_array_free:
  513|  2.09k|{
  514|  2.09k|  GRealArray *array = (GRealArray*) farray;
  515|  2.09k|  ArrayFreeFlags flags;
  516|       |
  517|  2.09k|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|  2.09k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.09k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.09k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.09k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.09k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.09k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.09k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.09k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.09k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.09k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.09k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.09k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.09k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.09k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.09k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.09k|      { } \
  |  |  666|  2.09k|    else \
  |  |  667|  2.09k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.09k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.09k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.09k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  518|       |
  519|  2.09k|  flags = (free_segment ? FREE_SEGMENT : 0);
  ------------------
  |  Branch (519:12): [True: 0, False: 2.09k]
  ------------------
  520|       |
  521|       |  /* if others are holding a reference, preserve the wrapper but do free/return the data */
  522|  2.09k|  if (!g_atomic_ref_count_dec (&array->ref_count))
  ------------------
  |  Branch (522:7): [True: 0, False: 2.09k]
  ------------------
  523|      0|    flags |= PRESERVE_WRAPPER;
  524|       |
  525|  2.09k|  return array_free (array, flags);
  526|  2.09k|}
g_array_append_vals:
  592|  7.14k|{
  593|  7.14k|  GRealArray *array = (GRealArray*) farray;
  594|       |
  595|  7.14k|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|  7.14k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  7.14k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  7.14k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  7.14k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  7.14k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  7.14k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  7.14k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  7.14k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  7.14k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7.14k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  7.14k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  7.14k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  7.14k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  7.14k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  7.14k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  7.14k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  7.14k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  7.14k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  7.14k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 7.14k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  7.14k|      { } \
  |  |  666|  7.14k|    else \
  |  |  667|  7.14k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  7.14k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  7.14k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7.14k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  596|       |
  597|  7.14k|  if (len == 0)
  ------------------
  |  Branch (597:7): [True: 0, False: 7.14k]
  ------------------
  598|      0|    return farray;
  599|       |
  600|  7.14k|  g_array_maybe_expand (array, len);
  601|       |
  602|  7.14k|  memcpy (g_array_elt_pos (array, array->len), data, 
  ------------------
  |  |  111|  7.14k|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  ------------------
  |  |  |  |  110|  7.14k|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  ------------------
  ------------------
  603|  7.14k|          g_array_elt_len (array, len));
  ------------------
  |  |  110|  7.14k|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  ------------------
  604|       |
  605|  7.14k|  array->len += len;
  606|       |
  607|  7.14k|  g_array_zero_terminate (array);
  ------------------
  |  |  114|  7.14k|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|  7.14k|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|  7.14k|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 7.14k]
  |  |  ------------------
  |  |  116|  7.14k|    g_array_elt_zero ((array), (array)->len, 1);                        \
  |  |  ------------------
  |  |  |  |  113|      0|  (memset (g_array_elt_pos ((array), pos), 0,  g_array_elt_len ((array), len)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      0|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                 (memset (g_array_elt_pos ((array), pos), 0,  g_array_elt_len ((array), len)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|  7.14k|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  7.14k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7.14k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  608|       |
  609|  7.14k|  return farray;
  610|  7.14k|}
g_array_set_size:
  759|    869|{
  760|    869|  GRealArray *array = (GRealArray*) farray;
  761|       |
  762|    869|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|    869|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    869|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    869|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    869|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    869|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    869| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    869|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    869|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    869|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 869, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    869|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    869|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    869|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    869|   else                                         \
  |  |  |  |  |  |  |  | 1240|    869|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    869|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    869|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    869|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    869|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 869, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    869|      { } \
  |  |  666|    869|    else \
  |  |  667|    869|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    869|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    869|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 869]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  763|       |
  764|    869|  if (length > array->len)
  ------------------
  |  Branch (764:7): [True: 869, False: 0]
  ------------------
  765|    869|    {
  766|    869|      g_array_maybe_expand (array, length - array->len);
  767|       |      
  768|    869|      if (array->clear)
  ------------------
  |  Branch (768:11): [True: 0, False: 869]
  ------------------
  769|      0|        g_array_elt_zero (array, array->len, length - array->len);
  ------------------
  |  |  113|      0|  (memset (g_array_elt_pos ((array), pos), 0,  g_array_elt_len ((array), len)))
  |  |  ------------------
  |  |  |  |  111|      0|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                 (memset (g_array_elt_pos ((array), pos), 0,  g_array_elt_len ((array), len)))
  |  |  ------------------
  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  ------------------
  ------------------
  770|    869|    }
  771|      0|  else if (length < array->len)
  ------------------
  |  Branch (771:12): [True: 0, False: 0]
  ------------------
  772|      0|    g_array_remove_range (farray, length, array->len - length);
  773|       |  
  774|    869|  array->len = length;
  775|       |  
  776|    869|  g_array_zero_terminate (array);
  ------------------
  |  |  114|    869|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|    869|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|    869|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 869]
  |  |  ------------------
  |  |  116|    869|    g_array_elt_zero ((array), (array)->len, 1);                        \
  |  |  ------------------
  |  |  |  |  113|      0|  (memset (g_array_elt_pos ((array), pos), 0,  g_array_elt_len ((array), len)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      0|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                 (memset (g_array_elt_pos ((array), pos), 0,  g_array_elt_len ((array), len)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|    869|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    869|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 869]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  777|       |  
  778|    869|  return farray;
  779|    869|}
g_ptr_array_new_with_free_func:
 1616|  1.42k|{
 1617|  1.42k|  return ptr_array_new (0, element_free_func, FALSE);
  ------------------
  |  |  925|  1.42k|#define	FALSE	(0)
  ------------------
 1618|  1.42k|}
g_ptr_array_ref:
 1742|    108|{
 1743|    108|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 1744|       |
 1745|    108|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    108|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    108|      { } \
  |  |  666|    108|    else \
  |  |  667|    108|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1746|       |
 1747|    108|  g_atomic_ref_count_inc (&rarray->ref_count);
 1748|       |
 1749|    108|  return array;
 1750|    108|}
g_ptr_array_unref:
 1767|  1.53k|{
 1768|  1.53k|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 1769|       |
 1770|  1.53k|  g_return_if_fail (array);
  ------------------
  |  |  650|  1.53k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.53k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.53k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.53k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.53k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.53k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.53k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.53k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.53k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.53k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.53k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.53k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.53k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.53k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.53k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.53k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.53k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.53k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.53k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.53k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.53k|      { } \
  |  |  653|  1.53k|    else \
  |  |  654|  1.53k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.53k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.53k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.53k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1771|       |
 1772|  1.53k|  if (g_atomic_ref_count_dec (&rarray->ref_count))
  ------------------
  |  Branch (1772:7): [True: 1.42k, False: 108]
  ------------------
 1773|  1.42k|    ptr_array_free (array, FREE_SEGMENT);
 1774|  1.53k|}
g_ptr_array_add:
 2215|  1.94k|{
 2216|  1.94k|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 2217|       |
 2218|  1.94k|  g_return_if_fail (rarray);
  ------------------
  |  |  650|  1.94k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.94k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.94k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.94k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.94k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.94k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.94k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.94k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.94k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.94k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.94k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.94k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.94k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.94k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.94k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.94k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.94k|      { } \
  |  |  653|  1.94k|    else \
  |  |  654|  1.94k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.94k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.94k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.94k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2219|  1.94k|  g_return_if_fail (rarray->len == 0 || (rarray->len != 0 && rarray->pdata != NULL));
  ------------------
  |  |  650|  1.94k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.94k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.94k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.94k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.94k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.94k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.94k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.94k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  7.92k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.34k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.34k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 605, False: 1.34k]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.94k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.94k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.94k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.94k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.94k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.94k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.94k|      { } \
  |  |  653|  1.94k|    else \
  |  |  654|  1.94k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.94k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.94k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.94k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2220|       |
 2221|  1.94k|  g_ptr_array_maybe_expand (rarray, 1u + rarray->null_terminated);
 2222|       |
 2223|  1.94k|  rarray->pdata[rarray->len++] = data;
 2224|       |
 2225|  1.94k|  ptr_array_maybe_null_terminate (rarray);
 2226|  1.94k|}
g_byte_array_new:
 2694|  5.19k|{
 2695|  5.19k|  return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, 0);
  ------------------
  |  |  925|  5.19k|#define	FALSE	(0)
  ------------------
                return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, 0);
  ------------------
  |  |  925|  5.19k|#define	FALSE	(0)
  ------------------
 2696|  5.19k|}
g_byte_array_sized_new:
 2771|    869|{
 2772|    869|  return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, reserved_size);
  ------------------
  |  |  925|    869|#define	FALSE	(0)
  ------------------
                return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, reserved_size);
  ------------------
  |  |  925|    869|#define	FALSE	(0)
  ------------------
 2773|    869|}
g_byte_array_free:
 2791|  2.09k|{
 2792|  2.09k|  return (guint8 *)g_array_free ((GArray *)array, free_segment);
 2793|  2.09k|}
g_byte_array_free_to_bytes:
 2815|  2.09k|{
 2816|  2.09k|  gsize length;
 2817|       |
 2818|  2.09k|  g_return_val_if_fail (array != NULL, NULL);
  ------------------
  |  |  663|  2.09k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.09k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.09k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.09k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.09k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.09k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.09k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.09k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.09k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.09k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.09k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.09k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.09k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.09k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.09k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.09k|      { } \
  |  |  666|  2.09k|    else \
  |  |  667|  2.09k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.09k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.09k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.09k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2819|       |
 2820|  2.09k|  length = array->len;
 2821|  2.09k|  return g_bytes_new_take (g_byte_array_free (array, FALSE), length);
  ------------------
  |  |  925|  2.09k|#define	FALSE	(0)
  ------------------
 2822|  2.09k|}
g_byte_array_unref:
 2854|  3.97k|{
 2855|  3.97k|  g_array_unref ((GArray *)array);
 2856|  3.97k|}
g_byte_array_append:
 2873|  7.14k|{
 2874|  7.14k|  g_array_append_vals ((GArray *)array, (guint8 *)data, len);
 2875|       |
 2876|  7.14k|  return array;
 2877|  7.14k|}
g_byte_array_set_size:
 2912|    869|{
 2913|    869|  g_array_set_size ((GArray *)array, length);
 2914|       |
 2915|    869|  return array;
 2916|    869|}
garray.c:array_free:
  531|  6.06k|{
  532|  6.06k|  gchar *segment;
  533|       |
  534|  6.06k|  if (flags & FREE_SEGMENT)
  ------------------
  |  Branch (534:7): [True: 3.97k, False: 2.09k]
  ------------------
  535|  3.97k|    {
  536|  3.97k|      if (array->clear_func != NULL)
  ------------------
  |  Branch (536:11): [True: 0, False: 3.97k]
  ------------------
  537|      0|        {
  538|      0|          guint i;
  539|       |
  540|      0|          for (i = 0; i < array->len; i++)
  ------------------
  |  Branch (540:23): [True: 0, False: 0]
  ------------------
  541|      0|            array->clear_func (g_array_elt_pos (array, i));
  ------------------
  |  |  111|      0|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  ------------------
  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  ------------------
  ------------------
  542|      0|        }
  543|       |
  544|  3.97k|      g_free (array->data);
  545|  3.97k|      segment = NULL;
  546|  3.97k|    }
  547|  2.09k|  else
  548|  2.09k|    segment = (gchar*) array->data;
  549|       |
  550|  6.06k|  if (flags & PRESERVE_WRAPPER)
  ------------------
  |  Branch (550:7): [True: 0, False: 6.06k]
  ------------------
  551|      0|    {
  552|      0|      array->data            = NULL;
  553|      0|      array->len             = 0;
  554|      0|      array->elt_capacity = 0;
  555|      0|    }
  556|  6.06k|  else
  557|  6.06k|    {
  558|  6.06k|      g_slice_free1 (sizeof (GRealArray), array);
  559|  6.06k|    }
  560|       |
  561|  6.06k|  return segment;
  562|  6.06k|}
garray.c:g_array_maybe_expand:
 1053|  8.87k|{
 1054|  8.87k|  guint max_len, want_len;
 1055|       | 
 1056|       |  /* The maximum array length is derived from following constraints:
 1057|       |   * - The number of bytes must fit into a gsize / 2.
 1058|       |   * - The number of elements must fit into guint.
 1059|       |   * - zero terminated arrays must leave space for the terminating element
 1060|       |   */
 1061|  8.87k|  max_len = MIN (G_MAXSIZE / 2 / array->elt_size, G_MAXUINT) - array->zero_terminated;
  ------------------
  |  |  936|  8.87k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 0, False: 8.87k]
  |  |  ------------------
  ------------------
 1062|       |
 1063|       |  /* Detect potential overflow */
 1064|  8.87k|  if G_UNLIKELY ((max_len - array->len) < len)
  ------------------
  |  | 1245|  8.87k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  8.87k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  8.87k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  8.87k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  8.87k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  8.87k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 8.87k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  8.87k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  8.87k|   else                                         \
  |  |  |  |  |  | 1240|  8.87k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  8.87k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  8.87k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  8.87k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  8.87k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  8.87k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  8.87k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 8.87k]
  |  |  ------------------
  ------------------
 1065|  8.87k|    g_error ("adding %u to array would overflow", len);
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1066|       |
 1067|  8.87k|  want_len = array->len + len + array->zero_terminated;
 1068|  8.87k|  if (want_len > array->elt_capacity)
  ------------------
  |  Branch (1068:7): [True: 6.41k, False: 2.46k]
  ------------------
 1069|  6.41k|    {
 1070|  6.41k|      gsize want_alloc = g_nearest_pow (g_array_elt_len (array, want_len));
  ------------------
  |  |  110|  6.41k|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  ------------------
 1071|  6.41k|      g_assert (want_alloc >= g_array_elt_len (array, want_len));
  ------------------
  |  |  275|  6.41k|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  6.41k|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|  6.41k|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|  6.41k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  6.41k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  6.41k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  6.41k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  6.41k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  6.41k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6.41k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  6.41k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.41k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.41k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  6.41k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  6.41k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  6.41k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  6.41k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  6.41k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  6.41k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 6.41k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|  6.41k|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|  6.41k|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  6.41k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6.41k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1072|  6.41k|      want_alloc = MAX (want_alloc, MIN_ARRAY_SIZE);
  ------------------
  |  |  933|  6.41k|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 1.87k, False: 4.54k]
  |  |  ------------------
  ------------------
 1073|       |
 1074|  6.41k|      array->data = g_realloc (array->data, want_alloc);
 1075|       |
 1076|  6.41k|      if (G_UNLIKELY (g_mem_gc_friendly))
  ------------------
  |  | 1245|  6.41k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  6.41k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  6.41k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  6.41k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  6.41k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  6.41k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 6.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  6.41k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  6.41k|   else                                         \
  |  |  |  |  |  | 1240|  6.41k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  6.41k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  6.41k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  6.41k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  6.41k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  6.41k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  6.41k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 6.41k]
  |  |  ------------------
  ------------------
 1077|      0|        memset (g_array_elt_pos (array, array->elt_capacity), 0,
  ------------------
  |  |  111|      0|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  ------------------
  |  |  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  ------------------
  ------------------
 1078|      0|                g_array_elt_len (array, want_len - array->elt_capacity));
  ------------------
  |  |  110|      0|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  ------------------
 1079|       |
 1080|  6.41k|      array->elt_capacity = MIN (want_alloc / array->elt_size, G_MAXUINT);
  ------------------
  |  |  936|  6.41k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 6.41k, False: 0]
  |  |  ------------------
  ------------------
 1081|  6.41k|    }
 1082|  8.87k|}
garray.c:ptr_array_new:
 1131|  1.42k|{
 1132|  1.42k|  GRealPtrArray *array;
 1133|       |
 1134|  1.42k|  array = g_slice_new (GRealPtrArray);
  ------------------
  |  |   48|  1.42k|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
 1135|       |
 1136|  1.42k|  array->pdata = NULL;
 1137|  1.42k|  array->len = 0;
 1138|  1.42k|  array->alloc = 0;
 1139|  1.42k|  array->null_terminated = null_terminated ? 1 : 0;
  ------------------
  |  Branch (1139:28): [True: 0, False: 1.42k]
  ------------------
 1140|  1.42k|  array->element_free_func = element_free_func;
 1141|       |
 1142|  1.42k|  g_atomic_ref_count_init (&array->ref_count);
 1143|       |
 1144|  1.42k|  if (reserved_size != 0)
  ------------------
  |  Branch (1144:7): [True: 0, False: 1.42k]
  ------------------
 1145|      0|    {
 1146|      0|      if (G_LIKELY (reserved_size < G_MAXUINT) &&
  ------------------
  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1147|      0|          null_terminated)
  ------------------
  |  Branch (1147:11): [True: 0, False: 0]
  ------------------
 1148|      0|        reserved_size++;
 1149|       |
 1150|      0|      g_ptr_array_maybe_expand (array, reserved_size);
 1151|      0|      g_assert (array->pdata != NULL);
  ------------------
  |  |  275|      0|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      0|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      0|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      0|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1152|       |
 1153|      0|      if (null_terminated)
  ------------------
  |  Branch (1153:11): [True: 0, False: 0]
  ------------------
 1154|      0|        {
 1155|       |          /* don't use ptr_array_maybe_null_terminate(). It helps the compiler
 1156|       |           * to see when @null_terminated is false and thereby inline
 1157|       |           * ptr_array_new() and possibly remove the code entirely. */
 1158|      0|          array->pdata[0] = NULL;
 1159|      0|        }
 1160|      0|    }
 1161|       |
 1162|  1.42k|  return (GPtrArray *) array;
 1163|  1.42k|}
garray.c:ptr_array_maybe_null_terminate:
 1122|  1.94k|{
 1123|  1.94k|  if (G_UNLIKELY (rarray->null_terminated))
  ------------------
  |  | 1245|  1.94k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  1.94k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.94k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.94k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.94k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.94k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1.94k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.94k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  1.94k|   else                                         \
  |  |  |  |  |  | 1240|  1.94k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  1.94k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.94k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 1.94k]
  |  |  ------------------
  ------------------
 1124|      0|    rarray->pdata[rarray->len] = NULL;
 1125|  1.94k|}
garray.c:ptr_array_free:
 1831|  1.42k|{
 1832|  1.42k|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 1833|  1.42k|  gpointer *segment;
 1834|       |
 1835|  1.42k|  if (flags & FREE_SEGMENT)
  ------------------
  |  Branch (1835:7): [True: 1.42k, False: 0]
  ------------------
 1836|  1.42k|    {
 1837|       |      /* Data here is stolen and freed manually. It is an
 1838|       |       * error to attempt to access the array data (including
 1839|       |       * mutating the array bounds) during destruction).
 1840|       |       *
 1841|       |       * https://bugzilla.gnome.org/show_bug.cgi?id=769064
 1842|       |       */
 1843|  1.42k|      gpointer *stolen_pdata = g_steal_pointer (&rarray->pdata);
  ------------------
  |  |  247|  1.42k|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 1844|  1.42k|      if (rarray->element_free_func != NULL)
  ------------------
  |  Branch (1844:11): [True: 1.42k, False: 0]
  ------------------
 1845|  1.42k|        {
 1846|  1.42k|          guint i;
 1847|       |
 1848|  3.37k|          for (i = 0; i < rarray->len; ++i)
  ------------------
  |  Branch (1848:23): [True: 1.94k, False: 1.42k]
  ------------------
 1849|  1.94k|            rarray->element_free_func (stolen_pdata[i]);
 1850|  1.42k|        }
 1851|       |
 1852|  1.42k|      g_free (stolen_pdata);
 1853|  1.42k|      segment = NULL;
 1854|  1.42k|    }
 1855|      0|  else
 1856|      0|    {
 1857|      0|      segment = rarray->pdata;
 1858|      0|      if (!segment && rarray->null_terminated)
  ------------------
  |  Branch (1858:11): [True: 0, False: 0]
  |  Branch (1858:23): [True: 0, False: 0]
  ------------------
 1859|      0|        segment = (gpointer *) g_new0 (char *, 1);
  ------------------
  |  |  332|      0|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      0|	  gpointer __p;						\
  |  |  |  |  264|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|      0|	    __p = g_##func (__n);				\
  |  |  |  |  266|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      0|	  __p;							\
  |  |  |  |  272|      0|	}))
  |  |  ------------------
  ------------------
 1860|      0|    }
 1861|       |
 1862|  1.42k|  if (flags & PRESERVE_WRAPPER)
  ------------------
  |  Branch (1862:7): [True: 0, False: 1.42k]
  ------------------
 1863|      0|    {
 1864|      0|      rarray->pdata = NULL;
 1865|      0|      rarray->len = 0;
 1866|      0|      rarray->alloc = 0;
 1867|      0|    }
 1868|  1.42k|  else
 1869|  1.42k|    {
 1870|  1.42k|      g_slice_free1 (sizeof (GRealPtrArray), rarray);
 1871|  1.42k|    }
 1872|       |
 1873|  1.42k|  return segment;
 1874|  1.42k|}
garray.c:g_ptr_array_maybe_expand:
 1879|  1.94k|{
 1880|  1.94k|  guint max_len;
 1881|       |
 1882|       |  /* The maximum array length is derived from following constraints:
 1883|       |   * - The number of bytes must fit into a gsize / 2.
 1884|       |   * - The number of elements must fit into guint.
 1885|       |   */
 1886|  1.94k|  max_len = MIN (G_MAXSIZE / 2 / sizeof (gpointer), G_MAXUINT);
  ------------------
  |  |  936|  1.94k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [Folded, False: 1.94k]
  |  |  ------------------
  ------------------
 1887|       |
 1888|       |  /* Detect potential overflow */
 1889|  1.94k|  if G_UNLIKELY ((max_len - array->len) < len)
  ------------------
  |  | 1245|  1.94k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  1.94k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.94k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.94k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.94k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.94k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1.94k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.94k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  1.94k|   else                                         \
  |  |  |  |  |  | 1240|  1.94k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  1.94k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.94k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 1.94k]
  |  |  ------------------
  ------------------
 1890|  1.94k|    g_error ("adding %u to array would overflow", len);
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1891|       |
 1892|  1.94k|  if ((array->len + len) > array->alloc)
  ------------------
  |  Branch (1892:7): [True: 824, False: 1.12k]
  ------------------
 1893|    824|    {
 1894|    824|      guint old_alloc = array->alloc;
 1895|    824|      gsize want_alloc = g_nearest_pow (sizeof (gpointer) * (array->len + len));
 1896|    824|      want_alloc = MAX (want_alloc, MIN_ARRAY_SIZE);
  ------------------
  |  |  933|    824|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 219, False: 605]
  |  |  ------------------
  ------------------
 1897|    824|      array->alloc = MIN (want_alloc / sizeof (gpointer), G_MAXUINT);
  ------------------
  |  |  936|    824|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 824, False: 0]
  |  |  ------------------
  ------------------
 1898|    824|      array->pdata = g_realloc (array->pdata, want_alloc);
 1899|    824|      if (G_UNLIKELY (g_mem_gc_friendly))
  ------------------
  |  | 1245|    824|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    824|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    824| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    824|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    824|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    824|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 824]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    824|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    824|   else                                         \
  |  |  |  |  |  | 1240|    824|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    824|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    824|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    824|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    824|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    824|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    824|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 824]
  |  |  ------------------
  ------------------
 1900|      0|        for ( ; old_alloc < array->alloc; old_alloc++)
  ------------------
  |  Branch (1900:17): [True: 0, False: 0]
  ------------------
 1901|      0|          array->pdata [old_alloc] = NULL;
 1902|    824|    }
 1903|  1.94k|}

g_bit_lock:
  214|  6.49k|{
  215|  6.49k|  gint *address_nonvolatile = (gint *) address;
  216|       |
  217|       |#ifdef USE_ASM_GOTO
  218|       | retry:
  219|       |  __asm__ volatile goto ("lock bts %1, (%0)\n"
  220|       |                         "jc %l[contended]"
  221|       |                         : /* no output */
  222|       |                         : "r" (address), "r" (lock_bit)
  223|       |                         : "cc", "memory"
  224|       |                         : contended);
  225|       |  return;
  226|       |
  227|       | contended:
  228|       |  {
  229|       |    guint mask = 1u << lock_bit;
  230|       |    guint v;
  231|       |
  232|       |    v = (guint) g_atomic_int_get (address_nonvolatile);
  233|       |    if (v & mask)
  234|       |      {
  235|       |        guint class = bit_lock_contended_class (address_nonvolatile);
  236|       |
  237|       |        g_atomic_int_add (&g_bit_lock_contended[class], +1);
  238|       |        g_futex_wait (address_nonvolatile, v);
  239|       |        g_atomic_int_add (&g_bit_lock_contended[class], -1);
  240|       |      }
  241|       |  }
  242|       |  goto retry;
  243|       |#else
  244|  6.49k|  guint mask = 1u << lock_bit;
  245|  6.49k|  guint v;
  246|       |
  247|  6.49k| retry:
  248|  6.49k|  v = g_atomic_int_or (address_nonvolatile, mask);
  ------------------
  |  |  221|  6.49k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  6.49k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  222|  6.49k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  6.49k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  223|  6.49k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (223:13): [Folded, False: 6.49k]
  |  |  ------------------
  |  |  224|  6.49k|    (guint) __atomic_fetch_or ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  225|  6.49k|  }))
  ------------------
  249|  6.49k|  if (v & mask)
  ------------------
  |  Branch (249:7): [True: 0, False: 6.49k]
  ------------------
  250|       |    /* already locked */
  251|      0|    {
  252|      0|      guint class = bit_lock_contended_class (address_nonvolatile);
  253|       |
  254|      0|      g_atomic_int_add (&g_bit_lock_contended[class], +1);
  ------------------
  |  |  209|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|      0|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 0]
  |  |  ------------------
  |  |  212|      0|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|      0|  }))
  ------------------
  255|      0|      g_futex_wait (address_nonvolatile, v);
  256|      0|      g_atomic_int_add (&g_bit_lock_contended[class], -1);
  ------------------
  |  |  209|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|      0|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 0]
  |  |  ------------------
  |  |  212|      0|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|      0|  }))
  ------------------
  257|       |
  258|      0|      goto retry;
  259|      0|    }
  260|  6.49k|#endif
  261|  6.49k|}
g_bit_unlock:
  331|  6.49k|{
  332|  6.49k|  gint *address_nonvolatile = (gint *) address;
  333|       |
  334|       |#ifdef USE_ASM_GOTO
  335|       |  __asm__ volatile ("lock btr %1, (%0)"
  336|       |                    : /* no output */
  337|       |                    : "r" (address), "r" (lock_bit)
  338|       |                    : "cc", "memory");
  339|       |#else
  340|  6.49k|  guint mask = 1u << lock_bit;
  341|       |
  342|  6.49k|  g_atomic_int_and (address_nonvolatile, ~mask);
  ------------------
  |  |  215|  6.49k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  6.49k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  216|  6.49k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  6.49k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  217|  6.49k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (217:13): [Folded, False: 6.49k]
  |  |  ------------------
  |  |  218|  6.49k|    (guint) __atomic_fetch_and ((atomic), (val), __ATOMIC_SEQ_CST);          \
  |  |  219|  6.49k|  }))
  ------------------
  343|  6.49k|#endif
  344|       |
  345|       |  /* Warning: unlocking may allow another thread to proceed and destroy the
  346|       |   * memory that @address points to. We thus must not dereference it anymore.
  347|       |   */
  348|       |
  349|  6.49k|  {
  350|  6.49k|    guint class = bit_lock_contended_class (address_nonvolatile);
  351|       |
  352|  6.49k|    if (g_atomic_int_get (&g_bit_lock_contended[class]))
  ------------------
  |  |  110|  6.49k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  6.49k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (110:3): [True: 0, False: 6.49k]
  |  |  ------------------
  |  |  111|  6.49k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  6.49k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  6.49k|    gint gaig_temp;                                                          \
  |  |  113|  6.49k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 6.49k]
  |  |  ------------------
  |  |  114|  6.49k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  6.49k|    (gint) gaig_temp;                                                        \
  |  |  116|  6.49k|  }))
  ------------------
  353|      0|      g_futex_wake (address_nonvolatile);
  354|  6.49k|  }
  355|  6.49k|}
g_pointer_bit_lock_and_get:
  446|  18.1k|{
  447|  18.1k|  guint class = bit_lock_contended_class (address);
  448|  18.1k|  guintptr mask;
  449|  18.1k|  guintptr v;
  450|       |
  451|  18.1k|  g_return_if_fail (lock_bit < 32);
  ------------------
  |  |  650|  18.1k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  18.1k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  18.1k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  18.1k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  18.1k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  18.1k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  18.1k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  18.1k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  18.1k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 18.1k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  18.1k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  18.1k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  18.1k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  18.1k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  18.1k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  18.1k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  18.1k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  18.1k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  18.1k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 18.1k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  18.1k|      { } \
  |  |  653|  18.1k|    else \
  |  |  654|  18.1k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  18.1k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  18.1k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 18.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  452|       |
  453|  18.1k|  mask = 1u << lock_bit;
  454|       |
  455|       |#ifdef USE_ASM_GOTO
  456|       |  if (G_LIKELY (!out_ptr))
  457|       |    {
  458|       |      while (TRUE)
  459|       |        {
  460|       |          __asm__ volatile goto ("lock bts %1, (%0)\n"
  461|       |                                 "jc %l[contended]"
  462|       |                                 : /* no output */
  463|       |                                 : "r"(address), "r"((gsize) lock_bit)
  464|       |                                 : "cc", "memory"
  465|       |                                 : contended);
  466|       |          return;
  467|       |
  468|       |        contended:
  469|       |          v = (guintptr) g_atomic_pointer_get ((gpointer *) address);
  470|       |          if (v & mask)
  471|       |            {
  472|       |              g_atomic_int_add (&g_bit_lock_contended[class], +1);
  473|       |              g_futex_wait (g_futex_int_address (address), v);
  474|       |              g_atomic_int_add (&g_bit_lock_contended[class], -1);
  475|       |            }
  476|       |        }
  477|       |    }
  478|       |#endif
  479|       |
  480|  18.1k|retry:
  481|  18.1k|  v = g_atomic_pointer_or ((gpointer *) address, mask);
  ------------------
  |  |  295|  18.1k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  18.1k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  296|  18.1k|    guintptr *gapo_atomic = (guintptr *) (atomic);                           \
  |  |  297|  18.1k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|  18.1k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  298|  18.1k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr));                 \
  |  |  ------------------
  |  |  |  |  871|  18.1k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  299|  18.1k|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (299:13): [Folded, False: 18.1k]
  |  |  ------------------
  |  |  300|  18.1k|    (void) (0 ? (val) ^ (val) : 1);                                          \
  |  |  ------------------
  |  |  |  Branch (300:13): [Folded, False: 18.1k]
  |  |  ------------------
  |  |  301|  18.1k|    (guintptr) __atomic_fetch_or (gapo_atomic, (val), __ATOMIC_SEQ_CST);     \
  |  |  302|  18.1k|  }))
  ------------------
  482|  18.1k|  if (v & mask)
  ------------------
  |  Branch (482:7): [True: 0, False: 18.1k]
  ------------------
  483|       |    /* already locked */
  484|      0|    {
  485|      0|      g_atomic_int_add (&g_bit_lock_contended[class], +1);
  ------------------
  |  |  209|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|      0|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 0]
  |  |  ------------------
  |  |  212|      0|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|      0|  }))
  ------------------
  486|      0|      g_futex_wait (g_futex_int_address (address), (guint) v);
  487|      0|      g_atomic_int_add (&g_bit_lock_contended[class], -1);
  ------------------
  |  |  209|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|      0|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 0]
  |  |  ------------------
  |  |  212|      0|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|      0|  }))
  ------------------
  488|      0|      goto retry;
  489|      0|    }
  490|       |
  491|  18.1k|  if (out_ptr)
  ------------------
  |  Branch (491:7): [True: 18.1k, False: 0]
  ------------------
  492|  18.1k|    *out_ptr = (v | mask);
  493|  18.1k|}
g_pointer_bit_unlock:
  588|  13.0k|{
  589|  13.0k|  void *address_nonvolatile = (void *) address;
  590|       |
  591|  13.0k|  g_return_if_fail (lock_bit < 32);
  ------------------
  |  |  650|  13.0k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  13.0k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  13.0k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  13.0k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  13.0k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  13.0k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  13.0k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  13.0k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  13.0k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13.0k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  13.0k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  13.0k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  13.0k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  13.0k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  13.0k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  13.0k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  13.0k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  13.0k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  13.0k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13.0k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  13.0k|      { } \
  |  |  653|  13.0k|    else \
  |  |  654|  13.0k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  13.0k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  13.0k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13.0k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  592|       |
  593|  13.0k|  {
  594|       |#ifdef USE_ASM_GOTO
  595|       |    __asm__ volatile ("lock btr %1, (%0)"
  596|       |                      : /* no output */
  597|       |                      : "r" (address), "r" ((gsize) lock_bit)
  598|       |                      : "cc", "memory");
  599|       |#else
  600|  13.0k|    gpointer *pointer_address = address_nonvolatile;
  601|  13.0k|    gsize mask = 1u << lock_bit;
  602|       |
  603|  13.0k|    g_atomic_pointer_and (pointer_address, ~mask);
  ------------------
  |  |  286|  13.0k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  13.0k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  287|  13.0k|    guintptr *gapa_atomic = (guintptr *) (atomic);                           \
  |  |  288|  13.0k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|  13.0k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  289|  13.0k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr));                 \
  |  |  ------------------
  |  |  |  |  871|  13.0k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  290|  13.0k|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (290:13): [Folded, False: 13.0k]
  |  |  ------------------
  |  |  291|  13.0k|    (void) (0 ? (val) ^ (val) : 1);                                          \
  |  |  ------------------
  |  |  |  Branch (291:13): [Folded, False: 13.0k]
  |  |  ------------------
  |  |  292|  13.0k|    (guintptr) __atomic_fetch_and (gapa_atomic, (val), __ATOMIC_SEQ_CST);    \
  |  |  293|  13.0k|  }))
  ------------------
  604|  13.0k|#endif
  605|       |
  606|       |    /* Warning: unlocking may allow another thread to proceed and destroy the
  607|       |     * memory that @address points to. We thus must not dereference it anymore.
  608|       |     */
  609|       |
  610|  13.0k|    {
  611|  13.0k|      guint class = bit_lock_contended_class (address_nonvolatile);
  612|       |
  613|  13.0k|      if (g_atomic_int_get (&g_bit_lock_contended[class]))
  ------------------
  |  |  110|  13.0k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  13.0k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (110:3): [True: 0, False: 13.0k]
  |  |  ------------------
  |  |  111|  13.0k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  13.0k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  13.0k|    gint gaig_temp;                                                          \
  |  |  113|  13.0k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 13.0k]
  |  |  ------------------
  |  |  114|  13.0k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  13.0k|    (gint) gaig_temp;                                                        \
  |  |  116|  13.0k|  }))
  ------------------
  614|      0|        g_futex_wake (g_futex_int_address (address_nonvolatile));
  615|  13.0k|    }
  616|  13.0k|  }
  617|  13.0k|}
g_pointer_bit_unlock_and_set:
  673|  5.13k|{
  674|  5.13k|  gpointer *pointer_address = address;
  675|  5.13k|  guint class = bit_lock_contended_class (address);
  676|  5.13k|  gpointer ptr2;
  677|       |
  678|  5.13k|  g_return_if_fail (lock_bit < 32u);
  ------------------
  |  |  650|  5.13k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.13k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  5.13k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.13k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.13k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.13k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.13k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.13k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  5.13k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.13k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.13k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.13k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.13k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  5.13k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.13k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.13k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  5.13k|      { } \
  |  |  653|  5.13k|    else \
  |  |  654|  5.13k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  5.13k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.13k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.13k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  679|       |
  680|  5.13k|  if (preserve_mask != 0)
  ------------------
  |  Branch (680:7): [True: 5.13k, False: 0]
  ------------------
  681|  5.13k|    {
  682|  5.13k|      gpointer old_ptr = g_atomic_pointer_get ((gpointer *) address);
  ------------------
  |  |  127|  5.13k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|  5.13k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|  5.13k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|  5.13k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|  5.13k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|  5.13k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|  5.13k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|  5.13k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|  5.13k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|  5.13k|    gapg_temp_newval;                                                      \
  |  |  133|  5.13k|  }))
  ------------------
  683|       |
  684|  5.13k|    again:
  685|  5.13k|      ptr2 = pointer_bit_lock_mask_ptr (ptr, lock_bit, FALSE, preserve_mask, old_ptr);
  ------------------
  |  |  925|  5.13k|#define	FALSE	(0)
  ------------------
  686|  5.13k|      if (!g_atomic_pointer_compare_and_exchange_full (pointer_address, old_ptr, ptr2, &old_ptr))
  ------------------
  |  |  262|  5.13k|  (G_GNUC_EXTENSION ({                                                             \
  |  |  ------------------
  |  |  |  |   62|  5.13k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  263|  5.13k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                       \
  |  |  ------------------
  |  |  |  |  871|  5.13k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  264|  5.13k|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gpointer));                       \
  |  |  ------------------
  |  |  |  |  871|  5.13k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  265|  5.13k|    (void) (0 ? (gpointer) *(atomic) : NULL);                                      \
  |  |  ------------------
  |  |  |  Branch (265:13): [Folded, False: 5.13k]
  |  |  ------------------
  |  |  266|  5.13k|    (void) (0 ? (gpointer) *(preval) : NULL);                                      \
  |  |  ------------------
  |  |  |  Branch (266:13): [Folded, False: 5.13k]
  |  |  ------------------
  |  |  267|  5.13k|    *(preval) = (oldval);                                                          \
  |  |  268|  5.13k|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,              \
  |  |  ------------------
  |  |  |  |  925|  5.13k|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (268:5): [True: 5.13k, False: 0]
  |  |  ------------------
  |  |  269|  5.13k|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ?             \
  |  |  270|  5.13k|                                 TRUE : FALSE;                                     \
  |  |  ------------------
  |  |  |  |  929|  5.13k|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|  5.13k|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                TRUE : FALSE;                                     \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  271|  5.13k|  }))
  ------------------
  |  Branch (686:11): [True: 0, False: 5.13k]
  ------------------
  687|      0|        goto again;
  688|  5.13k|    }
  689|      0|  else
  690|      0|    {
  691|      0|      ptr2 = pointer_bit_lock_mask_ptr (ptr, lock_bit, FALSE, 0, NULL);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  692|      0|      g_atomic_pointer_set (pointer_address, ptr2);
  ------------------
  |  |  135|      0|  (G_GNUC_EXTENSION ({                                                      \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  136|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  137|      0|    glib_typeof ((atomic)) gaps_temp_atomic = (atomic);                     \
  |  |  ------------------
  |  |  |  |   39|      0|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  138|      0|    glib_typeof (*(atomic)) gaps_temp_newval = (newval);                    \
  |  |  ------------------
  |  |  |  |   39|      0|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  139|      0|    (void) (0 ? (gpointer) * (atomic) : NULL);                              \
  |  |  ------------------
  |  |  |  Branch (139:13): [Folded, False: 0]
  |  |  ------------------
  |  |  140|      0|    __atomic_store (gaps_temp_atomic, &gaps_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  141|      0|  }))
  ------------------
  693|      0|    }
  694|       |
  695|  5.13k|  if (g_atomic_int_get (&g_bit_lock_contended[class]) > 0)
  ------------------
  |  |  110|  5.13k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  5.13k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  5.13k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  5.13k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  5.13k|    gint gaig_temp;                                                          \
  |  |  113|  5.13k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 5.13k]
  |  |  ------------------
  |  |  114|  5.13k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  5.13k|    (gint) gaig_temp;                                                        \
  |  |  116|  5.13k|  }))
  ------------------
  |  Branch (695:7): [True: 0, False: 5.13k]
  ------------------
  696|      0|    g_futex_wake (g_futex_int_address (address));
  697|       |
  698|       |  /* It makes no sense, if unlocking mangles the pointer. Assert against
  699|       |   * that.
  700|       |   *
  701|       |   * Note that based on @preserve_mask, the pointer also gets mangled, which
  702|       |   * can make sense for the caller. We don't assert for that. */
  703|  5.13k|  g_return_if_fail (ptr == pointer_bit_lock_mask_ptr (ptr, lock_bit, FALSE, 0, NULL));
  ------------------
  |  |  650|  5.13k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.13k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  5.13k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.13k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.13k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.13k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.13k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.13k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  5.13k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.13k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.13k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.13k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.13k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  5.13k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.13k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.13k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  5.13k|      { } \
  |  |  653|  5.13k|    else \
  |  |  654|  5.13k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  5.13k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.13k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.13k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  704|  5.13k|}
gbitlock.c:bit_lock_contended_class:
  179|  42.8k|{
  180|  42.8k|  return ((gsize) address) % G_N_ELEMENTS (g_bit_lock_contended);
  ------------------
  |  |  951|  42.8k|#define G_N_ELEMENTS(arr)		(sizeof (arr) / sizeof ((arr)[0]))
  ------------------
  181|  42.8k|}
gbitlock.c:pointer_bit_lock_mask_ptr:
  402|  10.2k|{
  403|  10.2k|  guintptr x_ptr;
  404|  10.2k|  guintptr x_preserve_ptr;
  405|  10.2k|  guintptr lock_mask;
  406|       |
  407|  10.2k|  x_ptr = (guintptr) ptr;
  408|       |
  409|  10.2k|  if (preserve_mask != 0)
  ------------------
  |  Branch (409:7): [True: 5.13k, False: 5.13k]
  ------------------
  410|  5.13k|    {
  411|  5.13k|      x_preserve_ptr = (guintptr) preserve_ptr;
  412|  5.13k|      x_ptr = (x_preserve_ptr & preserve_mask) | (x_ptr & ~preserve_mask);
  413|  5.13k|    }
  414|       |
  415|  10.2k|  if (lock_bit == G_MAXUINT)
  ------------------
  |  |   40|  10.2k|#define G_MAXUINT	UINT_MAX
  ------------------
  |  Branch (415:7): [True: 0, False: 10.2k]
  ------------------
  416|      0|    return (gpointer) x_ptr;
  417|       |
  418|  10.2k|  lock_mask = (guintptr) (1u << lock_bit);
  419|  10.2k|  if (set)
  ------------------
  |  Branch (419:7): [True: 0, False: 10.2k]
  ------------------
  420|      0|    return (gpointer) (x_ptr | lock_mask);
  421|  10.2k|  else
  422|  10.2k|    return (gpointer) (x_ptr & ~lock_mask);
  423|  10.2k|}

gsignal.c:g_bsearch_array_create:
  123|      3|{
  124|      3|  GBSearchArray *barray;
  125|      3|  guint size;
  126|       |
  127|      3|  g_return_val_if_fail (bconfig != NULL, NULL);
  ------------------
  |  |  663|      3|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      3|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      3|      { } \
  |  |  666|      3|    else \
  |  |  667|      3|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      3|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  128|       |
  129|      3|  size = sizeof (GBSearchArray) + bconfig->sizeof_node;
  130|      3|  if (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2)
  ------------------
  |  Branch (130:7): [True: 2, False: 1]
  ------------------
  131|      2|    size = G_BSEARCH_UPPER_POWER2 (size);
  ------------------
  |  |  119|      2|#define G_BSEARCH_UPPER_POWER2(n)       ((n) ? 1 << g_bit_storage ((n) - 1) : 0)
  |  |  ------------------
  |  |  |  |  363|      2|#define g_bit_storage(number)        g_bit_storage_impl(number)
  |  |  ------------------
  |  |  |  Branch (119:42): [True: 2, False: 0]
  |  |  ------------------
  ------------------
  132|      3|  barray = (GBSearchArray *) g_malloc (size);
  133|      3|  memset (barray, 0, sizeof (GBSearchArray));
  134|       |
  135|      3|  return barray;
  136|      3|}
gsignal.c:g_bsearch_array_lookup_fuzzy:
  147|      1|{
  148|      1|  GBSearchCompareFunc cmp_nodes = bconfig->cmp_nodes;
  149|      1|  guint8 *check = NULL, *nodes = G_BSEARCH_ARRAY_NODES (barray);
  ------------------
  |  |  120|      1|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  150|      1|  guint n_nodes = barray->n_nodes, offs = 0;
  151|      1|  guint sizeof_node = bconfig->sizeof_node;
  152|      1|  gint cmp = 0;
  153|       |
  154|      1|  while (offs < n_nodes)
  ------------------
  |  Branch (154:10): [True: 0, False: 1]
  ------------------
  155|      0|    {
  156|      0|      guint i = (offs + n_nodes) >> 1;
  157|       |
  158|      0|      check = nodes + i * sizeof_node;
  159|      0|      cmp = cmp_nodes (key_node, check);
  160|      0|      if (cmp == 0)
  ------------------
  |  Branch (160:11): [True: 0, False: 0]
  ------------------
  161|      0|        return sibling_or_after > 1 ? NULL : check;
  ------------------
  |  Branch (161:16): [True: 0, False: 0]
  ------------------
  162|      0|      else if (cmp < 0)
  ------------------
  |  Branch (162:16): [True: 0, False: 0]
  ------------------
  163|      0|        n_nodes = i;
  164|      0|      else /* (cmp > 0) */
  165|      0|        offs = i + 1;
  166|      0|    }
  167|       |
  168|       |  /* check is last mismatch, cmp > 0 indicates greater key */
  169|      1|  return G_LIKELY (!sibling_or_after) ? NULL : (sibling_or_after > 1 && cmp > 0) ? check + sizeof_node : check;
  ------------------
  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (169:49): [True: 0, False: 0]
  |  Branch (169:73): [True: 0, False: 0]
  ------------------
  170|      1|}
gsignal.c:g_bsearch_array_insert:
  222|      2|{
  223|      2|  guint8 *node;
  224|       |
  225|      2|  if (G_UNLIKELY (!barray->n_nodes))
  ------------------
  |  | 1245|      2|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 2, False: 0]
  |  |  ------------------
  ------------------
  226|      2|    {
  227|      2|      barray = g_bsearch_array_grow (barray, bconfig, 0);
  228|      2|      node = G_BSEARCH_ARRAY_NODES (barray);
  ------------------
  |  |  120|      2|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  229|      2|    }
  230|      0|  else
  231|      0|    {
  232|      0|      node = (guint8 *) g_bsearch_array_lookup_insertion (barray, bconfig, key_node);
  ------------------
  |  |  114|      0|    g_bsearch_array_lookup_fuzzy ((barray), (bconfig), (key_node), 2)
  ------------------
  233|      0|      if (G_LIKELY (node))
  ------------------
  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  234|      0|        {
  235|      0|          guint index_ = g_bsearch_array_get_index (barray, bconfig, node);
  236|       |
  237|       |          /* grow and insert */
  238|      0|          barray = g_bsearch_array_grow (barray, bconfig, index_);
  239|      0|          node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
  ------------------
  |  |  120|      0|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  240|      0|        }
  241|      0|      else /* no insertion needed, node already there */
  242|      0|        return barray;
  243|      0|    }
  244|      2|  memcpy (node, key_node, bconfig->sizeof_node);
  245|      2|  return barray;
  246|      2|}
gsignal.c:g_bsearch_array_grow:
  197|      2|{
  198|      2|  guint old_size = barray->n_nodes * bconfig->sizeof_node;
  199|      2|  guint new_size = old_size + bconfig->sizeof_node;
  200|      2|  guint8 *node;
  201|       |
  202|      2|  g_return_val_if_fail (index_ <= barray->n_nodes, NULL);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  203|       |
  204|      2|  if (G_UNLIKELY (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2))
  ------------------
  |  | 1245|      2|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 1, False: 1]
  |  |  ------------------
  ------------------
  205|      1|    {
  206|      1|      new_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + new_size);
  ------------------
  |  |  119|      1|#define G_BSEARCH_UPPER_POWER2(n)       ((n) ? 1 << g_bit_storage ((n) - 1) : 0)
  |  |  ------------------
  |  |  |  |  363|      1|#define g_bit_storage(number)        g_bit_storage_impl(number)
  |  |  ------------------
  |  |  |  Branch (119:42): [True: 1, False: 0]
  |  |  ------------------
  ------------------
  207|      1|      old_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + old_size);
  ------------------
  |  |  119|      1|#define G_BSEARCH_UPPER_POWER2(n)       ((n) ? 1 << g_bit_storage ((n) - 1) : 0)
  |  |  ------------------
  |  |  |  |  363|      1|#define g_bit_storage(number)        g_bit_storage_impl(number)
  |  |  ------------------
  |  |  |  Branch (119:42): [True: 1, False: 0]
  |  |  ------------------
  ------------------
  208|      1|      if (old_size != new_size)
  ------------------
  |  Branch (208:11): [True: 1, False: 0]
  ------------------
  209|      1|        barray = (GBSearchArray *) g_realloc (barray, new_size);
  210|      1|    }
  211|      1|  else
  212|      1|    barray = (GBSearchArray *) g_realloc (barray, sizeof (GBSearchArray) + new_size);
  213|      2|  node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
  ------------------
  |  |  120|      2|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  214|      2|  memmove (node + bconfig->sizeof_node, node, (barray->n_nodes - index_) * bconfig->sizeof_node);
  215|      2|  barray->n_nodes += 1;
  216|      2|  return barray;
  217|      2|}
gvalue.c:g_bsearch_array_create:
  123|      2|{
  124|      2|  GBSearchArray *barray;
  125|      2|  guint size;
  126|       |
  127|      2|  g_return_val_if_fail (bconfig != NULL, NULL);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  128|       |
  129|      2|  size = sizeof (GBSearchArray) + bconfig->sizeof_node;
  130|      2|  if (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2)
  ------------------
  |  Branch (130:7): [True: 2, False: 0]
  ------------------
  131|      2|    size = G_BSEARCH_UPPER_POWER2 (size);
  ------------------
  |  |  119|      2|#define G_BSEARCH_UPPER_POWER2(n)       ((n) ? 1 << g_bit_storage ((n) - 1) : 0)
  |  |  ------------------
  |  |  |  |  363|      2|#define g_bit_storage(number)        g_bit_storage_impl(number)
  |  |  ------------------
  |  |  |  Branch (119:42): [True: 2, False: 0]
  |  |  ------------------
  ------------------
  132|      2|  barray = (GBSearchArray *) g_malloc (size);
  133|      2|  memset (barray, 0, sizeof (GBSearchArray));
  134|       |
  135|      2|  return barray;
  136|      2|}
gvalue.c:g_bsearch_array_replace:
  251|    340|{
  252|    340|  guint8 *node = (guint8 *) g_bsearch_array_lookup (barray, bconfig, key_node);
  ------------------
  |  |   97|    340|    g_bsearch_array_lookup_fuzzy ((barray), (bconfig), (key_node), 0)
  ------------------
  253|    340|  if (G_LIKELY (node))  /* expected path */
  ------------------
  |  | 1244|    340|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    340|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    340| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    340|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    340|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    340|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 340]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    340|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    340|   else                                         \
  |  |  |  |  |  | 1240|    340|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    340|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    340|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 0, False: 340]
  |  |  ------------------
  ------------------
  254|      0|    memcpy (node, key_node, bconfig->sizeof_node);
  255|    340|  else                  /* revert to insertion */
  256|    340|    barray = g_bsearch_array_insert (barray, bconfig, key_node);
  257|    340|  return barray;
  258|    340|}
gvalue.c:g_bsearch_array_lookup_fuzzy:
  147|    678|{
  148|    678|  GBSearchCompareFunc cmp_nodes = bconfig->cmp_nodes;
  149|    678|  guint8 *check = NULL, *nodes = G_BSEARCH_ARRAY_NODES (barray);
  ------------------
  |  |  120|    678|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  150|    678|  guint n_nodes = barray->n_nodes, offs = 0;
  151|    678|  guint sizeof_node = bconfig->sizeof_node;
  152|    678|  gint cmp = 0;
  153|       |
  154|  4.70k|  while (offs < n_nodes)
  ------------------
  |  Branch (154:10): [True: 4.02k, False: 678]
  ------------------
  155|  4.02k|    {
  156|  4.02k|      guint i = (offs + n_nodes) >> 1;
  157|       |
  158|  4.02k|      check = nodes + i * sizeof_node;
  159|  4.02k|      cmp = cmp_nodes (key_node, check);
  160|  4.02k|      if (cmp == 0)
  ------------------
  |  Branch (160:11): [True: 0, False: 4.02k]
  ------------------
  161|      0|        return sibling_or_after > 1 ? NULL : check;
  ------------------
  |  Branch (161:16): [True: 0, False: 0]
  ------------------
  162|  4.02k|      else if (cmp < 0)
  ------------------
  |  Branch (162:16): [True: 924, False: 3.10k]
  ------------------
  163|    924|        n_nodes = i;
  164|  3.10k|      else /* (cmp > 0) */
  165|  3.10k|        offs = i + 1;
  166|  4.02k|    }
  167|       |
  168|       |  /* check is last mismatch, cmp > 0 indicates greater key */
  169|    678|  return G_LIKELY (!sibling_or_after) ? NULL : (sibling_or_after > 1 && cmp > 0) ? check + sizeof_node : check;
  ------------------
  |  | 1244|    678|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    678|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    678| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    678|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    678|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    678|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 340, False: 338]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    678|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    678|   else                                         \
  |  |  |  |  |  | 1240|    678|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    338|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    338|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    678|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    678|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    678|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    678|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 340, False: 338]
  |  |  ------------------
  ------------------
  |  Branch (169:49): [True: 338, False: 0]
  |  Branch (169:73): [True: 212, False: 126]
  ------------------
  170|    678|}
gvalue.c:g_bsearch_array_insert:
  222|    340|{
  223|    340|  guint8 *node;
  224|       |
  225|    340|  if (G_UNLIKELY (!barray->n_nodes))
  ------------------
  |  | 1245|    340|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    340|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    340| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    340|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    340|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    340|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 338]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    340|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    340|   else                                         \
  |  |  |  |  |  | 1240|    340|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    338|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    338|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    340|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    340|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 2, False: 338]
  |  |  ------------------
  ------------------
  226|      2|    {
  227|      2|      barray = g_bsearch_array_grow (barray, bconfig, 0);
  228|      2|      node = G_BSEARCH_ARRAY_NODES (barray);
  ------------------
  |  |  120|      2|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  229|      2|    }
  230|    338|  else
  231|    338|    {
  232|    338|      node = (guint8 *) g_bsearch_array_lookup_insertion (barray, bconfig, key_node);
  ------------------
  |  |  114|    338|    g_bsearch_array_lookup_fuzzy ((barray), (bconfig), (key_node), 2)
  ------------------
  233|    338|      if (G_LIKELY (node))
  ------------------
  |  | 1244|    338|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    338|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    338| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    338|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    338|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    338|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 338, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    338|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    338|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    338|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    338|   else                                         \
  |  |  |  |  |  | 1240|    338|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    338|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    338|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    338|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    338|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 338, False: 0]
  |  |  ------------------
  ------------------
  234|    338|        {
  235|    338|          guint index_ = g_bsearch_array_get_index (barray, bconfig, node);
  236|       |
  237|       |          /* grow and insert */
  238|    338|          barray = g_bsearch_array_grow (barray, bconfig, index_);
  239|    338|          node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
  ------------------
  |  |  120|    338|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  240|    338|        }
  241|      0|      else /* no insertion needed, node already there */
  242|      0|        return barray;
  243|    338|    }
  244|    340|  memcpy (node, key_node, bconfig->sizeof_node);
  245|    340|  return barray;
  246|    340|}
gvalue.c:g_bsearch_array_grow:
  197|    340|{
  198|    340|  guint old_size = barray->n_nodes * bconfig->sizeof_node;
  199|    340|  guint new_size = old_size + bconfig->sizeof_node;
  200|    340|  guint8 *node;
  201|       |
  202|    340|  g_return_val_if_fail (index_ <= barray->n_nodes, NULL);
  ------------------
  |  |  663|    340|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    340|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    340|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    340|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    340|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    340| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    340|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    340|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    340|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 340, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    340|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    340|   else                                         \
  |  |  |  |  |  |  |  | 1240|    340|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    340|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    340|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 340, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    340|      { } \
  |  |  666|    340|    else \
  |  |  667|    340|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    340|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    340|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 340]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  203|       |
  204|    340|  if (G_UNLIKELY (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2))
  ------------------
  |  | 1245|    340|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    340|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    340| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    340|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    340|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    340|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 340, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    340|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    340|   else                                         \
  |  |  |  |  |  | 1240|    340|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    340|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    340|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 340, False: 0]
  |  |  ------------------
  ------------------
  205|    340|    {
  206|    340|      new_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + new_size);
  ------------------
  |  |  119|    340|#define G_BSEARCH_UPPER_POWER2(n)       ((n) ? 1 << g_bit_storage ((n) - 1) : 0)
  |  |  ------------------
  |  |  |  |  363|    340|#define g_bit_storage(number)        g_bit_storage_impl(number)
  |  |  ------------------
  |  |  |  Branch (119:42): [True: 340, False: 0]
  |  |  ------------------
  ------------------
  207|    340|      old_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + old_size);
  ------------------
  |  |  119|    340|#define G_BSEARCH_UPPER_POWER2(n)       ((n) ? 1 << g_bit_storage ((n) - 1) : 0)
  |  |  ------------------
  |  |  |  |  363|    340|#define g_bit_storage(number)        g_bit_storage_impl(number)
  |  |  ------------------
  |  |  |  Branch (119:42): [True: 340, False: 0]
  |  |  ------------------
  ------------------
  208|    340|      if (old_size != new_size)
  ------------------
  |  Branch (208:11): [True: 16, False: 324]
  ------------------
  209|     16|        barray = (GBSearchArray *) g_realloc (barray, new_size);
  210|    340|    }
  211|      0|  else
  212|      0|    barray = (GBSearchArray *) g_realloc (barray, sizeof (GBSearchArray) + new_size);
  213|    340|  node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
  ------------------
  |  |  120|    340|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  214|    340|  memmove (node + bconfig->sizeof_node, node, (barray->n_nodes - index_) * bconfig->sizeof_node);
  215|    340|  barray->n_nodes += 1;
  216|    340|  return barray;
  217|    340|}
gvalue.c:g_bsearch_array_get_index:
  184|    338|{
  185|    338|  guint distance = ((guint8*) node_in_array) - G_BSEARCH_ARRAY_NODES (barray);
  ------------------
  |  |  120|    338|#define G_BSEARCH_ARRAY_NODES(barray)    (((guint8*) (barray)) + sizeof (GBSearchArray))
  ------------------
  186|       |
  187|    338|  g_return_val_if_fail (node_in_array != NULL, barray->n_nodes);
  ------------------
  |  |  663|    338|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    338|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    338|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    338|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    338|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    338| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    338|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    338|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    338|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 338, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    338|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    338|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    338|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    338|   else                                         \
  |  |  |  |  |  |  |  | 1240|    338|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    338|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    338|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    338|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    338|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 338, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    338|      { } \
  |  |  666|    338|    else \
  |  |  667|    338|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    338|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    338|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 338]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  188|       |
  189|    338|  distance /= bconfig->sizeof_node;
  190|       |
  191|    338|  return MIN (distance, barray->n_nodes + 1); /* may return one after end */
  ------------------
  |  |  936|    338|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 338, False: 0]
  |  |  ------------------
  ------------------
  192|    338|}

g_bytes_new:
   97|    741|{
   98|    741|  g_return_val_if_fail (data != NULL || size == 0, NULL);
  ------------------
  |  |  663|    741|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    741|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    741|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    741|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    741|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    741| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    741|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    741|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.48k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 741, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    741|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    741|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    741|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    741|   else                                         \
  |  |  |  |  |  |  |  | 1240|    741|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    741|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    741|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    741|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    741|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 741, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    741|      { } \
  |  |  666|    741|    else \
  |  |  667|    741|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    741|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    741|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 741]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   99|       |
  100|    741|  return g_bytes_new_take (g_memdup2 (data, size), size);
  101|    741|}
g_bytes_new_take:
  127|  2.83k|{
  128|  2.83k|  return g_bytes_new_with_free_func (data, size, g_free, data);
  129|  2.83k|}
g_bytes_new_with_free_func:
  181|  3.40k|{
  182|  3.40k|  GBytes *bytes;
  183|       |
  184|  3.40k|  g_return_val_if_fail (data != NULL || size == 0, NULL);
  ------------------
  |  |  663|  3.40k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.40k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.40k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.40k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.40k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.40k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.40k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.40k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  6.80k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.40k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.40k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.40k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.40k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.40k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.40k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  3.40k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.40k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.40k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.40k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.40k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.40k|      { } \
  |  |  666|  3.40k|    else \
  |  |  667|  3.40k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  3.40k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.40k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.40k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  185|       |
  186|  3.40k|  bytes = g_slice_new (GBytes);
  ------------------
  |  |   48|  3.40k|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
  187|  3.40k|  bytes->data = data;
  188|  3.40k|  bytes->size = size;
  189|  3.40k|  bytes->free_func = free_func;
  190|  3.40k|  bytes->user_data = user_data;
  191|  3.40k|  g_atomic_ref_count_init (&bytes->ref_count);
  192|       |
  193|  3.40k|  return (GBytes *)bytes;
  194|  3.40k|}
g_bytes_get_data:
  272|  2.90k|{
  273|  2.90k|  g_return_val_if_fail (bytes != NULL, NULL);
  ------------------
  |  |  663|  2.90k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.90k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.90k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.90k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.90k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.90k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.90k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.90k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.90k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.90k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.90k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.90k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.90k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.90k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.90k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.90k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.90k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.90k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.90k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.90k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.90k|      { } \
  |  |  666|  2.90k|    else \
  |  |  667|  2.90k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.90k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.90k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.90k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  274|  2.90k|  if (size)
  ------------------
  |  Branch (274:7): [True: 1.06k, False: 1.83k]
  ------------------
  275|  1.06k|    *size = bytes->size;
  276|  2.90k|  return bytes->data;
  277|  2.90k|}
g_bytes_get_size:
  293|  2.45k|{
  294|  2.45k|  g_return_val_if_fail (bytes != NULL, 0);
  ------------------
  |  |  663|  2.45k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.45k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.45k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.45k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.45k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.45k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.45k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.45k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.45k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.45k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.45k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.45k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.45k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.45k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.45k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.45k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.45k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.45k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.45k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.45k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.45k|      { } \
  |  |  666|  2.45k|    else \
  |  |  667|  2.45k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.45k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.45k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.45k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  295|  2.45k|  return bytes->size;
  296|  2.45k|}
g_bytes_ref:
  311|  2.16k|{
  312|  2.16k|  g_return_val_if_fail (bytes != NULL, NULL);
  ------------------
  |  |  663|  2.16k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.16k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.16k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.16k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.16k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.16k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.16k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.16k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.16k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.16k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.16k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.16k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.16k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.16k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.16k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.16k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.16k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.16k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.16k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.16k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.16k|      { } \
  |  |  666|  2.16k|    else \
  |  |  667|  2.16k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.16k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.16k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.16k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  313|       |
  314|  2.16k|  g_atomic_ref_count_inc (&bytes->ref_count);
  315|       |
  316|  2.16k|  return bytes;
  317|  2.16k|}
g_bytes_unref:
  330|  5.56k|{
  331|  5.56k|  if (bytes == NULL)
  ------------------
  |  Branch (331:7): [True: 0, False: 5.56k]
  ------------------
  332|      0|    return;
  333|       |
  334|  5.56k|  if (g_atomic_ref_count_dec (&bytes->ref_count))
  ------------------
  |  Branch (334:7): [True: 3.40k, False: 2.16k]
  ------------------
  335|  3.40k|    {
  336|  3.40k|      if (bytes->free_func != NULL)
  ------------------
  |  Branch (336:11): [True: 2.83k, False: 567]
  ------------------
  337|  2.83k|        bytes->free_func (bytes->user_data);
  338|  3.40k|      g_slice_free (GBytes, bytes);
  ------------------
  |  |   81|  3.40k|#define g_slice_free(type, mem)                                 \
  |  |  ------------------
  |  |  |  |  985|  3.40k|#define G_STMT_START  do
  |  |  ------------------
  |  |   82|  3.40k|G_STMT_START {                                                  \
  |  |   83|  3.40k|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  ------------------
  |  |  |  Branch (83:7): [True: 3.40k, Folded]
  |  |  ------------------
  |  |   84|  3.40k|  else   (void) ((type*) 0 == (mem)); 				\
  |  |   85|  3.40k|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.40k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.40k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|  3.40k|    }
  340|  5.56k|}

g_datalist_clear:
  311|  2.56k|{
  312|  2.56k|  GData *data;
  313|  2.56k|  guint i;
  314|       |
  315|  2.56k|  g_return_if_fail (datalist != NULL);
  ------------------
  |  |  650|  2.56k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.56k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  2.56k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.56k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.56k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.56k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  2.56k|      { } \
  |  |  653|  2.56k|    else \
  |  |  654|  2.56k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  2.56k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.56k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.56k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|       |
  317|  2.56k|  data = g_datalist_lock_and_get (datalist);
  318|       |
  319|  2.56k|  if (!data)
  ------------------
  |  Branch (319:7): [True: 0, False: 2.56k]
  ------------------
  320|      0|    {
  321|      0|      g_datalist_unlock (datalist);
  322|      0|      return;
  323|      0|    }
  324|       |
  325|  2.56k|  g_datalist_unlock_and_set (datalist, NULL);
  326|       |
  327|  5.12k|  for (i = 0; i < data->len; i++)
  ------------------
  |  Branch (327:15): [True: 2.56k, False: 2.56k]
  ------------------
  328|  2.56k|    {
  329|  2.56k|      if (data->data[i].data && data->data[i].destroy)
  ------------------
  |  Branch (329:11): [True: 2.56k, False: 0]
  |  Branch (329:33): [True: 2.56k, False: 0]
  ------------------
  330|  2.56k|        data->data[i].destroy (data->data[i].data);
  331|  2.56k|    }
  332|       |
  333|  2.56k|  g_free (data);
  334|  2.56k|}
g_datalist_id_set_data_full:
  780|  12.9k|{
  781|  12.9k|  g_return_if_fail (datalist != NULL);
  ------------------
  |  |  650|  12.9k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  12.9k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  12.9k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  12.9k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  12.9k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  12.9k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  12.9k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  12.9k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  12.9k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 12.9k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  12.9k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  12.9k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  12.9k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  12.9k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  12.9k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  12.9k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  12.9k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  12.9k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  12.9k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 12.9k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  12.9k|      { } \
  |  |  653|  12.9k|    else \
  |  |  654|  12.9k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  12.9k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  12.9k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 12.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  782|  12.9k|  if (!data)
  ------------------
  |  Branch (782:7): [True: 10.2k, False: 2.68k]
  ------------------
  783|  12.9k|    g_return_if_fail (destroy_func == NULL);
  ------------------
  |  |  650|  10.2k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  10.2k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  10.2k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  10.2k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  10.2k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  10.2k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  10.2k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  10.2k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  10.2k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 10.2k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  10.2k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  10.2k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  10.2k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  10.2k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  10.2k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  10.2k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  10.2k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  10.2k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  10.2k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 10.2k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  10.2k|      { } \
  |  |  653|  10.2k|    else \
  |  |  654|  10.2k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  10.2k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  10.2k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 10.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  784|  12.9k|  if (!key_id)
  ------------------
  |  Branch (784:7): [True: 0, False: 12.9k]
  ------------------
  785|      0|    {
  786|      0|      if (data)
  ------------------
  |  Branch (786:11): [True: 0, False: 0]
  ------------------
  787|      0|	g_return_if_fail (key_id > 0);
  ------------------
  |  |  650|      0|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      0|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      0|      { } \
  |  |  653|      0|    else \
  |  |  654|      0|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  788|      0|      else
  789|      0|	return;
  790|      0|    }
  791|       |
  792|  12.9k|  g_data_set_internal (datalist, key_id, data, destroy_func, NULL);
  793|  12.9k|}
g_datalist_id_remove_no_notify:
  881|    128|{
  882|    128|  gpointer ret_data = NULL;
  883|       |
  884|    128|  g_return_val_if_fail (datalist != NULL, NULL);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  885|       |
  886|    128|  if (key_id)
  ------------------
  |  Branch (886:7): [True: 128, False: 0]
  ------------------
  887|    128|    ret_data = g_data_set_internal (datalist, key_id, NULL, (GDestroyNotify) 42, NULL);
  888|       |
  889|    128|  return ret_data;
  890|    128|}
g_datalist_id_get_data:
 1054|  2.56k|{
 1055|  2.56k|  return g_datalist_id_dup_data (datalist, key_id, NULL, NULL);
 1056|  2.56k|}
g_datalist_id_dup_data:
 1105|  2.56k|{
 1106|  2.56k|  gpointer val = NULL;
 1107|  2.56k|  gpointer retval = NULL;
 1108|  2.56k|  GData *d;
 1109|  2.56k|  GDataElt *data;
 1110|       |
 1111|  2.56k|  d = g_datalist_lock_and_get (datalist);
 1112|       |
 1113|  2.56k|  data = datalist_find (d, key_id, NULL);
 1114|  2.56k|  if (data)
  ------------------
  |  Branch (1114:7): [True: 0, False: 2.56k]
  ------------------
 1115|      0|    val = data->data;
 1116|       |
 1117|  2.56k|  if (dup_func)
  ------------------
  |  Branch (1117:7): [True: 0, False: 2.56k]
  ------------------
 1118|      0|    retval = dup_func (val, user_data);
 1119|  2.56k|  else
 1120|  2.56k|    retval = val;
 1121|       |
 1122|  2.56k|  g_datalist_unlock (datalist);
 1123|       |
 1124|  2.56k|  return retval;
 1125|  2.56k|}
g_datalist_set_flags:
 1412|      1|{
 1413|      1|  g_return_if_fail (datalist != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1414|      1|  g_return_if_fail ((flags & ~G_DATALIST_FLAGS_MASK) == 0);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1415|       |
 1416|      1|  g_atomic_pointer_or (datalist, (gsize)flags);
  ------------------
  |  |  295|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  296|      1|    guintptr *gapo_atomic = (guintptr *) (atomic);                           \
  |  |  297|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  298|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr));                 \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  299|      1|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (299:13): [Folded, False: 1]
  |  |  ------------------
  |  |  300|      1|    (void) (0 ? (val) ^ (val) : 1);                                          \
  |  |  ------------------
  |  |  |  Branch (300:13): [Folded, False: 1]
  |  |  ------------------
  |  |  301|      1|    (guintptr) __atomic_fetch_or (gapo_atomic, (val), __ATOMIC_SEQ_CST);     \
  |  |  302|      1|  }))
  ------------------
 1417|      1|}
g_datalist_get_flags:
 1455|  3.80k|{
 1456|  3.80k|  g_return_val_if_fail (datalist != NULL, 0);
  ------------------
  |  |  663|  3.80k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.80k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.80k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.80k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.80k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.80k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.80k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.80k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.80k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.80k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.80k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.80k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.80k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.80k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.80k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  3.80k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.80k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.80k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.80k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.80k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.80k|      { } \
  |  |  666|  3.80k|    else \
  |  |  667|  3.80k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  3.80k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.80k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.80k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1457|       |  
 1458|  3.80k|  return G_DATALIST_GET_FLAGS (datalist); /* atomic macro */
  ------------------
  |  |   39|  3.80k|  ((gsize) g_atomic_pointer_get (datalist) & G_DATALIST_FLAGS_MASK)
  |  |  ------------------
  |  |  |  |  127|  3.80k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  3.80k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  3.80k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  3.80k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  3.80k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  3.80k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  3.80k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  3.80k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  3.80k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  3.80k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  3.80k|  }))
  |  |  ------------------
  |  |                 ((gsize) g_atomic_pointer_get (datalist) & G_DATALIST_FLAGS_MASK)
  |  |  ------------------
  |  |  |  |   93|  3.80k|#define G_DATALIST_FLAGS_MASK 0x3
  |  |  ------------------
  ------------------
 1459|  3.80k|}
gdataset.c:g_datalist_lock_and_get:
  142|  18.1k|{
  143|  18.1k|  guintptr ptr;
  144|       |
  145|  18.1k|  g_pointer_bit_lock_and_get ((void **) datalist, DATALIST_LOCK_BIT, &ptr);
  ------------------
  |  |   82|  18.1k|  (G_GNUC_EXTENSION ({                                             \
  |  |  ------------------
  |  |  |  |   62|  18.1k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |   83|  18.1k|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));      \
  |  |  ------------------
  |  |  |  |  871|  18.1k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |   84|  18.1k|    g_pointer_bit_lock_and_get ((address), (lock_bit), (out_ptr)); \
  |  |   85|  18.1k|  }))
  ------------------
  146|  18.1k|  return G_DATALIST_CLEAN_POINTER (ptr);
  ------------------
  |  |   72|  18.1k|  ((GData *) ((gpointer) (((guintptr) (ptr)) & ~((guintptr) G_DATALIST_FLAGS_MASK_INTERNAL))))
  |  |  ------------------
  |  |  |  |   69|  18.1k|#define G_DATALIST_FLAGS_MASK_INTERNAL 0x7
  |  |  ------------------
  ------------------
  147|  18.1k|}
gdataset.c:g_datalist_unlock:
  151|  13.0k|{
  152|       |  g_pointer_bit_unlock ((void **)datalist, DATALIST_LOCK_BIT);
  ------------------
  |  |   94|  13.0k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  13.0k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |   95|  13.0k|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));                \
  |  |  ------------------
  |  |  |  |  871|  13.0k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |   96|  13.0k|    g_pointer_bit_unlock ((address), (lock_bit));                            \
  |  |   97|  13.0k|  }))
  ------------------
  153|  13.0k|}
gdataset.c:g_datalist_unlock_and_set:
  157|  5.13k|{
  158|       |  g_pointer_bit_unlock_and_set ((void **) datalist, DATALIST_LOCK_BIT, ptr, G_DATALIST_FLAGS_MASK_INTERNAL);
  ------------------
  |  |  100|  5.13k|  (G_GNUC_EXTENSION ({                                                            \
  |  |  ------------------
  |  |  |  |   62|  5.13k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  101|  5.13k|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));                     \
  |  |  ------------------
  |  |  |  |  871|  5.13k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  102|  5.13k|    g_pointer_bit_unlock_and_set ((address), (lock_bit), (ptr), (preserve_mask)); \
  |  |  103|  5.13k|  }))
  ------------------
  159|  5.13k|}
gdataset.c:g_data_set_internal:
  422|  13.0k|{
  423|  13.0k|  GData *d;
  424|  13.0k|  GData *new_d = NULL;
  425|  13.0k|  GDataElt old, *data;
  426|  13.0k|  guint32 idx;
  427|       |
  428|  13.0k|  d = g_datalist_lock_and_get (datalist);
  429|       |
  430|  13.0k|  data = datalist_find (d, key_id, &idx);
  431|       |
  432|  13.0k|  if (new_data == NULL) /* remove */
  ------------------
  |  Branch (432:7): [True: 10.3k, False: 2.68k]
  ------------------
  433|  10.3k|    {
  434|  10.3k|      if (data)
  ------------------
  |  Branch (434:11): [True: 128, False: 10.2k]
  ------------------
  435|    128|        {
  436|    128|          GData *d_to_free;
  437|       |
  438|    128|          old = *data;
  439|       |
  440|    128|          datalist_remove (d, idx);
  441|    128|          if (datalist_shrink (&d, &d_to_free))
  ------------------
  |  Branch (441:15): [True: 5, False: 123]
  ------------------
  442|      5|            {
  443|      5|              g_datalist_unlock_and_set (datalist, d);
  444|       |
  445|       |              /* the dataset destruction *must* be done
  446|       |               * prior to invocation of the data destroy function
  447|       |               */
  448|      5|              if (dataset && !d)
  ------------------
  |  Branch (448:19): [True: 0, False: 5]
  |  Branch (448:30): [True: 0, False: 0]
  ------------------
  449|      0|                g_dataset_destroy_internal (dataset);
  450|       |
  451|      5|              if (d_to_free)
  ------------------
  |  Branch (451:19): [True: 5, False: 0]
  ------------------
  452|      5|                g_free (d_to_free);
  453|      5|            }
  454|    123|          else
  455|    123|            g_datalist_unlock (datalist);
  456|       |
  457|       |          /* We found and removed an old value
  458|       |           * the GData struct *must* already be unlinked
  459|       |           * when invoking the destroy function.
  460|       |           * we use (new_data==NULL && new_destroy_func!=NULL) as
  461|       |           * a special hint combination to "steal"
  462|       |           * data without destroy notification
  463|       |           */
  464|    128|          if (old.destroy && !new_destroy_func)
  ------------------
  |  Branch (464:15): [True: 128, False: 0]
  |  Branch (464:30): [True: 123, False: 5]
  ------------------
  465|    123|            {
  466|    123|              if (dataset)
  ------------------
  |  Branch (466:19): [True: 0, False: 123]
  ------------------
  467|      0|                G_UNLOCK (g_dataset_global);
  ------------------
  |  |  138|      0|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|      0|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  468|    123|              old.destroy (old.data);
  469|    123|              if (dataset)
  ------------------
  |  Branch (469:19): [True: 0, False: 123]
  ------------------
  470|      0|                G_LOCK (g_dataset_global);
  ------------------
  |  |  137|      0|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|      0|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  471|    123|              old.data = NULL;
  472|    123|            }
  473|       |
  474|    128|          return old.data;
  475|    128|        }
  476|  10.3k|    }
  477|  2.68k|  else
  478|  2.68k|    {
  479|  2.68k|      if (data)
  ------------------
  |  Branch (479:11): [True: 0, False: 2.68k]
  ------------------
  480|      0|        {
  481|      0|          if (!data->destroy)
  ------------------
  |  Branch (481:15): [True: 0, False: 0]
  ------------------
  482|      0|            {
  483|      0|              data->data = new_data;
  484|      0|              data->destroy = new_destroy_func;
  485|      0|              g_datalist_unlock (datalist);
  486|      0|            }
  487|      0|          else
  488|      0|            {
  489|      0|              old = *data;
  490|      0|              data->data = new_data;
  491|      0|              data->destroy = new_destroy_func;
  492|       |
  493|      0|              g_datalist_unlock (datalist);
  494|       |
  495|       |              /* We found and replaced an old value
  496|       |               * the GData struct *must* already be unlinked
  497|       |               * when invoking the destroy function.
  498|       |               */
  499|      0|              if (dataset)
  ------------------
  |  Branch (499:19): [True: 0, False: 0]
  ------------------
  500|      0|                G_UNLOCK (g_dataset_global);
  ------------------
  |  |  138|      0|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|      0|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  501|      0|              old.destroy (old.data);
  502|      0|              if (dataset)
  ------------------
  |  Branch (502:19): [True: 0, False: 0]
  ------------------
  503|      0|                G_LOCK (g_dataset_global);
  ------------------
  |  |  137|      0|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|      0|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  504|      0|            }
  505|      0|          return NULL;
  506|      0|        }
  507|       |
  508|       |      /* The key was not found, insert it */
  509|  2.68k|      if (datalist_append (&d, key_id, new_data, new_destroy_func))
  ------------------
  |  Branch (509:11): [True: 2.56k, False: 123]
  ------------------
  510|  2.56k|        new_d = d;
  511|  2.68k|    }
  512|       |
  513|  12.9k|  if (new_d)
  ------------------
  |  Branch (513:7): [True: 2.56k, False: 10.3k]
  ------------------
  514|  2.56k|    g_datalist_unlock_and_set (datalist, new_d);
  515|  10.3k|  else
  516|  10.3k|    g_datalist_unlock (datalist);
  517|       |
  518|  12.9k|  return NULL;
  519|       |
  520|  13.0k|}
gdataset.c:datalist_find:
  279|  15.6k|{
  280|  15.6k|  guint32 i;
  281|       |
  282|  15.6k|  if (data)
  ------------------
  |  Branch (282:7): [True: 10.4k, False: 5.12k]
  ------------------
  283|  10.4k|    {
  284|  20.8k|      for (i = 0; i < data->len; i++)
  ------------------
  |  Branch (284:19): [True: 10.4k, False: 10.3k]
  ------------------
  285|  10.4k|        {
  286|  10.4k|          GDataElt *data_elt = &data->data[i];
  287|       |
  288|  10.4k|          if (data_elt->key == key_id)
  ------------------
  |  Branch (288:15): [True: 128, False: 10.3k]
  ------------------
  289|    128|            {
  290|    128|              if (out_idx)
  ------------------
  |  Branch (290:19): [True: 128, False: 0]
  ------------------
  291|    128|                *out_idx = i;
  292|    128|              return data_elt;
  293|    128|            }
  294|  10.4k|        }
  295|  10.4k|    }
  296|  15.4k|  if (out_idx)
  ------------------
  |  Branch (296:7): [True: 12.9k, False: 2.56k]
  ------------------
  297|  12.9k|    *out_idx = G_MAXUINT32;
  ------------------
  |  |   98|  12.9k|#define G_MAXUINT32	((guint32) 0xffffffff)
  ------------------
  298|       |  return NULL;
  299|  15.6k|}
gdataset.c:datalist_remove:
  207|    128|{
  208|       |#if G_ENABLE_DEBUG
  209|       |  g_assert (idx < data->len);
  210|       |#endif
  211|       |
  212|       |  /* g_data_remove_internal() relies on the fact, that this function removes
  213|       |   * the entry similar to g_array_remove_index_fast(). That is, the entries up
  214|       |   * to @idx are left unchanged, and the last entry is moved to position @idx.
  215|       |   * */
  216|       |
  217|    128|  data->len--;
  218|       |
  219|    128|  if (idx != data->len)
  ------------------
  |  Branch (219:7): [True: 123, False: 5]
  ------------------
  220|    123|    data->data[idx] = data->data[data->len];
  221|    128|}
gdataset.c:datalist_shrink:
  225|    128|{
  226|    128|  guint32 alloc_by_4;
  227|    128|  guint32 v;
  228|    128|  GData *d;
  229|       |
  230|    128|  d = *data;
  231|       |
  232|    128|  alloc_by_4 = d->alloc / 4u;
  233|       |
  234|    128|  if (G_LIKELY (d->len > alloc_by_4))
  ------------------
  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 123, False: 5]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    123|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    123|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 123, False: 5]
  |  |  ------------------
  ------------------
  235|    123|    {
  236|       |      /* No shrinking */
  237|    123|      return FALSE;
  ------------------
  |  |  925|    123|#define	FALSE	(0)
  ------------------
  238|    123|    }
  239|       |
  240|      5|  if (d->len == 0)
  ------------------
  |  Branch (240:7): [True: 5, False: 0]
  ------------------
  241|      5|    {
  242|       |      /* The list became empty. We drop the allocated memory altogether. */
  243|       |
  244|       |      /* The caller will free the buffer after releasing the lock, to minimize
  245|       |       * the time we hold the lock. Transfer it out. */
  246|      5|      *d_to_free = d;
  247|      5|      *data = NULL;
  248|      5|      return TRUE;
  ------------------
  |  |  929|      5|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      5|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  249|      5|    }
  250|       |
  251|       |  /* If the buffer is filled not more than 25%. Shrink to double the current length. */
  252|       |
  253|      0|  v = d->len;
  254|      0|  if (v != alloc_by_4)
  ------------------
  |  Branch (254:7): [True: 0, False: 0]
  ------------------
  255|      0|    {
  256|       |      /* d->alloc is a power of two. Usually, we remove one element at a
  257|       |       * time, then we will just reach reach a quarter of that.
  258|       |       *
  259|       |       * However, with g_datalist_id_remove_multiple(), len can be smaller
  260|       |       * at once. In that case, find first the next power of two. */
  261|      0|      v = g_nearest_pow (v);
  262|      0|    }
  263|      0|  v *= 2u;
  264|       |
  265|       |#if G_ENABLE_DEBUG
  266|       |  g_assert (v > d->len);
  267|       |  g_assert (v <= d->alloc / 2u);
  268|       |#endif
  269|       |
  270|      0|  d->alloc = v;
  271|      0|  d = g_realloc (d, G_STRUCT_OFFSET (GData, data) + (v * sizeof (GDataElt)));
  ------------------
  |  |  964|      0|      ((glong) offsetof (struct_type, member))
  ------------------
  272|      0|  *d_to_free = NULL;
  273|      0|  *data = d;
  274|      0|  return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  275|      5|}
gdataset.c:datalist_append:
  163|  2.68k|{
  164|  2.68k|  gboolean reallocated;
  165|  2.68k|  GData *d;
  166|       |
  167|  2.68k|  d = *data;
  168|  2.68k|  if (!d)
  ------------------
  |  Branch (168:7): [True: 2.56k, False: 123]
  ------------------
  169|  2.56k|    {
  170|  2.56k|      d = g_malloc (G_STRUCT_OFFSET (GData, data) + 2u * sizeof (GDataElt));
  ------------------
  |  |  964|  2.56k|      ((glong) offsetof (struct_type, member))
  ------------------
  171|  2.56k|      d->len = 0;
  172|  2.56k|      d->alloc = 2u;
  173|  2.56k|      *data = d;
  174|  2.56k|      reallocated = TRUE;
  ------------------
  |  |  929|  2.56k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  2.56k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  175|  2.56k|    }
  176|    123|  else if (d->len == d->alloc)
  ------------------
  |  Branch (176:12): [True: 0, False: 123]
  ------------------
  177|      0|    {
  178|      0|      d->alloc = d->alloc * 2u;
  179|       |#if G_ENABLE_DEBUG
  180|       |      /* d->alloc is always a power of two. It thus overflows the first time
  181|       |       * when going to (G_MAXUINT32+1), or when requesting 2^31+1 elements.
  182|       |       *
  183|       |       * This is not handled, and we just crash. That's because we track the GData
  184|       |       * in a linear list, which horribly degrades long before we add 2 billion entries.
  185|       |       * Don't ever try to do that. */
  186|       |      g_assert (d->alloc > d->len);
  187|       |#endif
  188|      0|      d = g_realloc (d, G_STRUCT_OFFSET (GData, data) + d->alloc * sizeof (GDataElt));
  ------------------
  |  |  964|      0|      ((glong) offsetof (struct_type, member))
  ------------------
  189|      0|      *data = d;
  190|      0|      reallocated = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  191|      0|    }
  192|    123|  else
  193|    123|    reallocated = FALSE;
  ------------------
  |  |  925|    123|#define	FALSE	(0)
  ------------------
  194|       |
  195|  2.68k|  d->data[d->len] = (GDataElt){
  196|  2.68k|    .key = key_id,
  197|  2.68k|    .data = new_data,
  198|  2.68k|    .destroy = destroy_func,
  199|  2.68k|  };
  200|  2.68k|  d->len++;
  201|       |
  202|  2.68k|  return reallocated;
  203|  2.68k|}

g_getenv:
  254|      2|{
  255|      2|  g_return_val_if_fail (variable != NULL, NULL);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  256|       |
  257|      2|  return getenv (variable);
  258|      2|}
g_setenv:
  295|  1.13k|{
  296|  1.13k|  gint result;
  297|       |#ifndef HAVE_SETENV
  298|       |  gchar *string;
  299|       |#endif
  300|       |
  301|  1.13k|  g_return_val_if_fail (variable != NULL, FALSE);
  ------------------
  |  |  663|  1.13k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.13k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.13k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.13k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.13k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.13k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.13k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.13k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.13k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.13k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.13k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.13k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.13k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.13k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.13k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.13k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.13k|      { } \
  |  |  666|  1.13k|    else \
  |  |  667|  1.13k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  1.13k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.13k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.13k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  302|  1.13k|  g_return_val_if_fail (strchr (variable, '=') == NULL, FALSE);
  ------------------
  |  |  663|  1.13k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.13k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.13k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.13k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.13k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.13k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.13k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.13k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.13k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.13k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.13k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.13k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.13k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.13k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.13k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.13k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.13k|      { } \
  |  |  666|  1.13k|    else \
  |  |  667|  1.13k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  1.13k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.13k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.13k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  303|  1.13k|  g_return_val_if_fail (value != NULL, FALSE);
  ------------------
  |  |  663|  1.13k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.13k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.13k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.13k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.13k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.13k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.13k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.13k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.13k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.13k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.13k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.13k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.13k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.13k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.13k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.13k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.13k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.13k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.13k|      { } \
  |  |  666|  1.13k|    else \
  |  |  667|  1.13k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  1.13k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.13k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.13k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  304|       |
  305|  1.13k|#ifndef G_DISABLE_CHECKS
  306|       |  /* FIXME: This will be upgraded to a g_warning() in a future release of GLib.
  307|       |   * See https://gitlab.gnome.org/GNOME/glib/issues/715 */
  308|  1.13k|  if (g_thread_n_created () > 0)
  ------------------
  |  Branch (308:7): [True: 0, False: 1.13k]
  ------------------
  309|      0|    g_debug ("setenv()/putenv() are not thread-safe and should not be used after threads are created");
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
  310|  1.13k|#endif
  311|       |
  312|  1.13k|#ifdef HAVE_SETENV
  313|  1.13k|  result = setenv (variable, value, overwrite);
  314|       |#else
  315|       |  if (!overwrite && getenv (variable) != NULL)
  316|       |    return TRUE;
  317|       |
  318|       |  /* This results in a leak when you overwrite existing
  319|       |   * settings. It would be fairly easy to fix this by keeping
  320|       |   * our own parallel array or hash table.
  321|       |   */
  322|       |  string = g_strconcat (variable, "=", value, NULL);
  323|       |  result = putenv (string);
  324|       |#endif
  325|  1.13k|  return result == 0;
  326|  1.13k|}

g_error_init:
   49|      2|{
   50|      2|  error_domain_ht = g_hash_table_new (NULL, NULL);
   51|      2|}
g_set_error:
  481|    368|{
  482|    368|  GError *new;
  483|       |
  484|    368|  va_list args;
  485|       |
  486|    368|  if (err == NULL)
  ------------------
  |  Branch (486:7): [True: 368, False: 0]
  ------------------
  487|    368|    return;
  488|       |
  489|    368|  va_start (args, format);
  490|      0|  new = g_error_new_valist (domain, code, format, args);
  491|      0|  va_end (args);
  492|       |
  493|      0|  if (*err == NULL)
  ------------------
  |  Branch (493:7): [True: 0, False: 0]
  ------------------
  494|      0|    *err = new;
  495|      0|  else
  496|      0|    {
  497|      0|      g_warning (ERROR_OVERWRITTEN_WARNING, new->message);
  ------------------
  |  |  362|      0|#define g_warning(...)  g_log (G_LOG_DOMAIN,         \
  |  |  363|      0|                               G_LOG_LEVEL_WARNING,  \
  |  |  364|      0|                               __VA_ARGS__)
  ------------------
  498|      0|      g_error_free (new);
  499|      0|    }
  500|      0|}
g_set_error_literal:
  522|    107|{
  523|    107|  if (err == NULL)
  ------------------
  |  Branch (523:7): [True: 107, False: 0]
  ------------------
  524|    107|    return;
  525|       |
  526|      0|  if (*err == NULL)
  ------------------
  |  Branch (526:7): [True: 0, False: 0]
  ------------------
  527|      0|    *err = g_error_new_literal (domain, code, message);
  528|      0|  else
  529|      0|    g_warning (ERROR_OVERWRITTEN_WARNING, message);
  ------------------
  |  |  362|      0|#define g_warning(...)  g_log (G_LOG_DOMAIN,         \
  |  |  363|      0|                               G_LOG_LEVEL_WARNING,  \
  |  |  364|      0|                               __VA_ARGS__)
  ------------------
  530|      0|}
g_prefix_error:
  621|     55|{
  622|     55|  if (err && *err)
  ------------------
  |  Branch (622:7): [True: 0, False: 55]
  |  Branch (622:14): [True: 0, False: 0]
  ------------------
  623|      0|    {
  624|      0|      va_list ap;
  625|       |
  626|      0|      va_start (ap, format);
  627|      0|      g_error_add_prefix (&(*err)->message, format, ap);
  628|       |      va_end (ap);
  629|      0|    }
  630|     55|}

g_hash_table_new:
  978|     11|{
  979|     11|  return g_hash_table_new_full (hash_func, key_equal_func, NULL, NULL);
  980|     11|}
g_hash_table_new_full:
 1013|     13|{
 1014|     13|  GHashTable *hash_table;
 1015|       |
 1016|     13|  hash_table = g_slice_new (GHashTable);
  ------------------
  |  |   48|     13|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
 1017|     13|  g_atomic_ref_count_init (&hash_table->ref_count);
 1018|     13|  hash_table->nnodes             = 0;
 1019|     13|  hash_table->noccupied          = 0;
 1020|     13|  hash_table->hash_func          = hash_func ? hash_func : g_direct_hash;
  ------------------
  |  Branch (1020:36): [True: 11, False: 2]
  ------------------
 1021|     13|  hash_table->key_equal_func     = key_equal_func;
 1022|     13|#ifndef G_DISABLE_ASSERT
 1023|     13|  hash_table->version            = 0;
 1024|     13|#endif
 1025|     13|  hash_table->key_destroy_func   = key_destroy_func;
 1026|     13|  hash_table->value_destroy_func = value_destroy_func;
 1027|       |
 1028|     13|  g_hash_table_setup_storage (hash_table);
 1029|       |
 1030|     13|  return hash_table;
 1031|     13|}
g_hash_table_lookup:
 1477|  5.55k|{
 1478|  5.55k|  guint node_index;
 1479|  5.55k|  guint node_hash;
 1480|       |
 1481|  5.55k|  g_return_val_if_fail (hash_table != NULL, NULL);
  ------------------
  |  |  663|  5.55k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.55k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  5.55k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.55k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.55k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.55k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.55k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.55k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  5.55k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.55k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.55k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.55k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.55k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.55k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.55k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  5.55k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.55k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.55k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.55k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.55k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  5.55k|      { } \
  |  |  666|  5.55k|    else \
  |  |  667|  5.55k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  5.55k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.55k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.55k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1482|       |
 1483|  5.55k|  node_index = g_hash_table_lookup_node (hash_table, key, &node_hash);
 1484|       |
 1485|  5.55k|  return HASH_IS_REAL (hash_table->hashes[node_index])
  ------------------
  |  |  185|  5.55k|#define HASH_IS_REAL(h_) ((h_) >= 2)
  |  |  ------------------
  |  |  |  Branch (185:26): [True: 110, False: 5.44k]
  |  |  ------------------
  ------------------
 1486|  5.55k|    ? g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values)
 1487|       |    : NULL;
 1488|  5.55k|}
g_hash_table_insert:
 1600|    270|{
 1601|    270|  return g_hash_table_insert_internal (hash_table, key, value, FALSE);
  ------------------
  |  |  925|    270|#define	FALSE	(0)
  ------------------
 1602|    270|}
g_hash_table_add:
 1660|      1|{
 1661|      1|  return g_hash_table_insert_internal (hash_table, key, key, TRUE);
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1662|      1|}
g_hash_table_foreach:
 2097|      2|{
 2098|      2|  gsize i;
 2099|      2|#ifndef G_DISABLE_ASSERT
 2100|      2|  gint version;
 2101|      2|#endif
 2102|       |
 2103|      2|  g_return_if_fail (hash_table != NULL);
  ------------------
  |  |  650|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      2|      { } \
  |  |  653|      2|    else \
  |  |  654|      2|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2104|      2|  g_return_if_fail (func != NULL);
  ------------------
  |  |  650|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      2|      { } \
  |  |  653|      2|    else \
  |  |  654|      2|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2105|       |
 2106|      2|#ifndef G_DISABLE_ASSERT
 2107|      2|  version = hash_table->version;
 2108|      2|#endif
 2109|       |
 2110|     18|  for (i = 0; i < hash_table->size; i++)
  ------------------
  |  Branch (2110:15): [True: 16, False: 2]
  ------------------
 2111|     16|    {
 2112|     16|      guint node_hash = hash_table->hashes[i];
 2113|     16|      gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, i, hash_table->have_big_keys);
 2114|     16|      gpointer node_value = g_hash_table_fetch_key_or_value (hash_table->values, i, hash_table->have_big_values);
 2115|       |
 2116|     16|      if (HASH_IS_REAL (node_hash))
  ------------------
  |  |  185|     16|#define HASH_IS_REAL(h_) ((h_) >= 2)
  |  |  ------------------
  |  |  |  Branch (185:26): [True: 2, False: 14]
  |  |  ------------------
  ------------------
 2117|      2|        (* func) (node_key, node_value, user_data);
 2118|       |
 2119|     16|#ifndef G_DISABLE_ASSERT
 2120|     16|      g_return_if_fail (version == hash_table->version);
  ------------------
  |  |  650|     16|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     16|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     16|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     16|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     16|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     16| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     16|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     16|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     16|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 16, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     16|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     16|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     16|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     16|   else                                         \
  |  |  |  |  |  |  |  | 1240|     16|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     16|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     16|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     16|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     16|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 16, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     16|      { } \
  |  |  653|     16|    else \
  |  |  654|     16|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|     16|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     16|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 16]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2121|     16|#endif
 2122|     16|    }
 2123|      2|}
g_str_equal:
 2429|    110|{
 2430|    110|  const gchar *string1 = v1;
 2431|    110|  const gchar *string2 = v2;
 2432|       |
 2433|    110|  return strcmp (string1, string2) == 0;
 2434|    110|}
g_str_hash:
 2459|    652|{
 2460|    652|  const signed char *p;
 2461|    652|  guint32 h = 5381;
 2462|       |
 2463|  8.27k|  for (p = v; *p != '\0'; p++)
  ------------------
  |  Branch (2463:15): [True: 7.62k, False: 652]
  ------------------
 2464|  7.62k|    h = (h << 5) + h + *p;
 2465|       |
 2466|    652|  return h;
 2467|    652|}
g_direct_hash:
 2485|  5.12k|{
 2486|  5.12k|  return GPOINTER_TO_UINT (v);
  ------------------
  |  |  104|  5.12k|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 2487|  5.12k|}
g_int_hash:
 2551|     44|{
 2552|     44|  return *(const gint*) v;
 2553|     44|}
ghash.c:g_hash_table_setup_storage:
  512|     13|{
  513|     13|  gboolean small = FALSE;
  ------------------
  |  |  925|     13|#define	FALSE	(0)
  ------------------
  514|       |
  515|       |  /* We want to use small arrays only if:
  516|       |   *   - we are running on a system where that makes sense (64 bit); and
  517|       |   *   - we are not running under valgrind.
  518|       |   */
  519|       |
  520|     13|#ifdef USE_SMALL_ARRAYS
  521|     13|  small = TRUE;
  ------------------
  |  |  929|     13|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     13|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  522|       |
  523|     13|# ifdef ENABLE_VALGRIND
  524|     13|  if (RUNNING_ON_VALGRIND)
  ------------------
  |  | 6216|     13|    (unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* if not */,         \
  |  |  ------------------
  |  |  |  |  414|     13|    __extension__                                                 \
  |  |  |  |  415|     13|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  416|     13|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  417|     13|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  418|     13|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  419|     13|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  420|     13|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  421|     13|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  422|     13|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  423|     13|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  424|     13|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  425|     13|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  426|     13|                     : "=d" (_zzq_result)                         \
  |  |  |  |  427|     13|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  428|     13|                     : "cc", "memory"                             \
  |  |  |  |  429|     13|                    );                                            \
  |  |  |  |  430|     13|    _zzq_result;                                                  \
  |  |  |  |  431|     13|    })
  |  |  ------------------
  |  |  |  Branch (6216:5): [True: 0, False: 13]
  |  |  ------------------
  |  | 6217|     13|                                    VG_USERREQ__RUNNING_ON_VALGRIND,  \
  |  | 6218|     13|                                    0, 0, 0, 0, 0)                    \
  ------------------
  525|      0|    small = FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  526|     13|# endif
  527|     13|#endif
  528|       |
  529|     13|  g_hash_table_set_shift (hash_table, HASH_TABLE_MIN_SHIFT);
  ------------------
  |  |  179|     13|#define HASH_TABLE_MIN_SHIFT 3  /* 1 << 3 == 8 buckets */
  ------------------
  530|       |
  531|     13|  hash_table->have_big_keys = !small;
  532|     13|  hash_table->have_big_values = !small;
  533|       |
  534|     13|  hash_table->keys   = g_hash_table_realloc_key_or_value_array (NULL, hash_table->size, hash_table->have_big_keys);
  535|     13|  hash_table->values = hash_table->keys;
  536|       |  hash_table->hashes = g_new0 (guint, hash_table->size);
  ------------------
  |  |  332|     13|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     13|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     13|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     13|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     13|	  gpointer __p;						\
  |  |  |  |  264|     13|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 13]
  |  |  |  |  ------------------
  |  |  |  |  265|     13|	    __p = g_##func (__n);				\
  |  |  |  |  266|     13|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 13]
  |  |  |  |  ------------------
  |  |  |  |  267|     13|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     13|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     13|	  else							\
  |  |  |  |  270|     13|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     13|	  __p;							\
  |  |  |  |  272|     13|	}))
  |  |  ------------------
  ------------------
  537|     13|}
ghash.c:g_hash_table_set_shift:
  286|     30|{
  287|     30|  hash_table->size = 1 << shift;
  288|     30|  hash_table->mod  = prime_mod [shift];
  289|       |
  290|       |  /* hash_table->size is always a power of two, so we can calculate the mask
  291|       |   * by simply subtracting 1 from it. The leading assertion ensures that
  292|       |   * we're really dealing with a power of two. */
  293|       |
  294|     30|  g_assert ((hash_table->size & (hash_table->size - 1)) == 0);
  ------------------
  |  |  275|     30|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     30|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     30|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     30|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     30|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     30| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     30|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     30|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     30|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 30, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     30|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     30|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     30|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     30|   else                                         \
  |  |  |  |  |  |  |  | 1240|     30|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     30|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     30|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     30|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     30|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 30, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     30|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     30|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     30|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 30]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  295|     30|  hash_table->mask = hash_table->size - 1;
  296|     30|}
ghash.c:g_hash_table_realloc_key_or_value_array:
  322|     45|{
  323|     45|#ifdef USE_SMALL_ARRAYS
  324|     45|  return g_realloc (a, size * (is_big ? BIG_ENTRY_SIZE : SMALL_ENTRY_SIZE));
  ------------------
  |  |  192|     25|#define BIG_ENTRY_SIZE (SIZEOF_VOID_P)
  |  |  ------------------
  |  |  |  |  408|     25|#define SIZEOF_VOID_P 8
  |  |  ------------------
  ------------------
                return g_realloc (a, size * (is_big ? BIG_ENTRY_SIZE : SMALL_ENTRY_SIZE));
  ------------------
  |  |  193|     20|#define SMALL_ENTRY_SIZE (SIZEOF_INT)
  |  |  ------------------
  |  |  |  |  396|     20|#define SIZEOF_INT 4
  |  |  ------------------
  ------------------
  |  Branch (324:32): [True: 25, False: 20]
  ------------------
  325|       |#else
  326|       |  return g_renew (gpointer, a, size);
  327|       |#endif
  328|     45|}
ghash.c:g_hash_table_fetch_key_or_value:
  332|    252|{
  333|       |#ifndef USE_SMALL_ARRAYS
  334|       |  is_big = TRUE;
  335|       |#endif
  336|    252|  return is_big ? *(((gpointer *) a) + index) : GUINT_TO_POINTER (*(((guint *) a) + index));
  ------------------
  |  |  107|    110|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
  |  Branch (336:10): [True: 142, False: 110]
  ------------------
  337|    252|}
ghash.c:g_hash_table_insert_node:
 1244|    271|{
 1245|    271|  gboolean already_exists;
 1246|    271|  guint old_hash;
 1247|    271|  gpointer key_to_free = NULL;
 1248|    271|  gpointer key_to_keep = NULL;
 1249|    271|  gpointer value_to_free = NULL;
 1250|       |
 1251|    271|  old_hash = hash_table->hashes[node_index];
 1252|    271|  already_exists = HASH_IS_REAL (old_hash);
  ------------------
  |  |  185|    271|#define HASH_IS_REAL(h_) ((h_) >= 2)
  ------------------
 1253|       |
 1254|       |  /* Proceed in three steps.  First, deal with the key because it is the
 1255|       |   * most complicated.  Then consider if we need to split the table in
 1256|       |   * two (because writing the value will result in the set invariant
 1257|       |   * becoming broken).  Then deal with the value.
 1258|       |   *
 1259|       |   * There are three cases for the key:
 1260|       |   *
 1261|       |   *  - entry already exists in table, reusing key:
 1262|       |   *    free the just-passed-in new_key and use the existing value
 1263|       |   *
 1264|       |   *  - entry already exists in table, not reusing key:
 1265|       |   *    free the entry in the table, use the new key
 1266|       |   *
 1267|       |   *  - entry not already in table:
 1268|       |   *    use the new key, free nothing
 1269|       |   *
 1270|       |   * We update the hash at the same time...
 1271|       |   */
 1272|    271|  if (already_exists)
  ------------------
  |  Branch (1272:7): [True: 0, False: 271]
  ------------------
 1273|      0|    {
 1274|       |      /* Note: we must record the old value before writing the new key
 1275|       |       * because we might change the value in the event that the two
 1276|       |       * arrays are shared.
 1277|       |       */
 1278|      0|      value_to_free = g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values);
 1279|       |
 1280|      0|      if (keep_new_key)
  ------------------
  |  Branch (1280:11): [True: 0, False: 0]
  ------------------
 1281|      0|        {
 1282|      0|          key_to_free = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
 1283|      0|          key_to_keep = new_key;
 1284|      0|        }
 1285|      0|      else
 1286|      0|        {
 1287|      0|          key_to_free = new_key;
 1288|      0|          key_to_keep = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
 1289|      0|        }
 1290|      0|    }
 1291|    271|  else
 1292|    271|    {
 1293|    271|      hash_table->hashes[node_index] = key_hash;
 1294|    271|      key_to_keep = new_key;
 1295|    271|    }
 1296|       |
 1297|       |  /* Resize key/value arrays and split table as necessary */
 1298|    271|  g_hash_table_ensure_keyval_fits (hash_table, key_to_keep, new_value);
 1299|    271|  g_hash_table_assign_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys, key_to_keep);
 1300|       |
 1301|       |  /* Step 3: Actually do the write */
 1302|    271|  g_hash_table_assign_key_or_value (hash_table->values, node_index, hash_table->have_big_values, new_value);
 1303|       |
 1304|       |  /* Now, the bookkeeping... */
 1305|    271|  if (!already_exists)
  ------------------
  |  Branch (1305:7): [True: 271, False: 0]
  ------------------
 1306|    271|    {
 1307|    271|      hash_table->nnodes++;
 1308|       |
 1309|    271|      if (HASH_IS_UNUSED (old_hash))
  ------------------
  |  |  183|    271|#define HASH_IS_UNUSED(h_) ((h_) == UNUSED_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  181|    271|#define UNUSED_HASH_VALUE 0
  |  |  ------------------
  |  |  |  Branch (183:28): [True: 271, False: 0]
  |  |  ------------------
  ------------------
 1310|    271|        {
 1311|       |          /* We replaced an empty node, and not a tombstone */
 1312|    271|          hash_table->noccupied++;
 1313|    271|          g_hash_table_maybe_resize (hash_table);
 1314|    271|        }
 1315|       |
 1316|    271|#ifndef G_DISABLE_ASSERT
 1317|    271|      hash_table->version++;
 1318|    271|#endif
 1319|    271|    }
 1320|       |
 1321|    271|  if (already_exists)
  ------------------
  |  Branch (1321:7): [True: 0, False: 271]
  ------------------
 1322|      0|    {
 1323|      0|      if (hash_table->key_destroy_func && !reusing_key)
  ------------------
  |  Branch (1323:11): [True: 0, False: 0]
  |  Branch (1323:43): [True: 0, False: 0]
  ------------------
 1324|      0|        (* hash_table->key_destroy_func) (key_to_free);
 1325|      0|      if (hash_table->value_destroy_func)
  ------------------
  |  Branch (1325:11): [True: 0, False: 0]
  ------------------
 1326|      0|        (* hash_table->value_destroy_func) (value_to_free);
 1327|      0|    }
 1328|       |
 1329|    271|  return !already_exists;
 1330|    271|}
ghash.c:g_hash_table_ensure_keyval_fits:
  899|    271|{
  900|    271|  gboolean is_a_set = (hash_table->keys == hash_table->values);
  901|       |
  902|    271|#ifdef USE_SMALL_ARRAYS
  903|       |
  904|       |  /* Convert from set to map? */
  905|    271|  if (is_a_set)
  ------------------
  |  Branch (905:7): [True: 28, False: 243]
  ------------------
  906|     28|    {
  907|     28|      if (hash_table->have_big_keys)
  ------------------
  |  Branch (907:11): [True: 21, False: 7]
  ------------------
  908|     21|        {
  909|     21|          if (key != value)
  ------------------
  |  Branch (909:15): [True: 0, False: 21]
  ------------------
  910|      0|            hash_table->values = g_memdup2 (hash_table->keys, sizeof (gpointer) * hash_table->size);
  911|       |          /* Keys and values are both big now, so no need for further checks */
  912|     21|          return;
  913|     21|        }
  914|      7|      else
  915|      7|        {
  916|      7|          if (key != value)
  ------------------
  |  Branch (916:15): [True: 5, False: 2]
  ------------------
  917|      5|            {
  918|      5|              hash_table->values = g_memdup2 (hash_table->keys, sizeof (guint) * hash_table->size);
  919|      5|              is_a_set = FALSE;
  ------------------
  |  |  925|      5|#define	FALSE	(0)
  ------------------
  920|      5|            }
  921|      7|        }
  922|     28|    }
  923|       |
  924|       |  /* Make keys big? */
  925|    250|  if (!hash_table->have_big_keys)
  ------------------
  |  Branch (925:7): [True: 7, False: 243]
  ------------------
  926|      7|    {
  927|      7|      hash_table->have_big_keys = g_hash_table_maybe_make_big_keys_or_values (&hash_table->keys, key, hash_table->size);
  928|       |
  929|      7|      if (is_a_set)
  ------------------
  |  Branch (929:11): [True: 2, False: 5]
  ------------------
  930|      2|        {
  931|      2|          hash_table->values = hash_table->keys;
  932|      2|          hash_table->have_big_values = hash_table->have_big_keys;
  933|      2|        }
  934|      7|    }
  935|       |
  936|       |  /* Make values big? */
  937|    250|  if (!is_a_set && !hash_table->have_big_values)
  ------------------
  |  Branch (937:7): [True: 248, False: 2]
  |  Branch (937:20): [True: 127, False: 121]
  ------------------
  938|    127|    {
  939|    127|      hash_table->have_big_values = g_hash_table_maybe_make_big_keys_or_values (&hash_table->values, value, hash_table->size);
  940|    127|    }
  941|       |
  942|       |#else
  943|       |
  944|       |  /* Just split if necessary */
  945|       |  if (is_a_set && key != value)
  946|       |    hash_table->values = g_memdup2 (hash_table->keys, sizeof (gpointer) * hash_table->size);
  947|       |
  948|       |#endif
  949|    250|}
ghash.c:g_hash_table_maybe_make_big_keys_or_values:
  873|    134|{
  874|    134|  if (entry_is_big (v))
  ------------------
  |  Branch (874:7): [True: 10, False: 124]
  ------------------
  875|     10|    {
  876|     10|      guint *a = (guint *) *a_p;
  877|     10|      gpointer *a_new;
  878|     10|      gint i;
  879|       |
  880|     10|      a_new = g_new (gpointer, ht_size);
  ------------------
  |  |  315|     10|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|     10|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     10|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     10|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     10|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     10|	  gpointer __p;						\
  |  |  |  |  264|     10|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 10]
  |  |  |  |  ------------------
  |  |  |  |  265|     10|	    __p = g_##func (__n);				\
  |  |  |  |  266|     10|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 10]
  |  |  |  |  ------------------
  |  |  |  |  267|     10|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     10|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     10|	  else							\
  |  |  |  |  270|     10|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     10|	  __p;							\
  |  |  |  |  272|     10|	}))
  |  |  ------------------
  ------------------
  881|       |
  882|     90|      for (i = 0; i < ht_size; i++)
  ------------------
  |  Branch (882:19): [True: 80, False: 10]
  ------------------
  883|     80|        {
  884|     80|          a_new[i] = GUINT_TO_POINTER (a[i]);
  ------------------
  |  |  107|     80|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
  885|     80|        }
  886|       |
  887|     10|      g_free (a);
  888|     10|      *a_p = a_new;
  889|     10|      return TRUE;
  ------------------
  |  |  929|     10|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     10|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  890|     10|    }
  891|       |
  892|    124|  return FALSE;
  ------------------
  |  |  925|    124|#define	FALSE	(0)
  ------------------
  893|    134|}
ghash.c:entry_is_big:
  867|    134|{
  868|    134|  return (((guintptr) v) >> ((BIG_ENTRY_SIZE - SMALL_ENTRY_SIZE) * 8)) != 0;
  ------------------
  |  |  192|    134|#define BIG_ENTRY_SIZE (SIZEOF_VOID_P)
  |  |  ------------------
  |  |  |  |  408|    134|#define SIZEOF_VOID_P 8
  |  |  ------------------
  ------------------
                return (((guintptr) v) >> ((BIG_ENTRY_SIZE - SMALL_ENTRY_SIZE) * 8)) != 0;
  ------------------
  |  |  193|    134|#define SMALL_ENTRY_SIZE (SIZEOF_INT)
  |  |  ------------------
  |  |  |  |  396|    134|#define SIZEOF_INT 4
  |  |  ------------------
  ------------------
  869|    134|}
ghash.c:g_hash_table_lookup_node:
  408|  5.82k|{
  409|  5.82k|  guint node_index;
  410|  5.82k|  guint node_hash;
  411|  5.82k|  guint hash_value;
  412|  5.82k|  guint first_tombstone = 0;
  413|  5.82k|  gboolean have_tombstone = FALSE;
  ------------------
  |  |  925|  5.82k|#define	FALSE	(0)
  ------------------
  414|  5.82k|  guint step = 0;
  415|       |
  416|  5.82k|  hash_value = hash_table->hash_func (key);
  417|  5.82k|  if (G_UNLIKELY (!HASH_IS_REAL (hash_value)))
  ------------------
  |  | 1245|  5.82k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  5.82k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  5.82k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  5.82k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  5.82k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  5.82k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 5.82k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  5.82k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  5.82k|   else                                         \
  |  |  |  |  |  | 1240|  5.82k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  5.82k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  5.82k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  5.82k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  5.82k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  5.82k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  5.82k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 5.82k]
  |  |  ------------------
  ------------------
  418|      0|    hash_value = 2;
  419|       |
  420|  5.82k|  *hash_return = hash_value;
  421|       |
  422|  5.82k|  node_index = g_hash_table_hash_to_index (hash_table, hash_value);
  423|  5.82k|  node_hash = hash_table->hashes[node_index];
  424|       |
  425|  7.61k|  while (!HASH_IS_UNUSED (node_hash))
  ------------------
  |  |  183|  7.61k|#define HASH_IS_UNUSED(h_) ((h_) == UNUSED_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  181|  7.61k|#define UNUSED_HASH_VALUE 0
  |  |  ------------------
  ------------------
  |  Branch (425:10): [True: 1.90k, False: 5.71k]
  ------------------
  426|  1.90k|    {
  427|       |      /* We first check if our full hash values
  428|       |       * are equal so we can avoid calling the full-blown
  429|       |       * key equality function in most cases.
  430|       |       */
  431|  1.90k|      if (node_hash == hash_value)
  ------------------
  |  Branch (431:11): [True: 110, False: 1.79k]
  ------------------
  432|    110|        {
  433|    110|          gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
  434|       |
  435|    110|          if (hash_table->key_equal_func)
  ------------------
  |  Branch (435:15): [True: 110, False: 0]
  ------------------
  436|    110|            {
  437|    110|              if (hash_table->key_equal_func (node_key, key))
  ------------------
  |  Branch (437:19): [True: 110, False: 0]
  ------------------
  438|    110|                return node_index;
  439|    110|            }
  440|      0|          else if (node_key == key)
  ------------------
  |  Branch (440:20): [True: 0, False: 0]
  ------------------
  441|      0|            {
  442|      0|              return node_index;
  443|      0|            }
  444|    110|        }
  445|  1.79k|      else if (HASH_IS_TOMBSTONE (node_hash) && !have_tombstone)
  ------------------
  |  |  184|  3.58k|#define HASH_IS_TOMBSTONE(h_) ((h_) == TOMBSTONE_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  182|  1.79k|#define TOMBSTONE_HASH_VALUE 1
  |  |  ------------------
  |  |  |  Branch (184:31): [True: 0, False: 1.79k]
  |  |  ------------------
  ------------------
  |  Branch (445:49): [True: 0, False: 0]
  ------------------
  446|      0|        {
  447|      0|          first_tombstone = node_index;
  448|      0|          have_tombstone = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  449|      0|        }
  450|       |
  451|  1.79k|      step++;
  452|  1.79k|      node_index += step;
  453|  1.79k|      node_index &= hash_table->mask;
  454|  1.79k|      node_hash = hash_table->hashes[node_index];
  455|  1.79k|    }
  456|       |
  457|  5.71k|  if (have_tombstone)
  ------------------
  |  Branch (457:7): [True: 0, False: 5.71k]
  ------------------
  458|      0|    return first_tombstone;
  459|       |
  460|  5.71k|  return node_index;
  461|  5.71k|}
ghash.c:g_hash_table_hash_to_index:
  373|  6.15k|{
  374|       |  /* Multiply the hash by a small prime before applying the modulo. This
  375|       |   * prevents the table from becoming densely packed, even with a poor hash
  376|       |   * function. A densely packed table would have poor performance on
  377|       |   * workloads with many failed lookups or a high degree of churn. */
  378|  6.15k|  return (hash * 11) % hash_table->mod;
  379|  6.15k|}
ghash.c:g_hash_table_insert_internal:
 1564|    271|{
 1565|    271|  guint key_hash;
 1566|    271|  guint node_index;
 1567|       |
 1568|    271|  g_return_val_if_fail (hash_table != NULL, FALSE);
  ------------------
  |  |  663|    271|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    271|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    271|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    271|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    271|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    271| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    271|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    271|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    271|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 271, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    271|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    271|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    271|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    271|   else                                         \
  |  |  |  |  |  |  |  | 1240|    271|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    271|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    271|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    271|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    271|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 271, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    271|      { } \
  |  |  666|    271|    else \
  |  |  667|    271|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    271|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    271|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 271]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1569|       |
 1570|    271|  node_index = g_hash_table_lookup_node (hash_table, key, &key_hash);
 1571|       |
 1572|    271|  return g_hash_table_insert_node (hash_table, node_index, key_hash, key, value, keep_new_key, FALSE);
  ------------------
  |  |  925|    271|#define	FALSE	(0)
  ------------------
 1573|    271|}
ghash.c:g_hash_table_assign_key_or_value:
  341|  1.00k|{
  342|       |#ifndef USE_SMALL_ARRAYS
  343|       |  is_big = TRUE;
  344|       |#endif
  345|  1.00k|  if (is_big)
  ------------------
  |  Branch (345:7): [True: 754, False: 247]
  ------------------
  346|    754|    *(((gpointer *) a) + index) = v;
  347|    247|  else
  348|    247|    *(((guint *) a) + index) = GPOINTER_TO_UINT (v);
  ------------------
  |  |  104|    247|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
  349|  1.00k|}
ghash.c:g_hash_table_maybe_resize:
  854|    271|{
  855|    271|  gsize noccupied = hash_table->noccupied;
  856|    271|  gsize size = hash_table->size;
  857|       |
  858|    271|  if ((size > hash_table->nnodes * 4 && size > 1 << HASH_TABLE_MIN_SHIFT) ||
  ------------------
  |  |  179|      7|#define HASH_TABLE_MIN_SHIFT 3  /* 1 << 3 == 8 buckets */
  ------------------
  |  Branch (858:8): [True: 7, False: 264]
  |  Branch (858:41): [True: 0, False: 7]
  ------------------
  859|    271|      (size <= noccupied + (noccupied / 16)))
  ------------------
  |  Branch (859:7): [True: 17, False: 254]
  ------------------
  860|     17|    g_hash_table_resize (hash_table);
  861|    271|}
ghash.c:g_hash_table_resize:
  797|     17|{
  798|     17|  guint32 *reallocated_buckets_bitmap;
  799|     17|  gsize old_size;
  800|     17|  gboolean is_a_set;
  801|       |
  802|     17|  old_size = hash_table->size;
  803|     17|  is_a_set = hash_table->keys == hash_table->values;
  804|       |
  805|       |  /* The outer checks in g_hash_table_maybe_resize() will only consider
  806|       |   * cleanup/resize when the load factor goes below .25 (1/4, ignoring
  807|       |   * tombstones) or above .9375 (15/16, including tombstones).
  808|       |   *
  809|       |   * Once this happens, tombstones will always be cleaned out. If our
  810|       |   * load sans tombstones is greater than .75 (1/1.333, see below), we'll
  811|       |   * take this opportunity to grow the table too.
  812|       |   *
  813|       |   * Immediately after growing, the load factor will be in the range
  814|       |   * .375 .. .469. After shrinking, it will be exactly .5. */
  815|       |
  816|     17|  g_hash_table_set_shift_from_size (hash_table, hash_table->nnodes * 1.333);
  817|       |
  818|     17|  if (hash_table->size > old_size)
  ------------------
  |  Branch (818:7): [True: 17, False: 0]
  ------------------
  819|     17|    {
  820|     17|      realloc_arrays (hash_table, is_a_set);
  821|     17|      memset (&hash_table->hashes[old_size], 0, (hash_table->size - old_size) * sizeof (guint));
  822|       |
  823|     17|      reallocated_buckets_bitmap = g_new0 (guint32, (hash_table->size + 31) / 32);
  ------------------
  |  |  332|     17|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     17|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     17|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     17|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     17|	  gpointer __p;						\
  |  |  |  |  264|     17|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  265|     17|	    __p = g_##func (__n);				\
  |  |  |  |  266|     17|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  267|     17|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     17|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     17|	  else							\
  |  |  |  |  270|     17|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     17|	  __p;							\
  |  |  |  |  272|     17|	}))
  |  |  ------------------
  ------------------
  824|     17|    }
  825|      0|  else
  826|      0|    {
  827|      0|      reallocated_buckets_bitmap = g_new0 (guint32, (old_size + 31) / 32);
  ------------------
  |  |  332|      0|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      0|	  gpointer __p;						\
  |  |  |  |  264|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|      0|	    __p = g_##func (__n);				\
  |  |  |  |  266|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      0|	  __p;							\
  |  |  |  |  272|      0|	}))
  |  |  ------------------
  ------------------
  828|      0|    }
  829|       |
  830|     17|  if (is_a_set)
  ------------------
  |  Branch (830:7): [True: 2, False: 15]
  ------------------
  831|      2|    resize_set (hash_table, old_size, reallocated_buckets_bitmap);
  832|     15|  else
  833|     15|    resize_map (hash_table, old_size, reallocated_buckets_bitmap);
  834|       |
  835|     17|  g_free (reallocated_buckets_bitmap);
  836|       |
  837|     17|  if (hash_table->size < old_size)
  ------------------
  |  Branch (837:7): [True: 0, False: 17]
  ------------------
  838|      0|    realloc_arrays (hash_table, is_a_set);
  839|       |
  840|     17|  hash_table->noccupied = hash_table->nnodes;
  841|     17|}
ghash.c:g_hash_table_set_shift_from_size:
  311|     17|{
  312|     17|  gint shift;
  313|       |
  314|     17|  shift = g_hash_table_find_closest_shift (size);
  315|     17|  shift = MAX (shift, HASH_TABLE_MIN_SHIFT);
  ------------------
  |  |  933|     17|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 17, False: 0]
  |  |  ------------------
  ------------------
  316|       |
  317|     17|  g_hash_table_set_shift (hash_table, shift);
  318|     17|}
ghash.c:g_hash_table_find_closest_shift:
  300|     17|{
  301|     17|  gint i;
  302|       |
  303|    102|  for (i = 0; n; i++)
  ------------------
  |  Branch (303:15): [True: 85, False: 17]
  ------------------
  304|     85|    n >>= 1;
  305|       |
  306|     17|  return i;
  307|     17|}
ghash.c:realloc_arrays:
  665|     17|{
  666|     17|  hash_table->hashes = g_renew (guint, hash_table->hashes, hash_table->size);
  ------------------
  |  |  346|     17|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|     17|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|     17|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|     17|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|     17|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|     17|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  279|     17|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|     17|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  281|     17|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|     17|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|     17|	  else							\
  |  |  |  |  284|     17|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|     17|	  __p;							\
  |  |  |  |  286|     17|	}))
  |  |  ------------------
  ------------------
  667|     17|  hash_table->keys = g_hash_table_realloc_key_or_value_array (hash_table->keys, hash_table->size, hash_table->have_big_keys);
  668|       |
  669|     17|  if (is_a_set)
  ------------------
  |  Branch (669:7): [True: 2, False: 15]
  ------------------
  670|      2|    hash_table->values = hash_table->keys;
  671|     15|  else
  672|     15|    hash_table->values = g_hash_table_realloc_key_or_value_array (hash_table->values, hash_table->size, hash_table->have_big_values);
  673|     17|}
ghash.c:resize_set:
  700|      2|static void fname (GHashTable *hash_table, guint old_size, guint32 *reallocated_buckets_bitmap) \
  701|      2|{                                                                       \
  702|      2|  guint i;                                                              \
  703|      2|                                                                        \
  704|     26|  for (i = 0; i < old_size; i++)                                        \
  ------------------
  |  Branch (704:15): [True: 24, False: 2]
  ------------------
  705|     24|    {                                                                   \
  706|     24|      guint node_hash = hash_table->hashes[i];                          \
  707|     24|      gpointer key, value G_GNUC_UNUSED;                                \
  708|     24|                                                                        \
  709|     24|      if (!HASH_IS_REAL (node_hash))                                    \
  ------------------
  |  |  185|     24|#define HASH_IS_REAL(h_) ((h_) >= 2)
  ------------------
  |  Branch (709:11): [True: 0, False: 24]
  ------------------
  710|     24|        {                                                               \
  711|      0|          /* Clear tombstones */                                        \
  712|      0|          hash_table->hashes[i] = UNUSED_HASH_VALUE;                    \
  ------------------
  |  |  181|      0|#define UNUSED_HASH_VALUE 0
  ------------------
  713|      0|          continue;                                                     \
  714|      0|        }                                                               \
  715|     24|                                                                        \
  716|     24|      /* Skip entries relocated through eviction */                     \
  717|     24|      if (get_status_bit (reallocated_buckets_bitmap, i))               \
  ------------------
  |  Branch (717:11): [True: 9, False: 15]
  ------------------
  718|     24|        continue;                                                       \
  719|     24|                                                                        \
  720|     24|      hash_table->hashes[i] = UNUSED_HASH_VALUE;                        \
  ------------------
  |  |  181|     15|#define UNUSED_HASH_VALUE 0
  ------------------
  721|     15|      EVICT_KEYVAL (hash_table, i, NULL, NULL, key, value);             \
  ------------------
  |  |  773|     15|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|     15|#define G_STMT_START  do
  |  |  ------------------
  |  |  774|     15|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  775|     15|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     15|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 15]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  722|     15|                                                                        \
  723|     15|      for (;;)                                                          \
  724|     24|        {                                                               \
  725|     24|          guint hash_val;                                               \
  726|     24|          guint replaced_hash;                                          \
  727|     24|          guint step = 0;                                               \
  728|     24|                                                                        \
  729|     24|          hash_val = g_hash_table_hash_to_index (hash_table, node_hash); \
  730|     24|                                                                        \
  731|     24|          while (get_status_bit (reallocated_buckets_bitmap, hash_val)) \
  ------------------
  |  Branch (731:18): [True: 0, False: 24]
  ------------------
  732|     24|            {                                                           \
  733|      0|              step++;                                                   \
  734|      0|              hash_val += step;                                         \
  735|      0|              hash_val &= hash_table->mask;                             \
  736|      0|            }                                                           \
  737|     24|                                                                        \
  738|     24|          set_status_bit (reallocated_buckets_bitmap, hash_val);        \
  739|     24|                                                                        \
  740|     24|          replaced_hash = hash_table->hashes[hash_val];                 \
  741|     24|          hash_table->hashes[hash_val] = node_hash;                     \
  742|     24|          if (!HASH_IS_REAL (replaced_hash))                            \
  ------------------
  |  |  185|     24|#define HASH_IS_REAL(h_) ((h_) >= 2)
  ------------------
  |  Branch (742:15): [True: 15, False: 9]
  ------------------
  743|     24|            {                                                           \
  744|     15|              ASSIGN_KEYVAL (hash_table, hash_val, key, value);         \
  ------------------
  |  |  769|     15|#define ASSIGN_KEYVAL(ht, index, key, value) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|     15|#define G_STMT_START  do
  |  |  ------------------
  |  |  770|     15|    g_hash_table_assign_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  771|     15|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     15|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 15]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  745|     15|              break;                                                    \
  746|     15|            }                                                           \
  747|     24|                                                                        \
  748|     24|          node_hash = replaced_hash;                                    \
  749|      9|          EVICT_KEYVAL (hash_table, hash_val, key, value, key, value);  \
  ------------------
  |  |  773|      9|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|      9|#define G_STMT_START  do
  |  |  ------------------
  |  |  774|      9|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  775|      9|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      9|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 9]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  750|      9|        }                                                               \
  751|     15|    }                                                                   \
  752|      2|}
ghash.c:get_status_bit:
  685|    821|{
  686|    821|  return (bitmap[index / 32] >> (index % 32)) & 1;
  687|    821|}
ghash.c:g_hash_table_evict_key_or_value:
  353|    634|{
  354|       |#ifndef USE_SMALL_ARRAYS
  355|       |  is_big = TRUE;
  356|       |#endif
  357|    634|  if (is_big)
  ------------------
  |  Branch (357:7): [True: 463, False: 171]
  ------------------
  358|    463|    {
  359|    463|      gpointer r = *(((gpointer *) a) + index);
  360|    463|      *(((gpointer *) a) + index) = v;
  361|    463|      return r;
  362|    463|    }
  363|    171|  else
  364|    171|    {
  365|    171|      gpointer r = GUINT_TO_POINTER (*(((guint *) a) + index));
  ------------------
  |  |  107|    171|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
  366|    171|      *(((guint *) a) + index) = GPOINTER_TO_UINT (v);
  ------------------
  |  |  104|    171|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
  367|    171|      return r;
  368|    171|    }
  369|    634|}
ghash.c:set_status_bit:
  691|    329|{
  692|    329|  bitmap[index / 32] |= 1U << (index % 32);
  693|    329|}
ghash.c:resize_map:
  700|     15|static void fname (GHashTable *hash_table, guint old_size, guint32 *reallocated_buckets_bitmap) \
  701|     15|{                                                                       \
  702|     15|  guint i;                                                              \
  703|     15|                                                                        \
  704|    327|  for (i = 0; i < old_size; i++)                                        \
  ------------------
  |  Branch (704:15): [True: 312, False: 15]
  ------------------
  705|    312|    {                                                                   \
  706|    312|      guint node_hash = hash_table->hashes[i];                          \
  707|    312|      gpointer key, value G_GNUC_UNUSED;                                \
  708|    312|                                                                        \
  709|    312|      if (!HASH_IS_REAL (node_hash))                                    \
  ------------------
  |  |  185|    312|#define HASH_IS_REAL(h_) ((h_) >= 2)
  ------------------
  |  Branch (709:11): [True: 7, False: 305]
  ------------------
  710|    312|        {                                                               \
  711|      7|          /* Clear tombstones */                                        \
  712|      7|          hash_table->hashes[i] = UNUSED_HASH_VALUE;                    \
  ------------------
  |  |  181|      7|#define UNUSED_HASH_VALUE 0
  ------------------
  713|      7|          continue;                                                     \
  714|      7|        }                                                               \
  715|    312|                                                                        \
  716|    312|      /* Skip entries relocated through eviction */                     \
  717|    312|      if (get_status_bit (reallocated_buckets_bitmap, i))               \
  ------------------
  |  Branch (717:11): [True: 83, False: 222]
  ------------------
  718|    305|        continue;                                                       \
  719|    305|                                                                        \
  720|    305|      hash_table->hashes[i] = UNUSED_HASH_VALUE;                        \
  ------------------
  |  |  181|    222|#define UNUSED_HASH_VALUE 0
  ------------------
  721|    222|      EVICT_KEYVAL (hash_table, i, NULL, NULL, key, value);             \
  ------------------
  |  |  759|    222|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|    222|#define G_STMT_START  do
  |  |  ------------------
  |  |  760|    222|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  761|    222|    (outvalue) = g_hash_table_evict_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  762|    222|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    222|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 222]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  722|    222|                                                                        \
  723|    222|      for (;;)                                                          \
  724|    305|        {                                                               \
  725|    305|          guint hash_val;                                               \
  726|    305|          guint replaced_hash;                                          \
  727|    305|          guint step = 0;                                               \
  728|    305|                                                                        \
  729|    305|          hash_val = g_hash_table_hash_to_index (hash_table, node_hash); \
  730|    305|                                                                        \
  731|    468|          while (get_status_bit (reallocated_buckets_bitmap, hash_val)) \
  ------------------
  |  Branch (731:18): [True: 163, False: 305]
  ------------------
  732|    305|            {                                                           \
  733|    163|              step++;                                                   \
  734|    163|              hash_val += step;                                         \
  735|    163|              hash_val &= hash_table->mask;                             \
  736|    163|            }                                                           \
  737|    305|                                                                        \
  738|    305|          set_status_bit (reallocated_buckets_bitmap, hash_val);        \
  739|    305|                                                                        \
  740|    305|          replaced_hash = hash_table->hashes[hash_val];                 \
  741|    305|          hash_table->hashes[hash_val] = node_hash;                     \
  742|    305|          if (!HASH_IS_REAL (replaced_hash))                            \
  ------------------
  |  |  185|    305|#define HASH_IS_REAL(h_) ((h_) >= 2)
  ------------------
  |  Branch (742:15): [True: 222, False: 83]
  ------------------
  743|    305|            {                                                           \
  744|    222|              ASSIGN_KEYVAL (hash_table, hash_val, key, value);         \
  ------------------
  |  |  754|    222|#define ASSIGN_KEYVAL(ht, index, key, value) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|    222|#define G_STMT_START  do
  |  |  ------------------
  |  |  755|    222|    g_hash_table_assign_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  756|    222|    g_hash_table_assign_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  757|    222|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    222|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 222]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  745|    222|              break;                                                    \
  746|    222|            }                                                           \
  747|    305|                                                                        \
  748|    305|          node_hash = replaced_hash;                                    \
  749|     83|          EVICT_KEYVAL (hash_table, hash_val, key, value, key, value);  \
  ------------------
  |  |  759|     83|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|     83|#define G_STMT_START  do
  |  |  ------------------
  |  |  760|     83|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  761|     83|    (outvalue) = g_hash_table_evict_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  762|     83|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     83|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 83]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  750|     83|        }                                                               \
  751|    222|    }                                                                   \
  752|     15|}

glib_init:
  366|      4|{
  367|      4|  static gboolean glib_inited;
  368|       |
  369|      4|  if (glib_inited)
  ------------------
  |  Branch (369:7): [True: 2, False: 2]
  ------------------
  370|      2|    return;
  371|       |
  372|      2|  glib_inited = TRUE;
  ------------------
  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  373|       |
  374|      2|  g_messages_prefixed_init ();
  375|      2|  g_debug_init ();
  376|      2|  g_quark_init ();
  377|      2|  g_error_init ();
  378|      2|}
glib-init.c:glib_init_ctor:
  517|      2|{
  518|      2|  glib_init ();
  519|      2|}
glib-init.c:g_messages_prefixed_init:
  334|      2|{
  335|      2|  const GDebugKey keys[] = {
  336|      2|    { "error", G_LOG_LEVEL_ERROR },
  337|      2|    { "critical", G_LOG_LEVEL_CRITICAL },
  338|      2|    { "warning", G_LOG_LEVEL_WARNING },
  339|      2|    { "message", G_LOG_LEVEL_MESSAGE },
  340|      2|    { "info", G_LOG_LEVEL_INFO },
  341|      2|    { "debug", G_LOG_LEVEL_DEBUG }
  342|      2|  };
  343|       |
  344|      2|  g_log_msg_prefix = g_parse_debug_envvar ("G_MESSAGES_PREFIXED", keys, G_N_ELEMENTS (keys), g_log_msg_prefix);
  ------------------
  |  |  951|      2|#define G_N_ELEMENTS(arr)		(sizeof (arr) / sizeof ((arr)[0]))
  ------------------
  345|      2|}
glib-init.c:g_parse_debug_envvar:
  311|      4|{
  312|      4|  const gchar *value;
  313|       |
  314|       |#ifdef OS_WIN32
  315|       |  /* "fatal-warnings,fatal-criticals,all,help" is pretty short */
  316|       |  gchar buffer[100];
  317|       |
  318|       |  if (GetEnvironmentVariable (envvar, buffer, 100) < 100)
  319|       |    value = buffer;
  320|       |  else
  321|       |    return 0;
  322|       |#else
  323|      4|  value = getenv (envvar);
  324|      4|#endif
  325|       |
  326|      4|  if (value == NULL)
  ------------------
  |  Branch (326:7): [True: 4, False: 0]
  ------------------
  327|      4|    return default_value;
  328|       |
  329|      0|  return g_parse_debug_string (value, keys, n_keys);
  330|      4|}
glib-init.c:g_debug_init:
  349|      2|{
  350|      2|  const GDebugKey keys[] = {
  351|      2|    { "gc-friendly", 1 },
  352|      2|    {"fatal-warnings",  G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL },
  353|      2|    {"fatal-criticals", G_LOG_LEVEL_CRITICAL }
  354|      2|  };
  355|      2|  GLogLevelFlags flags;
  356|       |
  357|      2|  flags = g_parse_debug_envvar ("G_DEBUG", keys, G_N_ELEMENTS (keys), 0);
  ------------------
  |  |  951|      2|#define G_N_ELEMENTS(arr)		(sizeof (arr) / sizeof ((arr)[0]))
  ------------------
  358|       |
  359|      2|  g_log_always_fatal |= flags & G_LOG_LEVEL_MASK;
  360|       |
  361|      2|  g_mem_gc_friendly = flags & 1;
  362|      2|}

glib__private__:
   42|      2|{
   43|      2|  static const GLibPrivateVTable table = {
   44|      2|    g_wakeup_new,
   45|      2|    g_wakeup_free,
   46|      2|    g_wakeup_get_pollfd,
   47|      2|    g_wakeup_signal,
   48|      2|    g_wakeup_acknowledge,
   49|       |
   50|      2|    g_get_worker_context,
   51|       |
   52|      2|    g_check_setuid,
   53|      2|    g_main_context_new_with_next_id,
   54|       |
   55|      2|    g_dir_open_with_errno,
   56|      2|    g_dir_new_from_dirp,
   57|       |
   58|      2|    glib_init,
   59|       |
   60|       |#ifdef G_OS_WIN32
   61|       |    g_win32_stat_utf8,
   62|       |    g_win32_lstat_utf8,
   63|       |    g_win32_readlink_utf8,
   64|       |    g_win32_fstat,
   65|       |    g_win32_find_helper_executable_path,
   66|       |    g_win32_reopen_noninherited,
   67|       |    g_win32_handle_is_socket,
   68|       |#endif
   69|       |
   70|      2|    g_win32_push_empty_invalid_parameter_handler,
   71|      2|    g_win32_pop_invalid_parameter_handler,
   72|       |
   73|      2|    g_find_program_for_path,
   74|       |
   75|      2|    g_uri_get_default_scheme_port,
   76|       |
   77|      2|    g_set_prgname_once,
   78|       |
   79|      2|    g_datalist_id_update_atomic,
   80|      2|  };
   81|       |
   82|      2|  return &table;
   83|      2|}

g_malloc:
   95|  14.7k|{
   96|  14.7k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  14.7k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  14.7k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  14.7k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  14.7k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  14.7k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  14.7k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 14.7k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  14.7k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  14.7k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  14.7k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  14.7k|   else                                         \
  |  |  |  |  |  | 1240|  14.7k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  14.7k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  14.7k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  14.7k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  14.7k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 14.7k, False: 0]
  |  |  ------------------
  ------------------
   97|  14.7k|    {
   98|  14.7k|      gpointer mem;
   99|       |
  100|  14.7k|      mem = malloc (n_bytes);
  101|  14.7k|      TRACE (GLIB_MEM_ALLOC((void*) mem, (unsigned int) n_bytes, 0, 0));
  102|  14.7k|      if (mem)
  ------------------
  |  Branch (102:11): [True: 14.7k, False: 0]
  ------------------
  103|  14.7k|	return mem;
  104|       |
  105|  14.7k|      g_error ("%s: failed to allocate %"G_GSIZE_FORMAT" bytes",
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|  14.7k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  14.7k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  106|      0|               G_STRLOC, n_bytes);
  107|      0|    }
  108|       |
  109|      0|  TRACE(GLIB_MEM_ALLOC((void*) NULL, (int) n_bytes, 0, 0));
  110|       |
  111|       |  return NULL;
  112|  14.7k|}
g_malloc0:
  128|  9.38k|{
  129|  9.38k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  9.38k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  9.38k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  9.38k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  9.38k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  9.38k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  9.38k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 9.38k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  9.38k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  9.38k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  9.38k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  9.38k|   else                                         \
  |  |  |  |  |  | 1240|  9.38k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  9.38k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  9.38k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  9.38k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  9.38k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 9.38k, False: 0]
  |  |  ------------------
  ------------------
  130|  9.38k|    {
  131|  9.38k|      gpointer mem;
  132|       |
  133|  9.38k|      mem = calloc (1, n_bytes);
  134|  9.38k|      TRACE (GLIB_MEM_ALLOC((void*) mem, (unsigned int) n_bytes, 1, 0));
  135|  9.38k|      if (mem)
  ------------------
  |  Branch (135:11): [True: 9.38k, False: 0]
  ------------------
  136|  9.38k|	return mem;
  137|       |
  138|  9.38k|      g_error ("%s: failed to allocate %"G_GSIZE_FORMAT" bytes",
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|  9.38k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  9.38k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  139|      0|               G_STRLOC, n_bytes);
  140|      0|    }
  141|       |
  142|      0|  TRACE(GLIB_MEM_ALLOC((void*) NULL, (int) n_bytes, 1, 0));
  143|       |
  144|       |  return NULL;
  145|  9.38k|}
g_realloc:
  166|  7.91k|{
  167|  7.91k|  gpointer newmem;
  168|       |
  169|  7.91k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  7.91k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  7.91k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  7.91k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  7.91k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  7.91k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  7.91k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 7.91k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  7.91k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  7.91k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  7.91k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  7.91k|   else                                         \
  |  |  |  |  |  | 1240|  7.91k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  7.91k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  7.91k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  7.91k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  7.91k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 7.91k, False: 0]
  |  |  ------------------
  ------------------
  170|  7.91k|    {
  171|  7.91k|      newmem = realloc (mem, n_bytes);
  172|  7.91k|      TRACE (GLIB_MEM_REALLOC((void*) newmem, (void*)mem, (unsigned int) n_bytes, 0));
  173|  7.91k|      if (newmem)
  ------------------
  |  Branch (173:11): [True: 7.91k, False: 0]
  ------------------
  174|  7.91k|	return newmem;
  175|       |
  176|  7.91k|      g_error ("%s: failed to allocate %"G_GSIZE_FORMAT" bytes",
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|  7.91k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  7.91k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  177|      0|               G_STRLOC, n_bytes);
  178|      0|    }
  179|       |
  180|      0|  free (mem);
  181|       |
  182|      0|  TRACE (GLIB_MEM_REALLOC((void*) NULL, (void*)mem, 0, 0));
  183|       |
  184|       |  return NULL;
  185|  7.91k|}
g_free:
  207|  18.1k|{
  208|  18.1k|  free (mem);
  209|  18.1k|  TRACE(GLIB_MEM_FREE((void*) mem));
  210|  18.1k|}
g_free_sized:
  234|  16.3k|{
  235|       |#ifdef HAVE_FREE_SIZED
  236|       |  free_sized (mem, size);
  237|       |#else
  238|  16.3k|  free (mem);
  239|  16.3k|#endif
  240|  16.3k|  TRACE (GLIB_MEM_FREE ((void*) mem));
  241|  16.3k|}
g_malloc_n:
  380|     12|{
  381|     12|  if (SIZE_OVERFLOWS (n_blocks, n_block_bytes))
  ------------------
  |  |  361|     12|#define SIZE_OVERFLOWS(a,b) (G_UNLIKELY ((b) > 0 && (a) > G_MAXSIZE / (b)))
  |  |  ------------------
  |  |  |  | 1245|     12|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     12|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     12| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     12|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     12|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     36|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 12, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 12]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     12|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     12|   else                                         \
  |  |  |  |  |  |  |  | 1240|     12|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     12|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     12|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (361:29): [True: 0, False: 12]
  |  |  ------------------
  ------------------
  382|      0|    {
  383|      0|      g_error ("%s: overflow allocating %"G_GSIZE_FORMAT"*%"G_GSIZE_FORMAT" bytes",
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  384|      0|               G_STRLOC, n_blocks, n_block_bytes);
  385|      0|    }
  386|       |
  387|     12|  return g_malloc (n_blocks * n_block_bytes);
  388|     12|}
g_malloc0_n:
  407|     32|{
  408|     32|  if (SIZE_OVERFLOWS (n_blocks, n_block_bytes))
  ------------------
  |  |  361|     32|#define SIZE_OVERFLOWS(a,b) (G_UNLIKELY ((b) > 0 && (a) > G_MAXSIZE / (b)))
  |  |  ------------------
  |  |  |  | 1245|     32|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     32|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     32| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     32|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     32|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     96|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 32, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 32]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     32|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     32|   else                                         \
  |  |  |  |  |  |  |  | 1240|     32|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     32|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     32|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     32|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     32|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     32|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     32|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (361:29): [True: 0, False: 32]
  |  |  ------------------
  ------------------
  409|      0|    {
  410|      0|      g_error ("%s: overflow allocating %"G_GSIZE_FORMAT"*%"G_GSIZE_FORMAT" bytes",
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  411|      0|               G_STRLOC, n_blocks, n_block_bytes);
  412|      0|    }
  413|       |
  414|     32|  return g_malloc0 (n_blocks * n_block_bytes);
  415|     32|}
g_realloc_n:
  436|    191|{
  437|    191|  if (SIZE_OVERFLOWS (n_blocks, n_block_bytes))
  ------------------
  |  |  361|    191|#define SIZE_OVERFLOWS(a,b) (G_UNLIKELY ((b) > 0 && (a) > G_MAXSIZE / (b)))
  |  |  ------------------
  |  |  |  | 1245|    191|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    191|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    191| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    191|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    191|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    573|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 191, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 191]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    191|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    191|   else                                         \
  |  |  |  |  |  |  |  | 1240|    191|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    191|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    191|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    191|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    191|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    191|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    191|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (361:29): [True: 0, False: 191]
  |  |  ------------------
  ------------------
  438|      0|    {
  439|      0|      g_error ("%s: overflow allocating %"G_GSIZE_FORMAT"*%"G_GSIZE_FORMAT" bytes",
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  440|      0|               G_STRLOC, n_blocks, n_block_bytes);
  441|      0|    }
  442|       |
  443|    191|  return g_realloc (mem, n_blocks * n_block_bytes);
  444|    191|}

gobject.c:g_steal_pointer:
  235|      1|{
  236|      1|  gpointer *ptr = (gpointer *) pp;
  237|      1|  gpointer ref;
  238|       |
  239|      1|  ref = *ptr;
  240|      1|  *ptr = NULL;
  241|       |
  242|      1|  return ref;
  243|      1|}
garray.c:g_steal_pointer:
  235|  1.42k|{
  236|  1.42k|  gpointer *ptr = (gpointer *) pp;
  237|  1.42k|  gpointer ref;
  238|       |
  239|  1.42k|  ref = *ptr;
  240|  1.42k|  *ptr = NULL;
  241|       |
  242|  1.42k|  return ref;
  243|  1.42k|}

g_log_get_debug_enabled:
 2961|  2.31k|{
 2962|       |  return g_atomic_int_get (&g_log_debug_enabled);
  ------------------
  |  |  110|  2.31k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.31k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  2.31k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.31k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  2.31k|    gint gaig_temp;                                                          \
  |  |  113|  2.31k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 2.31k]
  |  |  ------------------
  |  |  114|  2.31k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  2.31k|    (gint) gaig_temp;                                                        \
  |  |  116|  2.31k|  }))
  ------------------
 2963|  2.31k|}

g_quark_init:
   62|      2|{
   63|      2|  g_assert (quark_seq_id == 0);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   64|      2|  quark_ht = g_hash_table_new (g_str_hash, g_str_equal);
   65|      2|  quarks = g_new (gchar*, QUARK_BLOCK_SIZE);
  ------------------
  |  |  315|      2|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      2|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      2|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      2|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      2|	  gpointer __p;						\
  |  |  |  |  264|      2|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  265|      2|	    __p = g_##func (__n);				\
  |  |  |  |  266|      2|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      2|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      2|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      2|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 2]
  |  |  |  |  |  Branch (267:26): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      2|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      2|	  else							\
  |  |  |  |  270|      2|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      2|	  __p;							\
  |  |  |  |  272|      2|	}))
  |  |  ------------------
  ------------------
   66|       |  quarks[0] = NULL;
   67|      2|  quark_seq_id = 1;
   68|      2|}
g_quark_try_string:
  134|      1|{
  135|      1|  GQuark quark = 0;
  136|       |
  137|      1|  if (string == NULL)
  ------------------
  |  Branch (137:7): [True: 0, False: 1]
  ------------------
  138|      0|    return 0;
  139|       |
  140|      1|  G_LOCK (quark_global);
  ------------------
  |  |  137|      1|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|      1|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  141|      1|  quark = GPOINTER_TO_UINT (g_hash_table_lookup (quark_ht, string));
  ------------------
  |  |  104|      1|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
  142|      1|  G_UNLOCK (quark_global);
  ------------------
  |  |  138|      1|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|      1|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  143|       |
  144|      1|  return quark;
  145|      1|}
g_quark_from_string:
  225|    108|{
  226|    108|  return quark_from_string_locked (string, TRUE);
  ------------------
  |  |  929|    108|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    108|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  227|    108|}
g_quark_from_static_string:
  254|     12|{
  255|     12|  return quark_from_string_locked (string, FALSE);
  ------------------
  |  |  925|     12|#define	FALSE	(0)
  ------------------
  256|     12|}
g_quark_to_string:
  268|    152|{
  269|    152|  gchar* result = NULL;
  270|    152|  gchar **strings;
  271|    152|  guint seq_id;
  272|       |
  273|    152|  seq_id = (guint) g_atomic_int_get (&quark_seq_id);
  ------------------
  |  |  110|    152|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    152|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    152|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    152|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    152|    gint gaig_temp;                                                          \
  |  |  113|    152|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 152]
  |  |  ------------------
  |  |  114|    152|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    152|    (gint) gaig_temp;                                                        \
  |  |  116|    152|  }))
  ------------------
  274|    152|  strings = g_atomic_pointer_get (&quarks);
  ------------------
  |  |  127|    152|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|    152|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|    152|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|    152|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|    152|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|    152|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|    152|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|    152|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|    152|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|    152|    gapg_temp_newval;                                                      \
  |  |  133|    152|  }))
  ------------------
  275|       |
  276|    152|  if (quark < seq_id)
  ------------------
  |  Branch (276:7): [True: 152, False: 0]
  ------------------
  277|    152|    result = strings[quark];
  278|       |
  279|    152|  return result;
  280|    152|}
g_intern_string:
  347|      1|{
  348|      1|  return quark_intern_string_locked (string, TRUE);
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  349|      1|}
g_intern_static_string:
  370|    108|{
  371|    108|  return quark_intern_string_locked (string, FALSE);
  ------------------
  |  |  925|    108|#define	FALSE	(0)
  ------------------
  372|    108|}
gquark.c:quark_from_string_locked:
  196|    120|{
  197|    120|  GQuark quark = 0;
  198|       |
  199|    120|  if (!string)
  ------------------
  |  Branch (199:7): [True: 0, False: 120]
  ------------------
  200|      0|    return 0;
  201|       |
  202|    120|  G_LOCK (quark_global);
  ------------------
  |  |  137|    120|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|    120|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  203|    120|  quark = quark_from_string (string, duplicate);
  204|    120|  G_UNLOCK (quark_global);
  ------------------
  |  |  138|    120|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|    120|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  205|       |
  206|    120|  return quark;
  207|    120|}
gquark.c:quark_from_string:
  179|    229|{
  180|    229|  GQuark quark = 0;
  181|       |
  182|    229|  quark = GPOINTER_TO_UINT (g_hash_table_lookup (quark_ht, string));
  ------------------
  |  |  104|    229|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
  183|       |
  184|    229|  if (!quark)
  ------------------
  |  Branch (184:7): [True: 120, False: 109]
  ------------------
  185|    120|    {
  186|    120|      quark = quark_new (duplicate ? quark_strdup (string) : (gchar *)string);
  ------------------
  |  Branch (186:26): [True: 0, False: 120]
  ------------------
  187|    120|      TRACE(GLIB_QUARK_NEW(string, quark));
  188|    120|    }
  189|       |
  190|    229|  return quark;
  191|    229|}
gquark.c:quark_new:
  285|    120|{
  286|    120|  GQuark quark;
  287|    120|  gchar **quarks_new;
  288|       |
  289|    120|  if (quark_seq_id % QUARK_BLOCK_SIZE == 0)
  ------------------
  |  |   48|    120|#define QUARK_BLOCK_SIZE         2048
  ------------------
  |  Branch (289:7): [True: 0, False: 120]
  ------------------
  290|      0|    {
  291|      0|      quarks_new = g_new (gchar*, quark_seq_id + QUARK_BLOCK_SIZE);
  ------------------
  |  |  315|      0|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      0|	  gpointer __p;						\
  |  |  |  |  264|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|      0|	    __p = g_##func (__n);				\
  |  |  |  |  266|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      0|	  __p;							\
  |  |  |  |  272|      0|	}))
  |  |  ------------------
  ------------------
  292|      0|      if (quark_seq_id != 0)
  ------------------
  |  Branch (292:11): [True: 0, False: 0]
  ------------------
  293|      0|        memcpy (quarks_new, quarks, sizeof (char *) * quark_seq_id);
  294|      0|      memset (quarks_new + quark_seq_id, 0, sizeof (char *) * QUARK_BLOCK_SIZE);
  ------------------
  |  |   48|      0|#define QUARK_BLOCK_SIZE         2048
  ------------------
  295|       |      /* This leaks the old quarks array. Its unfortunate, but it allows
  296|       |       * us to do lockless lookup of the arrays, and there shouldn't be that
  297|       |       * many quarks in an app
  298|       |       */
  299|      0|      g_ignore_leak (g_atomic_pointer_get (&quarks));
  ------------------
  |  |  127|      0|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|      0|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|      0|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|      0|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|      0|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|      0|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|      0|    gapg_temp_newval;                                                      \
  |  |  133|      0|  }))
  ------------------
  300|      0|      g_atomic_pointer_set (&quarks, quarks_new);
  ------------------
  |  |  135|      0|  (G_GNUC_EXTENSION ({                                                      \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  136|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  137|      0|    glib_typeof ((atomic)) gaps_temp_atomic = (atomic);                     \
  |  |  ------------------
  |  |  |  |   39|      0|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  138|      0|    glib_typeof (*(atomic)) gaps_temp_newval = (newval);                    \
  |  |  ------------------
  |  |  |  |   39|      0|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  139|      0|    (void) (0 ? (gpointer) * (atomic) : NULL);                              \
  |  |  ------------------
  |  |  |  Branch (139:13): [Folded, False: 0]
  |  |  ------------------
  |  |  140|      0|    __atomic_store (gaps_temp_atomic, &gaps_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  141|      0|  }))
  ------------------
  301|      0|    }
  302|       |
  303|    120|  quark = quark_seq_id;
  304|    120|  g_atomic_pointer_set (&quarks[quark], string);
  ------------------
  |  |  135|    120|  (G_GNUC_EXTENSION ({                                                      \
  |  |  ------------------
  |  |  |  |   62|    120|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  136|    120|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                \
  |  |  ------------------
  |  |  |  |  871|    120|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  137|    120|    glib_typeof ((atomic)) gaps_temp_atomic = (atomic);                     \
  |  |  ------------------
  |  |  |  |   39|    120|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  138|    120|    glib_typeof (*(atomic)) gaps_temp_newval = (newval);                    \
  |  |  ------------------
  |  |  |  |   39|    120|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  139|    120|    (void) (0 ? (gpointer) * (atomic) : NULL);                              \
  |  |  ------------------
  |  |  |  Branch (139:13): [Folded, False: 120]
  |  |  ------------------
  |  |  140|    120|    __atomic_store (gaps_temp_atomic, &gaps_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  141|    120|  }))
  ------------------
  305|    120|  g_hash_table_insert (quark_ht, string, GUINT_TO_POINTER (quark));
  ------------------
  |  |  107|    120|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
  306|    120|  g_atomic_int_inc (&quark_seq_id);
  ------------------
  |  |  162|    120|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    120|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|    120|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    120|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|    120|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 120]
  |  |  ------------------
  |  |  165|    120|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|    120|  }))
  ------------------
  307|       |
  308|    120|  return quark;
  309|    120|}
gquark.c:quark_intern_string_locked:
  314|    109|{
  315|    109|  const gchar *result;
  316|    109|  GQuark quark;
  317|       |
  318|    109|  if (!string)
  ------------------
  |  Branch (318:7): [True: 0, False: 109]
  ------------------
  319|      0|    return NULL;
  320|       |
  321|    109|  G_LOCK (quark_global);
  ------------------
  |  |  137|    109|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|    109|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  322|    109|  quark = quark_from_string (string, duplicate);
  323|    109|  result = quarks[quark];
  324|    109|  G_UNLOCK (quark_global);
  ------------------
  |  |  138|    109|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|    109|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  325|       |
  326|    109|  return result;
  327|    109|}

g_atomic_ref_count_init:
  191|  10.9k|{
  192|  10.9k|  g_return_if_fail (arc != NULL);
  ------------------
  |  |  650|  10.9k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  10.9k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  10.9k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  10.9k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  10.9k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  10.9k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  10.9k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  10.9k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  10.9k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 10.9k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  10.9k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  10.9k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  10.9k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  10.9k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  10.9k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  10.9k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  10.9k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  10.9k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  10.9k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 10.9k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  10.9k|      { } \
  |  |  653|  10.9k|    else \
  |  |  654|  10.9k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  10.9k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  10.9k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 10.9k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  193|       |
  194|       |  /* Atomic refcounting is implemented using the positive range
  195|       |   * of signed integers:
  196|       |   *
  197|       |   * G_MININT                 Z¯< 0 > Z⁺                G_MAXINT
  198|       |   * |----------------------------|----------------------------|
  199|       |   *
  200|       |   * Acquiring a reference moves us towards MAXINT, and releasing a
  201|       |   * reference moves us towards 0.
  202|       |   */
  203|  10.9k|  *arc = 1;
  204|  10.9k|}
g_atomic_ref_count_inc:
  216|  2.27k|{
  217|  2.27k|  gint old_value;
  218|       |
  219|  2.27k|  g_return_if_fail (arc != NULL);
  ------------------
  |  |  650|  2.27k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.27k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  2.27k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.27k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.27k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.27k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.27k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.27k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.27k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.27k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.27k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.27k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.27k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.27k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.27k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.27k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.27k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.27k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.27k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.27k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  2.27k|      { } \
  |  |  653|  2.27k|    else \
  |  |  654|  2.27k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  2.27k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.27k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.27k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  220|  2.27k|  old_value = g_atomic_int_add (arc, 1);
  ------------------
  |  |  209|  2.27k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.27k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|  2.27k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.27k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|  2.27k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 2.27k]
  |  |  ------------------
  |  |  212|  2.27k|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|  2.27k|  }))
  ------------------
  221|  2.27k|  g_return_if_fail (old_value > 0);
  ------------------
  |  |  650|  2.27k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.27k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  2.27k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.27k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.27k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.27k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.27k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.27k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.27k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.27k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.27k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.27k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.27k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.27k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.27k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.27k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.27k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.27k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.27k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.27k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  2.27k|      { } \
  |  |  653|  2.27k|    else \
  |  |  654|  2.27k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  2.27k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.27k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.27k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|       |
  223|  2.27k|  if (old_value == G_MAXINT)
  ------------------
  |  |   39|  2.27k|#define G_MAXINT	INT_MAX
  ------------------
  |  Branch (223:7): [True: 0, False: 2.27k]
  ------------------
  224|      0|    g_critical ("Reference count has reached saturation");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  225|  2.27k|}
g_atomic_ref_count_dec:
  243|  13.1k|{
  244|  13.1k|  gint old_value;
  245|       |
  246|  13.1k|  g_return_val_if_fail (arc != NULL, FALSE);
  ------------------
  |  |  663|  13.1k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  13.1k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  13.1k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  13.1k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  13.1k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  13.1k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  13.1k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  13.1k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  13.1k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13.1k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  13.1k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  13.1k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  13.1k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  13.1k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  13.1k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  13.1k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  13.1k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  13.1k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  13.1k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13.1k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  13.1k|      { } \
  |  |  666|  13.1k|    else \
  |  |  667|  13.1k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  13.1k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  13.1k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  247|  13.1k|  old_value = g_atomic_int_add (arc, -1);
  ------------------
  |  |  209|  13.1k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  13.1k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|  13.1k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  13.1k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|  13.1k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 13.1k]
  |  |  ------------------
  |  |  212|  13.1k|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|  13.1k|  }))
  ------------------
  248|  13.1k|  g_return_val_if_fail (old_value > 0, FALSE);
  ------------------
  |  |  663|  13.1k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  13.1k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  13.1k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  13.1k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  13.1k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  13.1k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  13.1k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  13.1k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  13.1k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13.1k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  13.1k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  13.1k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  13.1k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  13.1k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  13.1k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  13.1k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  13.1k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  13.1k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  13.1k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13.1k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  13.1k|      { } \
  |  |  666|  13.1k|    else \
  |  |  667|  13.1k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  13.1k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  13.1k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13.1k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  249|       |
  250|  13.1k|  return old_value == 1;
  251|  13.1k|}

g_slice_alloc:
  190|  11.2k|{
  191|  11.2k|  gpointer mem;
  192|       |
  193|  11.2k|  mem = g_malloc (mem_size);
  194|  11.2k|  TRACE (GLIB_SLICE_ALLOC((void*)mem, mem_size));
  195|       |
  196|  11.2k|  return mem;
  197|  11.2k|}
g_slice_free1:
  274|  11.1k|{
  275|  11.1k|  if (G_UNLIKELY (g_mem_gc_friendly && mem_block))
  ------------------
  |  | 1245|  11.1k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  11.1k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  11.1k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  11.1k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  11.1k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  22.3k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 11.1k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  11.1k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  11.1k|   else                                         \
  |  |  |  |  |  | 1240|  11.1k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  11.1k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  11.1k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  11.1k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  11.1k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  11.1k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  11.1k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 11.1k]
  |  |  ------------------
  ------------------
  276|      0|    memset (mem_block, 0, mem_size);
  277|  11.1k|  g_free_sized (mem_block, mem_size);
  278|  11.1k|  TRACE (GLIB_SLICE_FREE((void*)mem_block, mem_size));
  279|  11.1k|}
g_slice_free_chain_with_offset:
  307|  2.61k|{
  308|  2.61k|  gpointer slice = mem_chain;
  309|  2.66k|  while (slice)
  ------------------
  |  Branch (309:10): [True: 49, False: 2.61k]
  ------------------
  310|     49|    {
  311|     49|      guint8 *current = slice;
  312|     49|      slice = *(gpointer *) (current + next_offset);
  313|     49|      if (G_UNLIKELY (g_mem_gc_friendly))
  ------------------
  |  | 1245|     49|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|     49|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|     49| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|     49|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|     49|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 49]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|     49|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|     49|   else                                         \
  |  |  |  |  |  | 1240|     49|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|     49|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|     49|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 49]
  |  |  ------------------
  ------------------
  314|      0|        memset (current, 0, mem_size);
  315|     49|      g_free_sized (current, mem_size);
  316|     49|    }
  317|  2.61k|}

g_slist_free:
   99|  2.61k|{
  100|       |  g_slice_free_chain (GSList, list, next);
  ------------------
  |  |   86|  2.61k|#define g_slice_free_chain(type, mem_chain, next)               \
  |  |  ------------------
  |  |  |  |  985|  2.61k|#define G_STMT_START  do
  |  |  ------------------
  |  |   87|  2.61k|G_STMT_START {                                                  \
  |  |   88|  2.61k|  if (1) g_slice_free_chain_with_offset (sizeof (type),		\
  |  |  ------------------
  |  |  |  Branch (88:7): [True: 2.61k, Folded]
  |  |  ------------------
  |  |   89|  2.61k|                 (mem_chain), G_STRUCT_OFFSET (type, next)); 	\
  |  |  ------------------
  |  |  |  |  964|  2.61k|      ((glong) offsetof (struct_type, member))
  |  |  ------------------
  |  |   90|  2.61k|  else   (void) ((type*) 0 == (mem_chain));			\
  |  |   91|  2.61k|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.61k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.61k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|  2.61k|}
g_slist_free_1:
  119|     17|{
  120|     17|  _g_slist_free1 (list);
  ------------------
  |  |   62|     17|#define _g_slist_free1(slist)   g_slice_free (GSList, slist)
  |  |  ------------------
  |  |  |  |   81|     17|#define g_slice_free(type, mem)                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |   82|     17|G_STMT_START {                                                  \
  |  |  |  |   83|     17|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:7): [True: 17, Folded]
  |  |  |  |  ------------------
  |  |  |  |   84|     17|  else   (void) ((type*) 0 == (mem)); 				\
  |  |  |  |   85|     17|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  121|     17|}
g_slist_append:
  186|      1|{
  187|      1|  GSList *new_list;
  188|      1|  GSList *last;
  189|       |
  190|      1|  new_list = _g_slist_alloc ();
  ------------------
  |  |   61|      1|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|      1|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  191|      1|  new_list->data = data;
  192|      1|  new_list->next = NULL;
  193|       |
  194|      1|  if (list)
  ------------------
  |  Branch (194:7): [True: 0, False: 1]
  ------------------
  195|      0|    {
  196|      0|      last = g_slist_last (list);
  197|       |      /* g_assert (last != NULL); */
  198|      0|      last->next = new_list;
  199|       |
  200|      0|      return list;
  201|      0|    }
  202|      1|  else
  203|      1|    return new_list;
  204|      1|}
g_slist_prepend:
  228|     66|{
  229|     66|  GSList *new_list;
  230|       |
  231|     66|  new_list = _g_slist_alloc ();
  ------------------
  |  |   61|     66|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|     66|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  232|     66|  new_list->data = data;
  233|     66|  new_list->next = list;
  234|       |
  235|     66|  return new_list;
  236|     66|}
g_slist_remove:
  404|     17|{
  405|     17|  return _g_slist_remove_data (list, data, FALSE);
  ------------------
  |  |  925|     17|#define	FALSE	(0)
  ------------------
  406|     17|}
g_slist_copy:
  517|      6|{
  518|      6|  return g_slist_copy_deep (list, NULL, NULL);
  519|      6|}
g_slist_copy_deep:
  554|      6|{
  555|      6|  GSList *new_list = NULL;
  556|       |
  557|      6|  if (list)
  ------------------
  |  Branch (557:7): [True: 2, False: 4]
  ------------------
  558|      2|    {
  559|      2|      GSList *last;
  560|       |
  561|      2|      new_list = _g_slist_alloc ();
  ------------------
  |  |   61|      2|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|      2|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  562|      2|      if (func)
  ------------------
  |  Branch (562:11): [True: 0, False: 2]
  ------------------
  563|      0|        new_list->data = func (list->data, user_data);
  564|      2|      else
  565|      2|        new_list->data = list->data;
  566|      2|      last = new_list;
  567|      2|      list = list->next;
  568|      2|      while (list)
  ------------------
  |  Branch (568:14): [True: 0, False: 2]
  ------------------
  569|      0|        {
  570|      0|          last->next = _g_slist_alloc ();
  ------------------
  |  |   61|      0|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|      0|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  571|      0|          last = last->next;
  572|      0|          if (func)
  ------------------
  |  Branch (572:15): [True: 0, False: 0]
  ------------------
  573|      0|            last->data = func (list->data, user_data);
  574|      0|          else
  575|      0|            last->data = list->data;
  576|      0|          list = list->next;
  577|      0|        }
  578|      2|      last->next = NULL;
  579|      2|    }
  580|       |
  581|      6|  return new_list;
  582|      6|}
g_slist_find:
  664|     17|{
  665|     32|  while (list)
  ------------------
  |  Branch (665:10): [True: 15, False: 17]
  ------------------
  666|     15|    {
  667|     15|      if (list->data == data)
  ------------------
  |  Branch (667:11): [True: 0, False: 15]
  ------------------
  668|      0|        break;
  669|     15|      list = list->next;
  670|     15|    }
  671|       |
  672|     17|  return list;
  673|     17|}
g_slist_length:
  804|      7|{
  805|      7|  guint length;
  806|       |
  807|      7|  length = 0;
  808|      9|  while (list)
  ------------------
  |  Branch (808:10): [True: 2, False: 7]
  ------------------
  809|      2|    {
  810|      2|      length++;
  811|      2|      list = list->next;
  812|      2|    }
  813|       |
  814|      7|  return length;
  815|      7|}
g_slist_sort:
 1019|      4|{
 1020|       |  return g_slist_sort_real (list, (GFunc) compare_func, NULL);
 1021|      4|}
gslist.c:_g_slist_remove_data:
  368|     17|{
  369|     17|  GSList *tmp = NULL;
  370|     17|  GSList **previous_ptr = &list;
  371|       |
  372|     17|  while (*previous_ptr)
  ------------------
  |  Branch (372:10): [True: 17, False: 0]
  ------------------
  373|     17|    {
  374|     17|      tmp = *previous_ptr;
  375|     17|      if (tmp->data == data)
  ------------------
  |  Branch (375:11): [True: 17, False: 0]
  ------------------
  376|     17|        {
  377|     17|          *previous_ptr = tmp->next;
  378|     17|          g_slist_free_1 (tmp);
  379|     17|          if (!all)
  ------------------
  |  Branch (379:15): [True: 17, False: 0]
  ------------------
  380|     17|            break;
  381|     17|        }
  382|      0|      else
  383|      0|        {
  384|      0|          previous_ptr = &tmp->next;
  385|      0|        }
  386|     17|    }
  387|       |
  388|     17|  return list;
  389|     17|}
gslist.c:g_slist_sort_real:
  976|      4|{
  977|      4|  GSList *l1, *l2;
  978|       |
  979|      4|  if (!list)
  ------------------
  |  Branch (979:7): [True: 4, False: 0]
  ------------------
  980|      4|    return NULL;
  981|      0|  if (!list->next)
  ------------------
  |  Branch (981:7): [True: 0, False: 0]
  ------------------
  982|      0|    return list;
  983|       |
  984|      0|  l1 = list;
  985|      0|  l2 = list->next;
  986|       |
  987|      0|  while ((l2 = l2->next) != NULL)
  ------------------
  |  Branch (987:10): [True: 0, False: 0]
  ------------------
  988|      0|    {
  989|      0|      if ((l2 = l2->next) == NULL)
  ------------------
  |  Branch (989:11): [True: 0, False: 0]
  ------------------
  990|      0|        break;
  991|      0|      l1=l1->next;
  992|      0|    }
  993|      0|  l2 = l1->next;
  994|      0|  l1->next = NULL;
  995|       |
  996|      0|  return g_slist_sort_merge (g_slist_sort_real (list, compare_func, user_data),
  997|      0|                             g_slist_sort_real (l2, compare_func, user_data),
  998|      0|                             compare_func,
  999|      0|                             user_data);
 1000|      0|}

g_strdup:
  316|    105|{
  317|    105|  gchar *new_str;
  318|    105|  gsize length;
  319|       |
  320|    105|  if G_LIKELY (str)
  ------------------
  |  | 1244|    105|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    105|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    105| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    105|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    105|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    105|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 103, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    105|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    103|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    103|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    105|   else                                         \
  |  |  |  |  |  | 1240|    105|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    105|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    105|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    105|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    105|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:25): [True: 103, False: 2]
  |  |  ------------------
  ------------------
  321|    103|    {
  322|    103|      length = strlen (str) + 1;
  323|    103|      new_str = g_new (char, length);
  ------------------
  |  |  315|    103|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|    103|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    103|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    103|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    103|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    103|	  gpointer __p;						\
  |  |  |  |  264|    103|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 103, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|    103|	    __p = g_##func (__n);				\
  |  |  |  |  266|    103|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    103|	  __p;							\
  |  |  |  |  272|    103|	}))
  |  |  ------------------
  ------------------
  324|    103|      memcpy (new_str, str, length);
  325|    103|    }
  326|      2|  else
  327|      2|    new_str = NULL;
  328|       |
  329|    105|  return new_str;
  330|    105|}
g_memdup2:
  381|    752|{
  382|    752|  gpointer new_mem;
  383|       |
  384|    752|  if (mem && byte_size != 0)
  ------------------
  |  Branch (384:7): [True: 752, False: 0]
  |  Branch (384:14): [True: 752, False: 0]
  ------------------
  385|    752|    {
  386|    752|      new_mem = g_malloc (byte_size);
  387|    752|      memcpy (new_mem, mem, byte_size);
  388|    752|    }
  389|      0|  else
  390|      0|    new_mem = NULL;
  391|       |
  392|    752|  return new_mem;
  393|    752|}

gdbuserror.c:g_strdup_inline:
  310|     22|{
  311|     22|  if (__builtin_constant_p (!str) && !str)
  ------------------
  |  Branch (311:7): [True: 22, False: 0]
  |  Branch (311:38): [True: 0, False: 22]
  ------------------
  312|      0|    return NULL;
  313|       |
  314|     22|  if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str)))
  ------------------
  |  Branch (314:7): [True: 22, False: 0]
  |  Branch (314:39): [True: 22, False: 0]
  |  Branch (314:48): [True: 0, False: 22]
  ------------------
  315|      0|    {
  316|      0|      const size_t len = strlen (str) + 1;
  317|      0|      char *dup_str = (char *) g_malloc (len);
  318|      0|      return (char *) memcpy (dup_str, str, len);
  319|      0|    }
  320|       |
  321|     22|  return g_strdup (str);
  322|     22|}
gparam.c:g_strdup_inline:
  310|      2|{
  311|      2|  if (__builtin_constant_p (!str) && !str)
  ------------------
  |  Branch (311:7): [True: 0, False: 2]
  |  Branch (311:38): [True: 0, False: 0]
  ------------------
  312|      0|    return NULL;
  313|       |
  314|      2|  if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str)))
  ------------------
  |  Branch (314:7): [True: 0, False: 2]
  |  Branch (314:39): [True: 0, False: 0]
  |  Branch (314:48): [True: 0, False: 0]
  ------------------
  315|      0|    {
  316|      0|      const size_t len = strlen (str) + 1;
  317|      0|      char *dup_str = (char *) g_malloc (len);
  318|      0|      return (char *) memcpy (dup_str, str, len);
  319|      0|    }
  320|       |
  321|      2|  return g_strdup (str);
  322|      2|}

g_string_sized_new:
  106|    236|{
  107|    236|  GString *string = g_slice_new (GString);
  ------------------
  |  |   48|    236|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
  108|       |
  109|    236|  string->allocated_len = 0;
  110|    236|  string->len   = 0;
  111|    236|  string->str   = NULL;
  112|       |
  113|    236|  g_string_expand (string, MAX (dfl_size, 64));
  ------------------
  |  |  933|    236|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 0, False: 236]
  |  |  ------------------
  ------------------
  114|    236|  string->str[0] = 0;
  115|       |
  116|    236|  return string;
  117|    236|}
g_string_new:
  130|    236|{
  131|    236|  GString *string;
  132|       |
  133|    236|  if (init == NULL || *init == '\0')
  ------------------
  |  Branch (133:7): [True: 236, False: 0]
  |  Branch (133:23): [True: 0, False: 0]
  ------------------
  134|    236|    string = g_string_sized_new (2);
  135|      0|  else
  136|      0|    {
  137|      0|      gint len;
  138|       |
  139|      0|      len = strlen (init);
  140|      0|      string = g_string_sized_new (len + 2);
  141|       |
  142|      0|      g_string_append_len (string, init, len);
  ------------------
  |  |  247|      0|  g_string_append_len_inline (gstr, val, len)
  ------------------
  143|      0|    }
  144|       |
  145|    236|  return string;
  146|    236|}
g_string_free:
  236|    236|{
  237|    236|  gchar *segment;
  238|       |
  239|    236|  g_return_val_if_fail (string != NULL, NULL);
  ------------------
  |  |  663|    236|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    236|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    236|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    236|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    236|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    236| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    236|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    236|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    236|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 236, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    236|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    236|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    236|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    236|   else                                         \
  |  |  |  |  |  |  |  | 1240|    236|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    236|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    236|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    236|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    236|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 236, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    236|      { } \
  |  |  666|    236|    else \
  |  |  667|    236|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    236|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    236|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 236]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  240|       |
  241|    236|  if (free_segment)
  ------------------
  |  Branch (241:7): [True: 36, False: 200]
  ------------------
  242|     36|    {
  243|     36|      g_free (string->str);
  244|     36|      segment = NULL;
  245|     36|    }
  246|    200|  else
  247|    200|    segment = string->str;
  248|       |
  249|    236|  g_slice_free (GString, string);
  ------------------
  |  |   81|    236|#define g_slice_free(type, mem)                                 \
  |  |  ------------------
  |  |  |  |  985|    236|#define G_STMT_START  do
  |  |  ------------------
  |  |   82|    236|G_STMT_START {                                                  \
  |  |   83|    236|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  ------------------
  |  |  |  Branch (83:7): [True: 236, Folded]
  |  |  ------------------
  |  |   84|    236|  else   (void) ((type*) 0 == (mem)); 				\
  |  |   85|    236|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    236|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 236]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  250|       |
  251|    236|  return segment;
  252|    236|}
g_string_free_and_steal:
  269|    200|{
  270|    200|  return (g_string_free) (string, FALSE);
  ------------------
  |  |  925|    200|#define	FALSE	(0)
  ------------------
  271|    200|}
g_string_insert_c:
  773|     49|{
  774|     49|  gsize pos_unsigned;
  775|       |
  776|     49|  g_return_val_if_fail (string != NULL, NULL);
  ------------------
  |  |  663|     49|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     49|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     49|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     49|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     49|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     49| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     49|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     49|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     49|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     49|   else                                         \
  |  |  |  |  |  |  |  | 1240|     49|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     49|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     49|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 49, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     49|      { } \
  |  |  666|     49|    else \
  |  |  667|     49|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     49|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     49|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 49]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  777|       |
  778|     49|  g_string_maybe_expand (string, 1);
  779|       |
  780|     49|  if (pos < 0)
  ------------------
  |  Branch (780:7): [True: 49, False: 0]
  ------------------
  781|     49|    pos = string->len;
  782|      0|  else
  783|     49|    g_return_val_if_fail ((gsize) pos <= string->len, string);
  ------------------
  |  |  663|      0|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      0|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      0|      { } \
  |  |  666|      0|    else \
  |  |  667|      0|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  784|     49|  pos_unsigned = pos;
  785|       |
  786|       |  /* If not just an append, move the old stuff */
  787|     49|  if (pos_unsigned < string->len)
  ------------------
  |  Branch (787:7): [True: 0, False: 49]
  ------------------
  788|      0|    memmove (string->str + pos_unsigned + 1,
  789|      0|             string->str + pos_unsigned, string->len - pos_unsigned);
  790|       |
  791|     49|  string->str[pos_unsigned] = c;
  792|       |
  793|     49|  string->len += 1;
  794|       |
  795|     49|  string->str[string->len] = 0;
  796|       |
  797|     49|  return string;
  798|     49|}
gstring.c:g_string_expand:
   70|    285|{
   71|       |  /* Detect potential overflow */
   72|    285|  if G_UNLIKELY ((G_MAXSIZE - string->len - 1) < len)
  ------------------
  |  | 1245|    285|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    285|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    285| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    285|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    285|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    285|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 285]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    285|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    285|   else                                         \
  |  |  |  |  |  | 1240|    285|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    285|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    285|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    285|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    285|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    285|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    285|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 285]
  |  |  ------------------
  ------------------
   73|    285|    g_error ("adding %" G_GSIZE_FORMAT " to string would overflow", len);
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   74|       |
   75|    285|  string->allocated_len = g_nearest_pow (string->len + len + 1);
   76|       |  /* If the new size is bigger than G_MAXSIZE / 2, only allocate enough
   77|       |   * memory for this string and don't over-allocate.
   78|       |   */
   79|    285|  if (string->allocated_len == 0)
  ------------------
  |  Branch (79:7): [True: 0, False: 285]
  ------------------
   80|      0|    string->allocated_len = string->len + len + 1;
   81|       |
   82|    285|  string->str = g_realloc (string->str, string->allocated_len);
   83|    285|}
gstring.c:g_string_maybe_expand:
   88|     49|{
   89|     49|  if (G_UNLIKELY (string->len + len >= string->allocated_len))
  ------------------
  |  | 1245|     49|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|     49|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|     49| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|     49|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|     49|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|     49|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|     49|   else                                         \
  |  |  |  |  |  | 1240|     49|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|     49|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|     49|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 49, False: 0]
  |  |  ------------------
  ------------------
   90|     49|    g_string_expand (string, len);
   91|     49|}

g_rec_mutex_lock:
  396|     54|{
  397|     54|  pthread_mutex_lock (g_rec_mutex_get_impl (mutex));
  398|     54|}
g_rec_mutex_unlock:
  415|     54|{
  416|     54|  pthread_mutex_unlock (rec_mutex->p);
  417|     54|}
g_rw_lock_writer_lock:
  553|    272|{
  554|    272|  int retval = pthread_rwlock_wrlock (g_rw_lock_get_impl (rw_lock));
  555|       |
  556|    272|  if (retval != 0)
  ------------------
  |  Branch (556:7): [True: 0, False: 272]
  ------------------
  557|      0|    g_critical ("Failed to get RW lock %p: %s", rw_lock, g_strerror (retval));
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  558|    272|}
g_rw_lock_writer_unlock:
  595|    272|{
  596|    272|  pthread_rwlock_unlock (g_rw_lock_get_impl (rw_lock));
  597|    272|}
g_rw_lock_reader_lock:
  623|    157|{
  624|    157|  int retval = pthread_rwlock_rdlock (g_rw_lock_get_impl (rw_lock));
  625|       |
  626|    157|  if (retval != 0)
  ------------------
  |  Branch (626:7): [True: 0, False: 157]
  ------------------
  627|      0|    g_critical ("Failed to get RW lock %p: %s", rw_lock, g_strerror (retval));
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  628|    157|}
g_rw_lock_reader_unlock:
  664|    157|{
  665|    157|  pthread_rwlock_unlock (g_rw_lock_get_impl (rw_lock));
  666|    157|}
g_mutex_lock:
 1489|  5.49k|{
 1490|       |  /* empty -> owned and we're done.  Anything else, and we need to wait... */
 1491|  5.49k|  if G_UNLIKELY (!g_atomic_int_compare_and_exchange (&mutex->i[0],
  ------------------
  |  | 1245|  5.49k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  5.49k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  5.49k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  5.49k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  5.49k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  27.4k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 5.49k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.49k, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 5.49k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  5.49k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  5.49k|   else                                         \
  |  |  |  |  |  | 1240|  5.49k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  5.49k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  5.49k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  5.49k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  5.49k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  5.49k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  5.49k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 5.49k]
  |  |  ------------------
  ------------------
 1492|  5.49k|                                                     G_MUTEX_STATE_EMPTY,
 1493|  5.49k|                                                     G_MUTEX_STATE_OWNED))
 1494|      0|    g_mutex_lock_slowpath (mutex);
 1495|  5.49k|}
g_mutex_unlock:
 1499|  5.49k|{
 1500|  5.49k|  guint prev;
 1501|       |
 1502|  5.49k|  prev = exchange_release (&mutex->i[0], G_MUTEX_STATE_EMPTY);
  ------------------
  |  | 1389|  5.49k|  atomic_exchange_explicit((atomic_uint *) (ptr), (new), __ATOMIC_RELEASE)
  ------------------
 1503|       |
 1504|       |  /* 1-> 0 and we're done.  Anything else and we need to signal... */
 1505|  5.49k|  if G_UNLIKELY (prev != G_MUTEX_STATE_OWNED)
  ------------------
  |  | 1245|  5.49k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  5.49k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  5.49k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  5.49k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  5.49k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  5.49k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 5.49k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  5.49k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  5.49k|   else                                         \
  |  |  |  |  |  | 1240|  5.49k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  5.49k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  5.49k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  5.49k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  5.49k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  5.49k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  5.49k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 5.49k]
  |  |  ------------------
  ------------------
 1506|      0|    g_mutex_unlock_slowpath (mutex, prev);
 1507|  5.49k|}
g_cond_broadcast:
 1566|     17|{
 1567|     17|  g_atomic_int_inc (&cond->i[0]);
  ------------------
  |  |  162|     17|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|     17|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     17|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|     17|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 17]
  |  |  ------------------
  |  |  165|     17|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|     17|  }))
  ------------------
 1568|       |
 1569|       |  g_futex_simple (&cond->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) INT_MAX, NULL);
  ------------------
  |  |  101|     17|  G_STMT_START                                                            \
  |  |  ------------------
  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  ------------------
  |  |  102|     17|  {                                                                       \
  |  |  103|     17|    int saved_errno = errno;                                              \
  |  |  104|     17|    int res = syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
  |  |  105|     17|    if (res < 0 && errno == EAGAIN)                                       \
  |  |  ------------------
  |  |  |  Branch (105:9): [True: 0, False: 17]
  |  |  |  Branch (105:20): [True: 0, False: 0]
  |  |  ------------------
  |  |  106|     17|      {                                                                   \
  |  |  107|      0|        errno = saved_errno;                                              \
  |  |  108|      0|      }                                                                   \
  |  |  109|     17|  }                                                                       \
  |  |  110|     17|  G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1570|     17|}
gthread-posix.c:g_rec_mutex_impl_new:
  282|      2|{
  283|      2|  pthread_mutexattr_t attr;
  284|      2|  pthread_mutex_t *mutex;
  285|       |
  286|      2|  mutex = malloc (sizeof (pthread_mutex_t));
  287|      2|  if G_UNLIKELY (mutex == NULL)
  ------------------
  |  | 1245|      2|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 2]
  |  |  ------------------
  ------------------
  288|      0|    g_thread_abort (errno, "malloc");
  289|       |
  290|      2|  pthread_mutexattr_init (&attr);
  291|      2|  pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE);
  292|      2|  pthread_mutex_init (mutex, &attr);
  293|      2|  pthread_mutexattr_destroy (&attr);
  294|       |
  295|      2|  return mutex;
  296|      2|}
gthread-posix.c:g_rec_mutex_get_impl:
  307|     54|{
  308|     54|  pthread_mutex_t *impl = g_atomic_pointer_get (&rec_mutex->p);
  ------------------
  |  |  127|     54|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|     54|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|     54|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|     54|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|     54|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|     54|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|     54|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|     54|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|     54|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|     54|    gapg_temp_newval;                                                      \
  |  |  133|     54|  }))
  ------------------
  309|       |
  310|     54|  if G_UNLIKELY (impl == NULL)
  ------------------
  |  | 1245|     54|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|     54|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|     54| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     54|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|     54|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|     54|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 52]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|     54|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|     54|   else                                         \
  |  |  |  |  |  | 1240|     54|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     52|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     52|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|     54|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     54|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     54|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|     54|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 2, False: 52]
  |  |  ------------------
  ------------------
  311|      2|    {
  312|      2|      impl = g_rec_mutex_impl_new ();
  313|      2|      if (!g_atomic_pointer_compare_and_exchange (&rec_mutex->p, NULL, impl))
  ------------------
  |  |  253|      2|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  254|      2|    G_STATIC_ASSERT (sizeof (oldval) == sizeof (gpointer));                  \
  |  |  ------------------
  |  |  |  |  871|      2|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  255|      2|    gpointer gapcae_oldval = (gpointer)(oldval);                             \
  |  |  256|      2|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      2|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  257|      2|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (257:13): [Folded, False: 2]
  |  |  ------------------
  |  |  258|      2|    __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (258:5): [True: 2, False: 0]
  |  |  ------------------
  |  |  259|      2|  }))
  ------------------
  |  Branch (313:11): [True: 0, False: 2]
  ------------------
  314|      0|        g_rec_mutex_impl_free (impl);
  315|      2|      impl = rec_mutex->p;
  316|      2|    }
  317|       |
  318|     54|  return impl;
  319|     54|}
gthread-posix.c:g_rw_lock_impl_new:
  444|      2|{
  445|      2|  pthread_rwlock_t *rwlock;
  446|      2|  gint status;
  447|       |
  448|      2|  rwlock = malloc (sizeof (pthread_rwlock_t));
  449|      2|  if G_UNLIKELY (rwlock == NULL)
  ------------------
  |  | 1245|      2|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 2]
  |  |  ------------------
  ------------------
  450|      0|    g_thread_abort (errno, "malloc");
  451|       |
  452|      2|  if G_UNLIKELY ((status = pthread_rwlock_init (rwlock, NULL)) != 0)
  ------------------
  |  | 1245|      2|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 2]
  |  |  ------------------
  ------------------
  453|      0|    g_thread_abort (status, "pthread_rwlock_init");
  454|       |
  455|      2|  return rwlock;
  456|      2|}
gthread-posix.c:g_rw_lock_get_impl:
  467|    858|{
  468|    858|  pthread_rwlock_t *impl = g_atomic_pointer_get (&lock->p);
  ------------------
  |  |  127|    858|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|    858|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|    858|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|    858|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|    858|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|    858|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|    858|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|    858|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|    858|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|    858|    gapg_temp_newval;                                                      \
  |  |  133|    858|  }))
  ------------------
  469|       |
  470|    858|  if G_UNLIKELY (impl == NULL)
  ------------------
  |  | 1245|    858|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    858|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    858| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    858|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    858|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    858|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 856]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    858|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    858|   else                                         \
  |  |  |  |  |  | 1240|    858|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    856|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    856|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    858|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    858|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    858|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    858|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 2, False: 856]
  |  |  ------------------
  ------------------
  471|      2|    {
  472|      2|      impl = g_rw_lock_impl_new ();
  473|      2|      if (!g_atomic_pointer_compare_and_exchange (&lock->p, NULL, impl))
  ------------------
  |  |  253|      2|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  254|      2|    G_STATIC_ASSERT (sizeof (oldval) == sizeof (gpointer));                  \
  |  |  ------------------
  |  |  |  |  871|      2|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  255|      2|    gpointer gapcae_oldval = (gpointer)(oldval);                             \
  |  |  256|      2|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      2|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  257|      2|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (257:13): [Folded, False: 2]
  |  |  ------------------
  |  |  258|      2|    __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (258:5): [True: 2, False: 0]
  |  |  ------------------
  |  |  259|      2|  }))
  ------------------
  |  Branch (473:11): [True: 0, False: 2]
  ------------------
  474|      0|        g_rw_lock_impl_free (impl);
  475|      2|      impl = lock->p;
  476|      2|    }
  477|       |
  478|    858|  return impl;
  479|    858|}

g_once_init_enter_pointer:
  670|     17|{
  671|     17|  gpointer *value_location = (gpointer *) location;
  672|     17|  gboolean need_init = FALSE;
  ------------------
  |  |  925|     17|#define	FALSE	(0)
  ------------------
  673|     17|  g_mutex_lock (&g_once_mutex);
  674|     17|  if (g_atomic_pointer_get (value_location) == 0)
  ------------------
  |  |  127|     17|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|     17|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|     17|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|     17|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|     17|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|     17|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|     17|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|     17|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|     17|    gapg_temp_newval;                                                      \
  |  |  133|     17|  }))
  ------------------
  |  Branch (674:7): [True: 17, False: 0]
  ------------------
  675|     17|    {
  676|     17|      if (!g_slist_find (g_once_init_list, (void *) value_location))
  ------------------
  |  Branch (676:11): [True: 17, False: 0]
  ------------------
  677|     17|        {
  678|     17|          need_init = TRUE;
  ------------------
  |  |  929|     17|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     17|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  679|     17|          g_once_init_list = g_slist_prepend (g_once_init_list, (void *) value_location);
  680|     17|        }
  681|      0|      else
  682|      0|        do
  683|      0|          g_cond_wait (&g_once_cond, &g_once_mutex);
  684|      0|        while (g_slist_find (g_once_init_list, (void *) value_location));
  ------------------
  |  Branch (684:16): [True: 0, False: 0]
  ------------------
  685|     17|    }
  686|     17|  g_mutex_unlock (&g_once_mutex);
  687|     17|  return need_init;
  688|     17|}
g_once_init_leave_pointer:
  746|     17|{
  747|     17|  gpointer *value_location = (gpointer *) location;
  748|     17|  gpointer old_value;
  749|       |
  750|     17|  g_return_if_fail (result != 0);
  ------------------
  |  |  650|     17|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     17|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     17|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     17|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     17| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     17|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     17|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 17, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     17|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     17|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     17|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     17|   else                                         \
  |  |  |  |  |  |  |  | 1240|     17|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     17|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     17|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     17|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     17|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 17, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     17|      { } \
  |  |  653|     17|    else \
  |  |  654|     17|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|     17|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  751|       |
  752|     17|  old_value = g_atomic_pointer_exchange (value_location, result);
  ------------------
  |  |  273|     17|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  274|     17|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|     17|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  275|     17|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (275:13): [Folded, False: 17]
  |  |  ------------------
  |  |  276|     17|    (gpointer) __atomic_exchange_n ((atomic), (newval), __ATOMIC_SEQ_CST);   \
  |  |  277|     17|  }))
  ------------------
  753|     17|  g_return_if_fail (old_value == 0);
  ------------------
  |  |  650|     17|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     17|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     17|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     17|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     17| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     17|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     17|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 17, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     17|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     17|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     17|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     17|   else                                         \
  |  |  |  |  |  |  |  | 1240|     17|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     17|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     17|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     17|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     17|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 17, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     17|      { } \
  |  |  653|     17|    else \
  |  |  654|     17|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|     17|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  754|       |
  755|     17|  g_mutex_lock (&g_once_mutex);
  756|     17|  g_return_if_fail (g_once_init_list != NULL);
  ------------------
  |  |  650|     17|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     17|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     17|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     17|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     17| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     17|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     17|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 17, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     17|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     17|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     17|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     17|   else                                         \
  |  |  |  |  |  |  |  | 1240|     17|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     17|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     17|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     17|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     17|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 17, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     17|      { } \
  |  |  653|     17|    else \
  |  |  654|     17|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|     17|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  757|     17|  g_once_init_list = g_slist_remove (g_once_init_list, (void *) value_location);
  758|     17|  g_cond_broadcast (&g_once_cond);
  759|     17|  g_mutex_unlock (&g_once_mutex);
  760|     17|}
g_thread_n_created:
  842|  1.13k|{
  843|       |  return g_atomic_int_get (&g_thread_n_created_counter);
  ------------------
  |  |  110|  1.13k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  1.13k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  1.13k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  1.13k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  1.13k|    gint gaig_temp;                                                          \
  |  |  113|  1.13k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 1.13k]
  |  |  ------------------
  |  |  114|  1.13k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  1.13k|    (gint) gaig_temp;                                                        \
  |  |  116|  1.13k|  }))
  ------------------
  844|  1.13k|}

g_nullify_pointer:
 2857|    128|{
 2858|    128|  g_return_if_fail (nullify_location != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2859|       |
 2860|    128|  *nullify_location = NULL;
 2861|    128|}

gsignal.c:g_bit_storage_impl:
  406|      4|{
  407|      4|#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
  408|      4|  return G_LIKELY (number) ?
  ------------------
  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  ------------------
  ------------------
  409|      4|           ((GLIB_SIZEOF_LONG * 8U - 1) ^ (guint) __builtin_clzl(number)) + 1 : 1;
  ------------------
  |  |   78|      4|#define GLIB_SIZEOF_LONG   8
  ------------------
  410|       |#else
  411|       |  guint n_bits = 0;
  412|       |
  413|       |  do
  414|       |    {
  415|       |      n_bits++;
  416|       |      number >>= 1;
  417|       |    }
  418|       |  while (number);
  419|       |  return n_bits;
  420|       |#endif
  421|      4|}
gvalue.c:g_bit_storage_impl:
  406|    682|{
  407|    682|#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
  408|    682|  return G_LIKELY (number) ?
  ------------------
  |  | 1244|    682|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    682|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    682| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    682|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    682|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    682|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 682, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    682|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    682|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    682|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    682|   else                                         \
  |  |  |  |  |  | 1240|    682|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    682|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    682|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    682|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    682|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 682, False: 0]
  |  |  ------------------
  ------------------
  409|    682|           ((GLIB_SIZEOF_LONG * 8U - 1) ^ (guint) __builtin_clzl(number)) + 1 : 1;
  ------------------
  |  |   78|    682|#define GLIB_SIZEOF_LONG   8
  ------------------
  410|       |#else
  411|       |  guint n_bits = 0;
  412|       |
  413|       |  do
  414|       |    {
  415|       |      n_bits++;
  416|       |      number >>= 1;
  417|       |    }
  418|       |  while (number);
  419|       |  return n_bits;
  420|       |#endif
  421|    682|}

garray.c:g_nearest_pow:
   41|  7.24k|{
   42|  7.24k|  gsize n = num - 1;
   43|       |
   44|  7.24k|  g_assert (num > 0 && num <= G_MAXSIZE / 2);
  ------------------
  |  |  275|  7.24k|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  7.24k|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|  7.24k|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|  7.24k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  7.24k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  7.24k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  7.24k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  7.24k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  21.7k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7.24k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7.24k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  7.24k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  7.24k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  7.24k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  7.24k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  7.24k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  7.24k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  7.24k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  7.24k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  7.24k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 7.24k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|  7.24k|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|  7.24k|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  7.24k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7.24k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   45|       |
   46|  7.24k|  n |= n >> 1;
   47|  7.24k|  n |= n >> 2;
   48|  7.24k|  n |= n >> 4;
   49|  7.24k|  n |= n >> 8;
   50|  7.24k|  n |= n >> 16;
   51|  7.24k|#if GLIB_SIZEOF_SIZE_T == 8
   52|  7.24k|  n |= n >> 32;
   53|  7.24k|#endif
   54|       |
   55|  7.24k|  return n + 1;
   56|  7.24k|}
gstring.c:g_nearest_pow:
   41|    285|{
   42|    285|  gsize n = num - 1;
   43|       |
   44|    285|  g_assert (num > 0 && num <= G_MAXSIZE / 2);
  ------------------
  |  |  275|    285|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    285|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    285|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    285|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    285|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    285| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    285|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    285|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    855|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 285, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 285, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    285|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    285|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    285|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    285|   else                                         \
  |  |  |  |  |  |  |  | 1240|    285|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    285|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    285|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    285|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    285|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 285, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    285|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    285|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    285|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 285]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   45|       |
   46|    285|  n |= n >> 1;
   47|    285|  n |= n >> 2;
   48|    285|  n |= n >> 4;
   49|    285|  n |= n >> 8;
   50|    285|  n |= n >> 16;
   51|    285|#if GLIB_SIZEOF_SIZE_T == 8
   52|    285|  n |= n >> 32;
   53|    285|#endif
   54|       |
   55|    285|  return n + 1;
   56|    285|}

_g_atomic_array_init:
  105|     40|{
  106|       |  array->data = NULL;
  107|     40|}
_g_atomic_array_copy:
  129|     65|{
  130|     65|  guint8 *new, *old;
  131|     65|  gsize old_size, new_size;
  132|       |
  133|     65|  G_LOCK (array);
  ------------------
  |  |  137|     65|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     65|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  134|     65|  old = g_atomic_pointer_get (&array->data);
  ------------------
  |  |  127|     65|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|     65|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|     65|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|     65|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|     65|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|     65|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|     65|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|     65|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|     65|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|     65|    gapg_temp_newval;                                                      \
  |  |  133|     65|  }))
  ------------------
  135|     65|  if (old)
  ------------------
  |  Branch (135:7): [True: 5, False: 60]
  ------------------
  136|      5|    {
  137|      5|      old_size = G_ATOMIC_ARRAY_DATA_SIZE (old);
  ------------------
  |  |   39|      5|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
  138|      5|      new_size = old_size + additional_element_size;
  139|       |      /* Don't reuse if copying to same size, as this may end
  140|       |	 up reusing the same pointer for the same array thus
  141|       |	 confusing the transaction check */
  142|      5|      new = freelist_alloc (new_size, additional_element_size != 0);
  143|      5|      memcpy (new, old, old_size);
  144|      5|    }
  145|     60|  else if (additional_element_size != 0)
  ------------------
  |  Branch (145:12): [True: 6, False: 54]
  ------------------
  146|      6|    {
  147|      6|      new_size = header_size + additional_element_size;
  148|      6|      new = freelist_alloc (new_size, TRUE);
  ------------------
  |  |  929|      6|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      6|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  149|      6|    }
  150|     54|  else
  151|     54|    new = NULL;
  152|     65|  G_UNLOCK (array);
  ------------------
  |  |  138|     65|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     65|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  153|     65|  return new;
  154|     65|}
_g_atomic_array_update:
  163|     11|{
  164|     11|  guint8 *old;
  165|       |
  166|     11|  G_LOCK (array);
  ------------------
  |  |  137|     11|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     11|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  167|     11|  old = g_atomic_pointer_exchange (&array->data, new_data);
  ------------------
  |  |  273|     11|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     11|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  274|     11|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|     11|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  275|     11|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (275:13): [Folded, False: 11]
  |  |  ------------------
  |  |  276|     11|    (gpointer) __atomic_exchange_n ((atomic), (newval), __ATOMIC_SEQ_CST);   \
  |  |  277|     11|  }))
  ------------------
  168|       |
  169|       |#ifdef G_DISABLE_ASSERT
  170|       |  if (old && G_ATOMIC_ARRAY_DATA_SIZE (new_data) < G_ATOMIC_ARRAY_DATA_SIZE (old))
  171|       |    {
  172|       |      g_atomic_pointer_set (&array->data, old);
  173|       |      g_return_if_reached ();
  174|       |    }
  175|       |#else
  176|     11|  g_assert (old == NULL || G_ATOMIC_ARRAY_DATA_SIZE (old) <= G_ATOMIC_ARRAY_DATA_SIZE (new_data));
  ------------------
  |  |  275|     11|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     11|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     11|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     11|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     11|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     11| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     11|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     11|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     22|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 11, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     11|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     11|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     11|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     11|   else                                         \
  |  |  |  |  |  |  |  | 1240|     11|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     11|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     11|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     11|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     11|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 11, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     11|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     11|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     11|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 11]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  177|     11|#endif
  178|       |
  179|     11|  if (old)
  ------------------
  |  Branch (179:7): [True: 0, False: 11]
  ------------------
  180|      0|    freelist_free (old);
  181|     11|  G_UNLOCK (array);
  ------------------
  |  |  138|     11|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     11|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  182|     11|}
gatomicarray.c:freelist_alloc:
   62|     11|{
   63|     11|  gpointer mem;
   64|     11|  FreeListNode *free, **prev;
   65|     11|  gsize real_size;
   66|       |
   67|     11|  if (reuse)
  ------------------
  |  Branch (67:7): [True: 6, False: 5]
  ------------------
   68|      6|    {
   69|      6|      for (free = freelist, prev = &freelist; free != NULL; prev = &free->next, free = free->next)
  ------------------
  |  Branch (69:47): [True: 0, False: 6]
  ------------------
   70|      0|	{
   71|      0|	  if (G_ATOMIC_ARRAY_DATA_SIZE (free) == size)
  ------------------
  |  |   39|      0|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
  |  Branch (71:8): [True: 0, False: 0]
  ------------------
   72|      0|	    {
   73|      0|	      *prev = free->next;
   74|      0|	      return (gpointer)free;
   75|      0|	    }
   76|      0|	}
   77|      6|    }
   78|       |
   79|     11|  real_size = sizeof (GAtomicArrayMetadata) + MAX (size, sizeof (FreeListNode));
  ------------------
  |  |  933|     11|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 8, False: 3]
  |  |  ------------------
  ------------------
   80|     11|  mem = g_slice_alloc (real_size);
   81|     11|  mem = ((char *) mem) + sizeof (GAtomicArrayMetadata);
   82|     11|  G_ATOMIC_ARRAY_DATA_SIZE (mem) = size;
  ------------------
  |  |   39|     11|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
   83|       |
   84|     11|#if ENABLE_VALGRIND
   85|     11|  VALGRIND_MALLOCLIKE_BLOCK (mem, real_size - sizeof (GAtomicArrayMetadata),
  ------------------
  |  | 6480|     11|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|     11|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|     11|    __extension__                                                 \
  |  |  |  |  |  |  415|     11|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|     11|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|     11|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|     11|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|     11|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|     11|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|     11|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|     11|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|     11|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|     11|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|     11|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|     11|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|     11|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|     11|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|     11|                    );                                            \
  |  |  |  |  |  |  430|     11|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|     11|    })
  |  |  |  |  ------------------
  |  |  |  |  205|     11|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|     11|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 11]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|     11|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
   86|     11|                             FALSE, FALSE);
   87|     11|#endif
   88|       |
   89|     11|  return mem;
   90|     11|}

_g_boxed_type_init:
   76|      2|{
   77|      2|  const GTypeInfo info = {
   78|      2|    0,                          /* class_size */
   79|      2|    NULL,                       /* base_init */
   80|      2|    NULL,                       /* base_destroy */
   81|      2|    NULL,                       /* class_init */
   82|      2|    NULL,                       /* class_destroy */
   83|      2|    NULL,                       /* class_data */
   84|      2|    0,                          /* instance_size */
   85|      2|    0,                          /* n_preallocs */
   86|      2|    NULL,                       /* instance_init */
   87|      2|    NULL,                       /* value_table */
   88|      2|  };
   89|      2|  const GTypeFundamentalInfo finfo = { G_TYPE_FLAG_DERIVABLE, };
   90|      2|  GType type G_GNUC_UNUSED  /* when compiling with G_DISABLE_ASSERT */;
   91|       |
   92|       |  /* G_TYPE_BOXED
   93|       |   */
   94|      2|  type = g_type_register_fundamental (G_TYPE_BOXED, g_intern_static_string ("GBoxed"), &info, &finfo,
  ------------------
  |  |  177|      2|#define G_TYPE_BOXED			G_TYPE_MAKE_FUNDAMENTAL (18)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   95|      2|				      G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT);
   96|      2|  g_assert (type == G_TYPE_BOXED);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   97|      2|}
g_boxed_type_register_static:
  278|      2|{
  279|      2|  static const GTypeValueTable vtable = {
  280|      2|    boxed_proxy_value_init,
  281|      2|    boxed_proxy_value_free,
  282|      2|    boxed_proxy_value_copy,
  283|      2|    boxed_proxy_value_peek_pointer,
  284|      2|    "p",
  285|      2|    boxed_proxy_collect_value,
  286|      2|    "p",
  287|      2|    boxed_proxy_lcopy_value,
  288|      2|  };
  289|      2|  GTypeInfo type_info = {
  290|      2|    0,			/* class_size */
  291|      2|    NULL,		/* base_init */
  292|      2|    NULL,		/* base_finalize */
  293|      2|    NULL,		/* class_init */
  294|      2|    NULL,		/* class_finalize */
  295|      2|    NULL,		/* class_data */
  296|      2|    0,			/* instance_size */
  297|      2|    0,			/* n_preallocs */
  298|      2|    NULL,		/* instance_init */
  299|      2|    &vtable,		/* value_table */
  300|      2|  };
  301|      2|  GType type;
  302|       |
  303|      2|  g_return_val_if_fail (name != NULL, 0);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  304|      2|  g_return_val_if_fail (boxed_copy != NULL, 0);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  305|      2|  g_return_val_if_fail (boxed_free != NULL, 0);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  306|      2|  g_return_val_if_fail (g_type_from_name (name) == 0, 0);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  307|       |
  308|      2|  type = g_type_register_static (G_TYPE_BOXED, name, &type_info, 0);
  ------------------
  |  |  177|      2|#define G_TYPE_BOXED			G_TYPE_MAKE_FUNDAMENTAL (18)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  309|       |
  310|       |  /* install proxy functions upon successful registration */
  311|      2|  if (type)
  ------------------
  |  Branch (311:7): [True: 2, False: 0]
  ------------------
  312|      2|    _g_type_boxed_init (type, boxed_copy, boxed_free);
  313|       |
  314|      2|  return type;
  315|      2|}

g_closure_new_simple:
  200|      1|{
  201|      1|  GClosure *closure;
  202|      1|  gint private_size;
  203|      1|  gchar *allocated;
  204|       |
  205|      1|  g_return_val_if_fail (sizeof_closure >= sizeof (GClosure), NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  206|       |
  207|      1|  private_size = sizeof (GRealClosure) - sizeof (GClosure);
  208|       |
  209|      1|#ifdef ENABLE_VALGRIND
  210|       |  /* See comments in gtype.c about what's going on here... */
  211|      1|  if (RUNNING_ON_VALGRIND)
  ------------------
  |  | 6216|      1|    (unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* if not */,         \
  |  |  ------------------
  |  |  |  |  414|      1|    __extension__                                                 \
  |  |  |  |  415|      1|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  416|      1|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  417|      1|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  418|      1|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  419|      1|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  420|      1|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  421|      1|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  422|      1|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  423|      1|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  424|      1|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  425|      1|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  426|      1|                     : "=d" (_zzq_result)                         \
  |  |  |  |  427|      1|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  428|      1|                     : "cc", "memory"                             \
  |  |  |  |  429|      1|                    );                                            \
  |  |  |  |  430|      1|    _zzq_result;                                                  \
  |  |  |  |  431|      1|    })
  |  |  ------------------
  |  |  |  Branch (6216:5): [True: 0, False: 1]
  |  |  ------------------
  |  | 6217|      1|                                    VG_USERREQ__RUNNING_ON_VALGRIND,  \
  |  | 6218|      1|                                    0, 0, 0, 0, 0)                    \
  ------------------
  212|      0|    {
  213|      0|      private_size += sizeof (gpointer);
  214|       |
  215|      0|      allocated = g_malloc0 (private_size + sizeof_closure + sizeof (gpointer));
  216|       |
  217|      0|      *(gpointer *) (allocated + private_size + sizeof_closure) = allocated + sizeof (gpointer);
  218|       |
  219|      0|      VALGRIND_MALLOCLIKE_BLOCK (allocated + private_size, sizeof_closure + sizeof (gpointer), 0, TRUE);
  ------------------
  |  | 6480|      0|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|      0|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      0|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      0|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      0|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|      0|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
  220|      0|      VALGRIND_MALLOCLIKE_BLOCK (allocated + sizeof (gpointer), private_size - sizeof (gpointer), 0, TRUE);
  ------------------
  |  | 6480|      0|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|      0|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      0|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      0|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      0|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|      0|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
  221|      0|    }
  222|      1|  else
  223|      1|#endif
  224|      1|    allocated = g_malloc0 (private_size + sizeof_closure);
  225|       |
  226|      1|  closure = (GClosure *) (allocated + private_size);
  227|       |
  228|      1|  SET (closure, ref_count, 1);
  ------------------
  |  |  127|      1|#define SET(_closure, _field, _value)           CHANGE_FIELD (_closure, _field, =, _value, TRUE,     (void),     (void) )
  |  |  ------------------
  |  |  |  |  109|      1|#define CHANGE_FIELD(_closure, _field, _OP, _value, _must_set, _SET_OLD, _SET_NEW)      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  110|      1|G_STMT_START {                                                                          \
  |  |  |  |  111|      1|  ClosureInt *cunion = (ClosureInt*) _closure;                 		                \
  |  |  |  |  112|      1|  gint new_int, old_int, success;                              		                \
  |  |  |  |  113|      1|  do                                                    		                \
  |  |  |  |  114|      1|    {                                                   		                \
  |  |  |  |  115|      1|      ClosureInt tmp;                                   		                \
  |  |  |  |  116|      1|      tmp.vint = old_int = cunion->vint;                		                \
  |  |  |  |  117|      1|      _SET_OLD tmp.closure._field;                                                      \
  |  |  |  |  118|      1|      tmp.closure._field _OP _value;                      		                \
  |  |  |  |  119|      1|      _SET_NEW tmp.closure._field;                                                      \
  |  |  |  |  120|      1|      new_int = tmp.vint;                               		                \
  |  |  |  |  121|      1|      success = g_atomic_int_compare_and_exchange (&cunion->vint, old_int, new_int);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  185|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  186|      1|    gint gaicae_oldval = (oldval);                                           \
  |  |  |  |  |  |  187|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  188|      1|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (188:13): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  189|      1|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (189:5): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  190|      1|  }))
  |  |  |  |  ------------------
  |  |  |  |  122|      1|    }                                                   		                \
  |  |  |  |  123|      1|  while (!success && _must_set);                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (123:10): [True: 0, False: 1]
  |  |  |  |  |  Branch (123:22): [True: 0, Folded]
  |  |  |  |  ------------------
  |  |  |  |  124|      1|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  229|      1|  SET (closure, floating, TRUE);
  ------------------
  |  |  127|      1|#define SET(_closure, _field, _value)           CHANGE_FIELD (_closure, _field, =, _value, TRUE,     (void),     (void) )
  |  |  ------------------
  |  |  |  |  109|      1|#define CHANGE_FIELD(_closure, _field, _OP, _value, _must_set, _SET_OLD, _SET_NEW)      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  110|      1|G_STMT_START {                                                                          \
  |  |  |  |  111|      1|  ClosureInt *cunion = (ClosureInt*) _closure;                 		                \
  |  |  |  |  112|      1|  gint new_int, old_int, success;                              		                \
  |  |  |  |  113|      1|  do                                                    		                \
  |  |  |  |  114|      1|    {                                                   		                \
  |  |  |  |  115|      1|      ClosureInt tmp;                                   		                \
  |  |  |  |  116|      1|      tmp.vint = old_int = cunion->vint;                		                \
  |  |  |  |  117|      1|      _SET_OLD tmp.closure._field;                                                      \
  |  |  |  |  118|      1|      tmp.closure._field _OP _value;                      		                \
  |  |  |  |  119|      1|      _SET_NEW tmp.closure._field;                                                      \
  |  |  |  |  120|      1|      new_int = tmp.vint;                               		                \
  |  |  |  |  121|      1|      success = g_atomic_int_compare_and_exchange (&cunion->vint, old_int, new_int);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  185|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  186|      1|    gint gaicae_oldval = (oldval);                                           \
  |  |  |  |  |  |  187|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  188|      1|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (188:13): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  189|      1|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (189:5): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  190|      1|  }))
  |  |  |  |  ------------------
  |  |  |  |  122|      1|    }                                                   		                \
  |  |  |  |  123|      1|  while (!success && _must_set);                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (123:10): [True: 0, False: 1]
  |  |  |  |  |  Branch (123:22): [True: 0, Folded]
  |  |  |  |  ------------------
  |  |  |  |  124|      1|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  230|      1|  closure->data = data;
  231|       |
  232|      1|  return closure;
  233|      1|}
g_closure_set_meta_marshal:
  358|      1|{
  359|      1|  GRealClosure *real_closure;
  360|       |
  361|      1|  g_return_if_fail (closure != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  362|      1|  g_return_if_fail (meta_marshal != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  363|      1|  g_return_if_fail (closure->is_invalid == FALSE);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  364|      1|  g_return_if_fail (closure->in_marshal == FALSE);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  365|       |
  366|      1|  real_closure = G_REAL_CLOSURE (closure);
  ------------------
  |  |   65|      1|  ((GRealClosure *)G_STRUCT_MEMBER_P ((_c), -G_STRUCT_OFFSET (GRealClosure, closure)))
  |  |  ------------------
  |  |  |  |  971|      1|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  ------------------
  367|       |
  368|      1|  g_return_if_fail (real_closure->meta_marshal == NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  369|       |
  370|      1|  real_closure->meta_marshal = meta_marshal;
  371|      1|  real_closure->meta_marshal_data = marshal_data;
  372|      1|}
g_closure_ref:
  558|      1|{
  559|      1|  guint new_ref_count;
  560|      1|  g_return_val_if_fail (closure != NULL, NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  561|      1|  g_return_val_if_fail (closure->ref_count > 0, NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  562|      1|  g_return_val_if_fail (closure->ref_count < CLOSURE_MAX_REF_COUNT, NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  563|       |
  564|      1|  INC_ASSIGN (closure, ref_count, &new_ref_count);
  ------------------
  |  |  129|      1|#define INC_ASSIGN(_closure, _field, _newv)     CHANGE_FIELD (_closure, _field, +=,     1, TRUE,     (void), *(_newv) = )
  |  |  ------------------
  |  |  |  |  109|      1|#define CHANGE_FIELD(_closure, _field, _OP, _value, _must_set, _SET_OLD, _SET_NEW)      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  110|      1|G_STMT_START {                                                                          \
  |  |  |  |  111|      1|  ClosureInt *cunion = (ClosureInt*) _closure;                 		                \
  |  |  |  |  112|      1|  gint new_int, old_int, success;                              		                \
  |  |  |  |  113|      1|  do                                                    		                \
  |  |  |  |  114|      1|    {                                                   		                \
  |  |  |  |  115|      1|      ClosureInt tmp;                                   		                \
  |  |  |  |  116|      1|      tmp.vint = old_int = cunion->vint;                		                \
  |  |  |  |  117|      1|      _SET_OLD tmp.closure._field;                                                      \
  |  |  |  |  118|      1|      tmp.closure._field _OP _value;                      		                \
  |  |  |  |  119|      1|      _SET_NEW tmp.closure._field;                                                      \
  |  |  |  |  120|      1|      new_int = tmp.vint;                               		                \
  |  |  |  |  121|      1|      success = g_atomic_int_compare_and_exchange (&cunion->vint, old_int, new_int);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  185|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  186|      1|    gint gaicae_oldval = (oldval);                                           \
  |  |  |  |  |  |  187|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  188|      1|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (188:13): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  189|      1|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (189:5): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  190|      1|  }))
  |  |  |  |  ------------------
  |  |  |  |  122|      1|    }                                                   		                \
  |  |  |  |  123|      1|  while (!success && _must_set);                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (123:10): [True: 0, False: 1]
  |  |  |  |  |  Branch (123:22): [True: 0, Folded]
  |  |  |  |  ------------------
  |  |  |  |  124|      1|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  565|      1|  g_return_val_if_fail (new_ref_count > 1, NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  566|       |
  567|      1|  return closure;
  568|      1|}
g_closure_unref:
  619|      1|{
  620|      1|  guint new_ref_count;
  621|       |
  622|      1|  g_return_if_fail (closure != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  623|      1|  g_return_if_fail (closure->ref_count > 0);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  624|       |
  625|      1|  if (closure->ref_count == 1)	/* last unref, invalidate first */
  ------------------
  |  Branch (625:7): [True: 0, False: 1]
  ------------------
  626|      0|    g_closure_invalidate (closure);
  627|       |
  628|      1|  DEC_ASSIGN (closure, ref_count, &new_ref_count);
  ------------------
  |  |  131|      1|#define DEC_ASSIGN(_closure, _field, _newv)     CHANGE_FIELD (_closure, _field, -=,     1, TRUE,     (void), *(_newv) = )
  |  |  ------------------
  |  |  |  |  109|      1|#define CHANGE_FIELD(_closure, _field, _OP, _value, _must_set, _SET_OLD, _SET_NEW)      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  110|      1|G_STMT_START {                                                                          \
  |  |  |  |  111|      1|  ClosureInt *cunion = (ClosureInt*) _closure;                 		                \
  |  |  |  |  112|      1|  gint new_int, old_int, success;                              		                \
  |  |  |  |  113|      1|  do                                                    		                \
  |  |  |  |  114|      1|    {                                                   		                \
  |  |  |  |  115|      1|      ClosureInt tmp;                                   		                \
  |  |  |  |  116|      1|      tmp.vint = old_int = cunion->vint;                		                \
  |  |  |  |  117|      1|      _SET_OLD tmp.closure._field;                                                      \
  |  |  |  |  118|      1|      tmp.closure._field _OP _value;                      		                \
  |  |  |  |  119|      1|      _SET_NEW tmp.closure._field;                                                      \
  |  |  |  |  120|      1|      new_int = tmp.vint;                               		                \
  |  |  |  |  121|      1|      success = g_atomic_int_compare_and_exchange (&cunion->vint, old_int, new_int);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  185|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  186|      1|    gint gaicae_oldval = (oldval);                                           \
  |  |  |  |  |  |  187|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  188|      1|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (188:13): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  189|      1|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (189:5): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  190|      1|  }))
  |  |  |  |  ------------------
  |  |  |  |  122|      1|    }                                                   		                \
  |  |  |  |  123|      1|  while (!success && _must_set);                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (123:10): [True: 0, False: 1]
  |  |  |  |  |  Branch (123:22): [True: 0, Folded]
  |  |  |  |  ------------------
  |  |  |  |  124|      1|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  629|       |
  630|      1|  if (new_ref_count == 0)
  ------------------
  |  Branch (630:7): [True: 0, False: 1]
  ------------------
  631|      0|    {
  632|      0|      closure_invoke_notifiers (closure, FNOTIFY);
  633|      0|      g_free (closure->notifiers);
  634|       |
  635|      0|#ifdef ENABLE_VALGRIND
  636|       |      /* See comments in gtype.c about what's going on here... */
  637|      0|      if (RUNNING_ON_VALGRIND)
  ------------------
  |  | 6216|      0|    (unsigned)VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* if not */,         \
  |  |  ------------------
  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  431|      0|    })
  |  |  ------------------
  |  |  |  Branch (6216:5): [True: 0, False: 0]
  |  |  ------------------
  |  | 6217|      0|                                    VG_USERREQ__RUNNING_ON_VALGRIND,  \
  |  | 6218|      0|                                    0, 0, 0, 0, 0)                    \
  ------------------
  638|      0|        {
  639|      0|          gchar *allocated;
  640|       |
  641|      0|          allocated = (gchar *) G_REAL_CLOSURE (closure);
  ------------------
  |  |   65|      0|  ((GRealClosure *)G_STRUCT_MEMBER_P ((_c), -G_STRUCT_OFFSET (GRealClosure, closure)))
  |  |  ------------------
  |  |  |  |  971|      0|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  ------------------
  642|      0|          allocated -= sizeof (gpointer);
  643|       |
  644|      0|          g_free (allocated);
  645|       |
  646|      0|          VALGRIND_FREELIKE_BLOCK (allocated + sizeof (gpointer), 0);
  ------------------
  |  | 6494|      0|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__FREELIKE_BLOCK,         \
  |  |  ------------------
  |  |  |  |  204|      0|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      0|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      0|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      0|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6495|      0|                                    addr, rzB, 0, 0, 0)
  ------------------
  647|      0|          VALGRIND_FREELIKE_BLOCK (closure, 0);
  ------------------
  |  | 6494|      0|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__FREELIKE_BLOCK,         \
  |  |  ------------------
  |  |  |  |  204|      0|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      0|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      0|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      0|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6495|      0|                                    addr, rzB, 0, 0, 0)
  ------------------
  648|      0|        }
  649|      0|      else
  650|      0|#endif
  651|      0|        g_free (G_REAL_CLOSURE (closure));
  ------------------
  |  |   65|      0|  ((GRealClosure *)G_STRUCT_MEMBER_P ((_c), -G_STRUCT_OFFSET (GRealClosure, closure)))
  |  |  ------------------
  |  |  |  |  971|      0|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  ------------------
  652|      0|    }
  653|      1|}
g_closure_sink:
  710|      1|{
  711|      1|  g_return_if_fail (closure != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  712|      1|  g_return_if_fail (closure->ref_count > 0);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  713|       |
  714|       |  /* floating is basically a kludge to avoid creating closures
  715|       |   * with a ref_count of 0. so the initial ref_count a closure has
  716|       |   * is unowned. with invoking g_closure_sink() code may
  717|       |   * indicate that it takes over that initial ref_count.
  718|       |   */
  719|      1|  if (closure->floating)
  ------------------
  |  Branch (719:7): [True: 1, False: 0]
  ------------------
  720|      1|    {
  721|      1|      gboolean was_floating;
  722|      1|      SWAP (closure, floating, FALSE, &was_floating);
  ------------------
  |  |  126|      1|#define SWAP(_closure, _field, _value, _oldv)   CHANGE_FIELD (_closure, _field, =, _value, TRUE, *(_oldv) =,     (void) )
  |  |  ------------------
  |  |  |  |  109|      1|#define CHANGE_FIELD(_closure, _field, _OP, _value, _must_set, _SET_OLD, _SET_NEW)      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  110|      1|G_STMT_START {                                                                          \
  |  |  |  |  111|      1|  ClosureInt *cunion = (ClosureInt*) _closure;                 		                \
  |  |  |  |  112|      1|  gint new_int, old_int, success;                              		                \
  |  |  |  |  113|      1|  do                                                    		                \
  |  |  |  |  114|      1|    {                                                   		                \
  |  |  |  |  115|      1|      ClosureInt tmp;                                   		                \
  |  |  |  |  116|      1|      tmp.vint = old_int = cunion->vint;                		                \
  |  |  |  |  117|      1|      _SET_OLD tmp.closure._field;                                                      \
  |  |  |  |  118|      1|      tmp.closure._field _OP _value;                      		                \
  |  |  |  |  119|      1|      _SET_NEW tmp.closure._field;                                                      \
  |  |  |  |  120|      1|      new_int = tmp.vint;                               		                \
  |  |  |  |  121|      1|      success = g_atomic_int_compare_and_exchange (&cunion->vint, old_int, new_int);    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  185|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  186|      1|    gint gaicae_oldval = (oldval);                                           \
  |  |  |  |  |  |  187|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  188|      1|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (188:13): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  189|      1|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (189:5): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  190|      1|  }))
  |  |  |  |  ------------------
  |  |  |  |  122|      1|    }                                                   		                \
  |  |  |  |  123|      1|  while (!success && _must_set);                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (123:10): [True: 0, False: 1]
  |  |  |  |  |  Branch (123:22): [True: 0, Folded]
  |  |  |  |  ------------------
  |  |  |  |  124|      1|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  723|       |      /* unref floating flag only once */
  724|      1|      if (was_floating)
  ------------------
  |  Branch (724:11): [True: 1, False: 0]
  ------------------
  725|      1|        g_closure_unref (closure);
  726|      1|    }
  727|      1|}
g_closure_set_marshal:
  929|      1|{
  930|      1|  g_return_if_fail (closure != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  931|      1|  g_return_if_fail (marshal != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  932|       |
  933|      1|  if (closure->marshal && closure->marshal != marshal)
  ------------------
  |  Branch (933:7): [True: 0, False: 1]
  |  Branch (933:27): [True: 0, False: 0]
  ------------------
  934|      0|    g_critical ("attempt to override closure->marshal (%p) with new marshal (%p)",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  935|      1|	        closure->marshal, marshal);
  936|      1|  else
  937|      1|    closure->marshal = marshal;
  938|      1|}
_g_closure_set_va_marshal:
  943|      1|{
  944|      1|  GRealClosure *real_closure;
  945|       |
  946|      1|  g_return_if_fail (closure != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  947|      1|  g_return_if_fail (marshal != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  948|       |
  949|      1|  real_closure = G_REAL_CLOSURE (closure);
  ------------------
  |  |   65|      1|  ((GRealClosure *)G_STRUCT_MEMBER_P ((_c), -G_STRUCT_OFFSET (GRealClosure, closure)))
  |  |  ------------------
  |  |  |  |  971|      1|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  ------------------
  950|       |
  951|      1|  if (real_closure->va_marshal && real_closure->va_marshal != marshal)
  ------------------
  |  Branch (951:7): [True: 0, False: 1]
  |  Branch (951:35): [True: 0, False: 0]
  ------------------
  952|      0|    g_critical ("attempt to override closure->va_marshal (%p) with new marshal (%p)",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  953|      1|	        real_closure->va_marshal, marshal);
  954|      1|  else
  955|      1|    real_closure->va_marshal = marshal;
  956|      1|}
g_signal_type_cclosure_new:
 1172|      1|{
 1173|      1|  GClosure *closure;
 1174|       |  
 1175|      1|  g_return_val_if_fail (G_TYPE_IS_CLASSED (itype) || G_TYPE_IS_INTERFACE (itype), NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1176|      1|  g_return_val_if_fail (struct_offset >= sizeof (GTypeClass), NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1177|       |  
 1178|      1|  closure = g_closure_new_simple (sizeof (GClosure), GTYPE_TO_POINTER (itype));
  ------------------
  |  | 2732|      1|#define GTYPE_TO_POINTER(t) ((gpointer) (guintptr) (t)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
 1179|      1|  if (G_TYPE_IS_INTERFACE (itype))
  ------------------
  |  |  300|      1|#define G_TYPE_IS_INTERFACE(type)               (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   42|      1|#define G_TYPE_FUNDAMENTAL(type)	(g_type_fundamental (type))
  |  |  ------------------
  |  |               #define G_TYPE_IS_INTERFACE(type)               (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      1|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      1|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (300:49): [True: 0, False: 1]
  |  |  ------------------
  ------------------
 1180|      0|    {
 1181|      0|      g_closure_set_meta_marshal (closure, GUINT_TO_POINTER (struct_offset), g_type_iface_meta_marshal);
  ------------------
  |  |  107|      0|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 1182|      0|      g_closure_set_meta_va_marshal (closure, g_type_iface_meta_marshalv);
 1183|      0|    }
 1184|      1|  else
 1185|      1|    {
 1186|      1|      g_closure_set_meta_marshal (closure, GUINT_TO_POINTER (struct_offset), g_type_class_meta_marshal);
  ------------------
  |  |  107|      1|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 1187|      1|      g_closure_set_meta_va_marshal (closure, g_type_class_meta_marshalv);
 1188|      1|    }
 1189|      1|  return closure;
 1190|      1|}
gclosure.c:g_closure_set_meta_va_marshal:
  314|      1|{
  315|      1|  GRealClosure *real_closure;
  316|       |
  317|      1|  g_return_if_fail (closure != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  318|      1|  g_return_if_fail (va_meta_marshal != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  319|      1|  g_return_if_fail (closure->is_invalid == FALSE);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  320|      1|  g_return_if_fail (closure->in_marshal == FALSE);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  321|       |
  322|      1|  real_closure = G_REAL_CLOSURE (closure);
  ------------------
  |  |   65|      1|  ((GRealClosure *)G_STRUCT_MEMBER_P ((_c), -G_STRUCT_OFFSET (GRealClosure, closure)))
  |  |  ------------------
  |  |  |  |  971|      1|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  ------------------
  323|       |
  324|      1|  g_return_if_fail (real_closure->meta_marshal != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  325|       |
  326|      1|  real_closure->va_meta_marshal = va_meta_marshal;
  327|      1|}

_g_enum_types_init:
   54|      2|{
   55|      2|  static gboolean initialized = FALSE;
  ------------------
  |  |  925|      2|#define	FALSE	(0)
  ------------------
   56|      2|  static const GTypeValueTable flags_enum_value_table = {
   57|      2|    value_flags_enum_init,	    /* value_init */
   58|      2|    NULL,			    /* value_free */
   59|      2|    value_flags_enum_copy_value,    /* value_copy */
   60|      2|    NULL,			    /* value_peek_pointer */
   61|      2|    "i",			    /* collect_format */
   62|      2|    value_flags_enum_collect_value, /* collect_value */
   63|      2|    "p",			    /* lcopy_format */
   64|      2|    value_flags_enum_lcopy_value,   /* lcopy_value */
   65|      2|  };
   66|      2|  GTypeInfo info = {
   67|      2|    0,                          /* class_size */
   68|      2|    NULL,                       /* base_init */
   69|      2|    NULL,                       /* base_destroy */
   70|      2|    NULL,                       /* class_init */
   71|      2|    NULL,                       /* class_destroy */
   72|      2|    NULL,                       /* class_data */
   73|      2|    0,                          /* instance_size */
   74|      2|    0,                          /* n_preallocs */
   75|      2|    NULL,                       /* instance_init */
   76|      2|    &flags_enum_value_table,    /* value_table */
   77|      2|  };
   78|      2|  static const GTypeFundamentalInfo finfo = {
   79|      2|    G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_DERIVABLE,
   80|      2|  };
   81|      2|  GType type G_GNUC_UNUSED  /* when compiling with G_DISABLE_ASSERT */;
   82|       |  
   83|      2|  g_return_if_fail (initialized == FALSE);
  ------------------
  |  |  650|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      2|      { } \
  |  |  653|      2|    else \
  |  |  654|      2|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   84|      2|  initialized = TRUE;
  ------------------
  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  ------------------
   85|       |  
   86|       |  /* G_TYPE_ENUM
   87|       |   */
   88|      2|  info.class_size = sizeof (GEnumClass);
   89|      2|  type = g_type_register_fundamental (G_TYPE_ENUM, g_intern_static_string ("GEnum"), &info, &finfo,
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   90|      2|				      G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT);
   91|      2|  g_assert (type == G_TYPE_ENUM);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   92|       |  
   93|       |  /* G_TYPE_FLAGS
   94|       |   */
   95|      2|  info.class_size = sizeof (GFlagsClass);
   96|      2|  type = g_type_register_fundamental (G_TYPE_FLAGS, g_intern_static_string ("GFlags"), &info, &finfo,
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   97|      2|				      G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT);
   98|      2|  g_assert (type == G_TYPE_FLAGS);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   99|      2|}

_g_object_type_init:
  851|      2|{
  852|      2|  static gboolean initialized = FALSE;
  ------------------
  |  |  925|      2|#define	FALSE	(0)
  ------------------
  853|      2|  static const GTypeFundamentalInfo finfo = {
  854|      2|    G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE,
  855|      2|  };
  856|      2|  GTypeInfo info = {
  857|      2|    sizeof (GObjectClass),
  858|      2|    (GBaseInitFunc) g_object_base_class_init,
  859|      2|    (GBaseFinalizeFunc) g_object_base_class_finalize,
  860|      2|    (GClassInitFunc) g_object_do_class_init,
  861|      2|    NULL	/* class_destroy */,
  862|      2|    NULL	/* class_data */,
  863|      2|    sizeof (GObject),
  864|      2|    0		/* n_preallocs */,
  865|      2|    (GInstanceInitFunc) g_object_init,
  866|      2|    NULL,	/* value_table */
  867|      2|  };
  868|      2|  static const GTypeValueTable value_table = {
  869|      2|    g_value_object_init,	  /* value_init */
  870|      2|    g_value_object_free_value,	  /* value_free */
  871|      2|    g_value_object_copy_value,	  /* value_copy */
  872|      2|    g_value_object_peek_pointer,  /* value_peek_pointer */
  873|      2|    "p",			  /* collect_format */
  874|      2|    g_value_object_collect_value, /* collect_value */
  875|      2|    "p",			  /* lcopy_format */
  876|      2|    g_value_object_lcopy_value,	  /* lcopy_value */
  877|      2|  };
  878|      2|  GType type G_GNUC_UNUSED  /* when compiling with G_DISABLE_ASSERT */;
  879|       |  
  880|      2|  g_return_if_fail (initialized == FALSE);
  ------------------
  |  |  650|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      2|      { } \
  |  |  653|      2|    else \
  |  |  654|      2|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  881|      2|  initialized = TRUE;
  ------------------
  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  882|       |  
  883|       |  /* G_TYPE_OBJECT
  884|       |   */
  885|      2|  info.value_table = &value_table;
  886|      2|  type = g_type_register_fundamental (G_TYPE_OBJECT, g_intern_static_string ("GObject"), &info, &finfo, 0);
  ------------------
  |  |  189|      2|#define G_TYPE_OBJECT			G_TYPE_MAKE_FUNDAMENTAL (20)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  887|      2|  g_assert (type == G_TYPE_OBJECT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  888|      2|  g_value_register_transform_func (G_TYPE_OBJECT, G_TYPE_OBJECT, g_value_object_transform_value);
  ------------------
  |  |  189|      2|#define G_TYPE_OBJECT			G_TYPE_MAKE_FUNDAMENTAL (20)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_OBJECT, G_TYPE_OBJECT, g_value_object_transform_value);
  ------------------
  |  |  189|      2|#define G_TYPE_OBJECT			G_TYPE_MAKE_FUNDAMENTAL (20)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  889|       |
  890|       |#if G_ENABLE_DEBUG
  891|       |  /* We cannot use GOBJECT_IF_DEBUG here because of the G_HAS_CONSTRUCTORS
  892|       |   * conditional in between, as the C spec leaves conditionals inside macro
  893|       |   * expansions as undefined behavior. Only GCC and Clang are known to work
  894|       |   * but compilation breaks on MSVC.
  895|       |   *
  896|       |   * See: https://bugzilla.gnome.org/show_bug.cgi?id=769504
  897|       |   */
  898|       |  if (_g_type_debug_flags & G_TYPE_DEBUG_OBJECTS) \
  899|       |    {
  900|       |      debug_objects_ht = g_hash_table_new (g_direct_hash, NULL);
  901|       |# ifndef G_HAS_CONSTRUCTORS
  902|       |      g_atexit (debug_objects_atexit);
  903|       |# endif /* G_HAS_CONSTRUCTORS */
  904|       |    }
  905|       |#endif /* G_ENABLE_DEBUG */
  906|       |
  907|       |#if HAVE_PRIVATE
  908|       |  GObject_private_offset =
  909|       |      g_type_add_instance_private (G_TYPE_OBJECT, sizeof (GObjectPrivate));
  910|       |#endif
  911|      2|}
g_object_class_install_property:
 1153|      1|{
 1154|      1|  GType oclass_type, parent_type;
 1155|       |
 1156|      1|  g_return_if_fail (G_IS_OBJECT_CLASS (class));
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      5|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1157|      1|  g_return_if_fail (property_id > 0);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1158|       |
 1159|      1|  oclass_type = G_OBJECT_CLASS_TYPE (class);
  ------------------
  |  |  117|      1|#define G_OBJECT_CLASS_TYPE(class)  (G_TYPE_FROM_CLASS (class))
  |  |  ------------------
  |  |  |  |  657|      1|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  ------------------
  ------------------
 1160|      1|  parent_type = g_type_parent (oclass_type);
 1161|       |
 1162|      1|  if (CLASS_HAS_DERIVED_CLASS (class))
  ------------------
  |  |   91|      1|    ((class)->flags & CLASS_HAS_DERIVED_CLASS_FLAG)
  |  |  ------------------
  |  |  |  |   89|      1|#define CLASS_HAS_DERIVED_CLASS_FLAG 0x2
  |  |  ------------------
  |  |  |  Branch (91:5): [True: 0, False: 1]
  |  |  ------------------
  ------------------
 1163|      1|    g_error ("Attempt to add property %s::%s to class after it was derived", G_OBJECT_CLASS_NAME (class), pspec->name);
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1164|       |
 1165|      1|  (void) validate_and_install_class_property (class,
 1166|      1|                                              oclass_type,
 1167|      1|                                              parent_type,
 1168|      1|                                              property_id,
 1169|      1|                                              pspec);
 1170|      1|}
g_object_new:
 2409|  2.56k|{
 2410|  2.56k|  GObject *object;
 2411|  2.56k|  va_list var_args;
 2412|       |  
 2413|       |  /* short circuit for calls supplying no properties */
 2414|  2.56k|  if (!first_property_name)
  ------------------
  |  Branch (2414:7): [True: 2.56k, False: 0]
  ------------------
 2415|  2.56k|    return g_object_new_with_properties (object_type, 0, NULL, NULL);
 2416|       |
 2417|  2.56k|  va_start (var_args, first_property_name);
 2418|      0|  object = g_object_new_valist (object_type, first_property_name, var_args);
 2419|      0|  va_end (var_args);
 2420|       |  
 2421|      0|  return object;
 2422|  2.56k|}
g_object_new_with_properties:
 2736|  2.56k|{
 2737|  2.56k|  GObjectClass *class, *unref_class = NULL;
 2738|  2.56k|  GObject *object;
 2739|       |
 2740|  2.56k|  g_return_val_if_fail (G_TYPE_IS_OBJECT (object_type), NULL);
  ------------------
  |  |  663|  2.56k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.56k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.56k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.56k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.56k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.56k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.56k|      { } \
  |  |  666|  2.56k|    else \
  |  |  667|  2.56k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.56k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.56k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.56k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2741|       |
 2742|       |  /* Try to avoid thrashing the ref_count if we don't need to (since
 2743|       |   * it's a locked operation).
 2744|       |   */
 2745|  2.56k|  class = g_type_class_peek_static (object_type);
 2746|       |
 2747|  2.56k|  if (class == NULL)
  ------------------
  |  Branch (2747:7): [True: 3, False: 2.55k]
  ------------------
 2748|      3|    class = unref_class = g_type_class_ref (object_type);
 2749|       |
 2750|  2.56k|  if (n_properties > 0)
  ------------------
  |  Branch (2750:7): [True: 0, False: 2.56k]
  ------------------
 2751|      0|    {
 2752|      0|      guint i, count = 0;
 2753|      0|      GObjectConstructParam *params;
 2754|       |
 2755|      0|      params = g_newa (GObjectConstructParam, n_properties);
  ------------------
  |  |  131|      0|#define g_newa(struct_type, n_structs)	((struct_type*) g_alloca (sizeof (struct_type) * (gsize) (n_structs)))
  |  |  ------------------
  |  |  |  |   99|      0|#define g_alloca(size)		 alloca (size)
  |  |  ------------------
  ------------------
 2756|      0|      for (i = 0; i < n_properties; i++)
  ------------------
  |  Branch (2756:19): [True: 0, False: 0]
  ------------------
 2757|      0|        {
 2758|      0|          GParamSpec *pspec = find_pspec (class, names[i]);
 2759|       |
 2760|      0|          if (!g_object_new_is_valid_property (object_type, pspec, names[i], params, count))
  ------------------
  |  Branch (2760:15): [True: 0, False: 0]
  ------------------
 2761|      0|            continue;
 2762|      0|          params[count].pspec = pspec;
 2763|      0|          params[count].value = (GValue *) &values[i];
 2764|      0|          count++;
 2765|      0|        }
 2766|      0|      object = g_object_new_internal (class, params, count);
 2767|      0|    }
 2768|  2.56k|  else
 2769|  2.56k|    object = g_object_new_internal (class, NULL, 0);
 2770|       |
 2771|  2.56k|  if (unref_class != NULL)
  ------------------
  |  Branch (2771:7): [True: 3, False: 2.55k]
  ------------------
 2772|      3|    g_type_class_unref (unref_class);
 2773|       |
 2774|  2.56k|  return object;
 2775|  2.56k|}
g_object_weak_ref:
 3671|    128|{
 3672|    128|  WeakRefStack *wstack;
 3673|    128|  guint i;
 3674|       |  
 3675|    128|  g_return_if_fail (G_IS_OBJECT (object));
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3676|    128|  g_return_if_fail (notify != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3677|    128|  g_return_if_fail (g_atomic_int_get (&object->ref_count) >= 1);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    384|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 128]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3678|       |
 3679|    128|  object_bit_lock (object, OPTIONAL_BIT_LOCK_WEAK_REFS);
  ------------------
  |  |  127|    128|#define OPTIONAL_BIT_LOCK_WEAK_REFS      1
  ------------------
 3680|    128|  wstack = g_datalist_id_remove_no_notify (&object->qdata, quark_weak_notifies);
 3681|    128|  if (wstack)
  ------------------
  |  Branch (3681:7): [True: 5, False: 123]
  ------------------
 3682|      5|    {
 3683|      5|      i = wstack->n_weak_refs++;
 3684|      5|      wstack = g_realloc (wstack, sizeof (*wstack) + sizeof (wstack->weak_refs[0]) * i);
 3685|      5|    }
 3686|    123|  else
 3687|    123|    {
 3688|    123|      wstack = g_renew (WeakRefStack, NULL, 1);
  ------------------
  |  |  346|    123|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|    123|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    123|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|    123|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|    123|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|    123|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|    123|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 123]
  |  |  |  |  ------------------
  |  |  |  |  279|    123|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|    123|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 123, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  281|    123|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    123|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    123|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 123]
  |  |  |  |  |  Branch (281:26): [True: 123, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|    123|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|    123|	  else							\
  |  |  |  |  284|    123|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|    123|	  __p;							\
  |  |  |  |  286|    123|	}))
  |  |  ------------------
  ------------------
 3689|    123|      wstack->object = object;
 3690|    123|      wstack->n_weak_refs = 1;
 3691|    123|      i = 0;
 3692|    123|    }
 3693|    128|  wstack->weak_refs[i].notify = notify;
 3694|    128|  wstack->weak_refs[i].data = data;
 3695|    128|  g_datalist_id_set_data_full (&object->qdata, quark_weak_notifies, wstack, weak_refs_notify);
 3696|    128|  object_bit_unlock (object, OPTIONAL_BIT_LOCK_WEAK_REFS);
  ------------------
  |  |  127|    128|#define OPTIONAL_BIT_LOCK_WEAK_REFS      1
  ------------------
 3697|    128|}
g_object_add_weak_pointer:
 3760|    128|{
 3761|    128|  g_return_if_fail (G_IS_OBJECT (object));
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3762|    128|  g_return_if_fail (weak_pointer_location != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3763|       |
 3764|    128|  g_object_weak_ref (object, 
 3765|    128|                     (GWeakNotify) g_nullify_pointer, 
 3766|    128|                     weak_pointer_location);
 3767|    128|}
g_object_ref:
 4233|  2.40k|{
 4234|  2.40k|  GObject *object = _object;
 4235|  2.40k|  GToggleNotify toggle_notify;
 4236|  2.40k|  gpointer toggle_data;
 4237|       |
 4238|  2.40k|  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
  ------------------
  |  |  663|  2.40k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.40k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.40k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.40k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.40k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.40k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.40k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.40k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.40k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.40k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.40k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.40k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.40k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.40k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.40k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.40k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.40k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.40k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.40k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.40k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.40k|      { } \
  |  |  666|  2.40k|    else \
  |  |  667|  2.40k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.40k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.40k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.40k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4239|       |
 4240|  2.40k|  object = object_ref (object, &toggle_notify, &toggle_data);
 4241|       |
 4242|  2.40k|  if (toggle_notify)
  ------------------
  |  Branch (4242:7): [True: 0, False: 2.40k]
  ------------------
 4243|      0|    toggle_notify (toggle_data, object, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4244|       |
 4245|  2.40k|  return object;
 4246|  2.40k|}
g_object_unref:
 4317|  4.96k|{
 4318|  4.96k|  GObject *object = _object;
 4319|  4.96k|  gint old_ref;
 4320|  4.96k|  GToggleNotify toggle_notify;
 4321|  4.96k|  gpointer toggle_data;
 4322|  4.96k|  GObjectNotifyQueue *nqueue;
 4323|  4.96k|  GType obj_gtype;
 4324|       |
 4325|  4.96k|  g_return_if_fail (G_IS_OBJECT (object));
  ------------------
  |  |  650|  4.96k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  4.96k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  4.96k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  4.96k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  4.96k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  4.96k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  4.96k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  4.96k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  4.96k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4.96k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  4.96k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  4.96k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  4.96k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  4.96k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  4.96k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  4.96k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  4.96k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  4.96k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  4.96k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4.96k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  4.96k|      { } \
  |  |  653|  4.96k|    else \
  |  |  654|  4.96k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  4.96k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  4.96k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4.96k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4326|       |
 4327|       |  /* obj_gtype will be needed for TRACE(GOBJECT_OBJECT_UNREF()) later. Note
 4328|       |   * that we issue the TRACE() after decrementing the ref-counter. If at that
 4329|       |   * point the reference counter does not reach zero, somebody else can race
 4330|       |   * and destroy the object.
 4331|       |   *
 4332|       |   * This means, TRACE() can be called with a dangling object pointer. This
 4333|       |   * could only be avoided, by emitting the TRACE before doing the actual
 4334|       |   * unref, but at that point we wouldn't know the correct "old_ref" value.
 4335|       |   * Maybe this should change.
 4336|       |   *
 4337|       |   * Anyway. At that later point we can also no longer safely get the GType for
 4338|       |   * the TRACE(). Do it now.
 4339|       |   */
 4340|  4.96k|  obj_gtype = G_TYPE_FROM_INSTANCE (object);
  ------------------
  |  |  646|  4.96k|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  ------------------
  |  |  |  |  657|  4.96k|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  ------------------
  ------------------
 4341|  4.96k|  (void) obj_gtype;
 4342|       |
 4343|  4.96k|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|  4.96k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  4.96k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  4.96k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  4.96k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  4.96k|    gint gaig_temp;                                                          \
  |  |  113|  4.96k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 4.96k]
  |  |  ------------------
  |  |  114|  4.96k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  4.96k|    (gint) gaig_temp;                                                        \
  |  |  116|  4.96k|  }))
  ------------------
 4344|       |
 4345|  4.96k|retry_beginning:
 4346|       |
 4347|  4.96k|  if (old_ref > 2)
  ------------------
  |  Branch (4347:7): [True: 499, False: 4.46k]
  ------------------
 4348|    499|    {
 4349|       |      /* We have many references. If we can decrement the ref counter, we are done. */
 4350|    499|      if (!g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|    499|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|    499|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|    499|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    499|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|    499|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    499|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|    499|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 499]
  |  |  ------------------
  |  |  197|    499|    *(preval) = (oldval);                                                      \
  |  |  198|    499|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|    499|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 499, False: 0]
  |  |  ------------------
  |  |  199|    499|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|    499|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|    499|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    499|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|    499|  }))
  ------------------
  |  Branch (4350:11): [True: 0, False: 499]
  ------------------
 4351|    499|                                                   old_ref, old_ref - 1, &old_ref))
 4352|      0|        goto retry_beginning;
 4353|       |
 4354|       |      /* Beware: object might be a dangling pointer. */
 4355|    499|      TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4356|    499|      return;
 4357|    499|    }
 4358|       |
 4359|  4.46k|  if (old_ref == 2)
  ------------------
  |  Branch (4359:7): [True: 1.90k, False: 2.56k]
  ------------------
 4360|  1.90k|    {
 4361|       |      /* We are about to return the second-to-last reference. In that case we
 4362|       |       * might need to notify a toggle reference.
 4363|       |       *
 4364|       |       * Note that a g_object_add_toggle_ref() MUST always be released
 4365|       |       * via g_object_remove_toggle_ref(). Thus, if we are here with
 4366|       |       * an old_ref of 2, then at most one of the references can be
 4367|       |       * a toggle reference.
 4368|       |       *
 4369|       |       * We need to take a lock, to avoid races. */
 4370|       |
 4371|  1.90k|      if (!toggle_refs_check_and_ref_or_deref (object, FALSE, &old_ref, &toggle_notify, &toggle_data))
  ------------------
  |  |  925|  1.90k|#define	FALSE	(0)
  ------------------
  |  Branch (4371:11): [True: 0, False: 1.90k]
  ------------------
 4372|      0|        goto retry_beginning;
 4373|       |
 4374|       |      /* Beware: object might be a dangling pointer. */
 4375|  1.90k|      TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4376|  1.90k|      if (toggle_notify)
  ------------------
  |  Branch (4376:11): [True: 0, False: 1.90k]
  ------------------
 4377|      0|        toggle_notify (toggle_data, object, TRUE);
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4378|  1.90k|      return;
 4379|  1.90k|    }
 4380|       |
 4381|  2.56k|  if (G_UNLIKELY (old_ref != 1))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.56k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 4382|      0|    {
 4383|      0|      gboolean object_already_finalized = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4384|       |
 4385|      0|      g_return_if_fail (!object_already_finalized);
  ------------------
  |  |  650|      0|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      0|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      0|      { } \
  |  |  653|      0|    else \
  |  |  654|      0|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4386|      0|      return;
 4387|      0|    }
 4388|       |
 4389|       |  /* We only have one reference left. Proceed to (maybe) clear weak locations. */
 4390|  2.56k|  if (!_object_unref_clear_weak_locations (object, &old_ref, FALSE))
  ------------------
  |  |  925|  2.56k|#define	FALSE	(0)
  ------------------
  |  Branch (4390:7): [True: 0, False: 2.56k]
  ------------------
 4391|      0|    goto retry_beginning;
 4392|       |
 4393|       |  /* At this point, we checked with an atomic read that we only hold only one
 4394|       |   * reference. Weak locations are cleared (and toggle references are not to
 4395|       |   * be considered in this case). Proceed with dispose().
 4396|       |   *
 4397|       |   * First, freeze the notification queue, so we don't accidentally emit
 4398|       |   * notifications during dispose() and finalize().
 4399|       |   *
 4400|       |   * The notification queue stays frozen unless the instance acquires a
 4401|       |   * reference during dispose(), in which case we thaw it and dispatch all the
 4402|       |   * notifications. If the instance gets through to finalize(), the
 4403|       |   * notification queue gets automatically drained when g_object_finalize() is
 4404|       |   * reached and the qdata is cleared.
 4405|       |   *
 4406|       |   * Important: Note that g_object_notify_queue_freeze() takes a object_bit_lock(),
 4407|       |   * which happens to be the same lock that is also taken by toggle_refs_check_and_ref(),
 4408|       |   * that is very important. See also the code comment in toggle_refs_check_and_ref().
 4409|       |   */
 4410|  2.56k|  nqueue = g_object_notify_queue_freeze (object);
 4411|       |
 4412|  2.56k|  TRACE (GOBJECT_OBJECT_DISPOSE (object, G_TYPE_FROM_INSTANCE (object), 1));
 4413|  2.56k|  G_OBJECT_GET_CLASS (object)->dispose (object);
  ------------------
  |  |   89|  2.56k|#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  571|  2.56k|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|  2.56k|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4414|  2.56k|  TRACE (GOBJECT_OBJECT_DISPOSE_END (object, G_TYPE_FROM_INSTANCE (object), 1));
 4415|       |
 4416|       |  /* Must re-fetch old-ref. _object_unref_clear_weak_locations() relies on
 4417|       |   * that.  */
 4418|  2.56k|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|  2.56k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  2.56k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.56k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  2.56k|    gint gaig_temp;                                                          \
  |  |  113|  2.56k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 2.56k]
  |  |  ------------------
  |  |  114|  2.56k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  2.56k|    (gint) gaig_temp;                                                        \
  |  |  116|  2.56k|  }))
  ------------------
 4419|       |
 4420|  2.56k|retry_decrement:
 4421|       |  /* Here, old_ref is 1 if we just come from dispose(). If the object was resurrected,
 4422|       |   * we can hit `goto retry_decrement` and be here with a larger old_ref. */
 4423|       |
 4424|  2.56k|  if (old_ref > 1 && nqueue)
  ------------------
  |  Branch (4424:7): [True: 0, False: 2.56k]
  |  Branch (4424:22): [True: 0, False: 0]
  ------------------
 4425|      0|    {
 4426|       |      /* If the object was resurrected, we need to unfreeze the notify
 4427|       |       * queue. */
 4428|      0|      g_object_notify_queue_thaw (object, nqueue, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4429|      0|      nqueue = NULL;
 4430|       |
 4431|       |      /* Note at this point, @old_ref might be wrong.
 4432|       |       *
 4433|       |       * Also note that _object_unref_clear_weak_locations() requires that we
 4434|       |       * atomically checked that @old_ref is 1. However, as @old_ref is larger
 4435|       |       * than 1, that will not be called. Instead, all other code paths below,
 4436|       |       * handle the possibility of a bogus @old_ref.
 4437|       |       *
 4438|       |       * No need to re-fetch. */
 4439|      0|    }
 4440|       |
 4441|  2.56k|  if (old_ref > 2)
  ------------------
  |  Branch (4441:7): [True: 0, False: 2.56k]
  ------------------
 4442|      0|    {
 4443|      0|      if (!g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|      0|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|      0|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|      0|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 0]
  |  |  ------------------
  |  |  197|      0|    *(preval) = (oldval);                                                      \
  |  |  198|      0|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 0, False: 0]
  |  |  ------------------
  |  |  199|      0|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|      0|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|      0|  }))
  ------------------
  |  Branch (4443:11): [True: 0, False: 0]
  ------------------
 4444|      0|                                                   old_ref, old_ref - 1,
 4445|      0|                                                   &old_ref))
 4446|      0|        goto retry_decrement;
 4447|       |
 4448|       |      /* Beware: object might be a dangling pointer. */
 4449|      0|      TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4450|      0|      return;
 4451|      0|    }
 4452|       |
 4453|  2.56k|  if (old_ref == 2)
  ------------------
  |  Branch (4453:7): [True: 0, False: 2.56k]
  ------------------
 4454|      0|    {
 4455|       |      /* If the object was resurrected and the current ref-count is 2, then we
 4456|       |       * are about to drop the ref-count to 1. We may need to emit a toggle
 4457|       |       * notification. Take a lock and check for that.
 4458|       |       *
 4459|       |       * In that case, we need a lock to get the toggle notification. */
 4460|      0|      if (!toggle_refs_check_and_ref_or_deref (object, FALSE, &old_ref, &toggle_notify, &toggle_data))
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  |  Branch (4460:11): [True: 0, False: 0]
  ------------------
 4461|      0|        goto retry_decrement;
 4462|       |
 4463|       |      /* Beware: object might be a dangling pointer. */
 4464|      0|      TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4465|      0|      if (toggle_notify)
  ------------------
  |  Branch (4465:11): [True: 0, False: 0]
  ------------------
 4466|      0|        toggle_notify (toggle_data, object, TRUE);
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4467|      0|      return;
 4468|      0|    }
 4469|       |
 4470|       |  /* old_ref is (atomically!) checked to be 1, we are about to drop the
 4471|       |   * reference count to zero in _object_unref_clear_weak_locations(). */
 4472|  2.56k|  if (!_object_unref_clear_weak_locations (object, &old_ref, TRUE))
  ------------------
  |  |  929|  2.56k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  2.56k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (4472:7): [True: 0, False: 2.56k]
  ------------------
 4473|      0|    goto retry_decrement;
 4474|       |
 4475|  2.56k|  TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4476|       |
 4477|       |  /* The object is almost gone. Finalize. */
 4478|       |
 4479|  2.56k|  g_datalist_id_set_data (&object->qdata, quark_closure_array, NULL);
  ------------------
  |  |  105|  2.56k|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 4480|  2.56k|  g_signal_handlers_destroy (object);
 4481|  2.56k|  g_datalist_id_set_data (&object->qdata, quark_weak_notifies, NULL);
  ------------------
  |  |  105|  2.56k|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 4482|       |
 4483|  2.56k|  TRACE (GOBJECT_OBJECT_FINALIZE (object, G_TYPE_FROM_INSTANCE (object)));
 4484|  2.56k|  G_OBJECT_GET_CLASS (object)->finalize (object);
  ------------------
  |  |   89|  2.56k|#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  571|  2.56k|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|  2.56k|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4485|  2.56k|  TRACE (GOBJECT_OBJECT_FINALIZE_END (object, G_TYPE_FROM_INSTANCE (object)));
 4486|       |
 4487|  2.56k|  GOBJECT_IF_DEBUG (OBJECTS,
 4488|  2.56k|                    {
 4489|  2.56k|                      gboolean was_present;
 4490|       |
 4491|       |                      /* catch objects not chaining finalize handlers */
 4492|  2.56k|                      G_LOCK (debug_objects);
 4493|  2.56k|                      was_present = g_hash_table_remove (debug_objects_ht, object);
 4494|  2.56k|                      G_UNLOCK (debug_objects);
 4495|       |
 4496|  2.56k|                      if (was_present)
 4497|  2.56k|                        g_critical ("Object %p of type %s not finalized correctly.",
 4498|  2.56k|                                    object, G_OBJECT_TYPE_NAME (object));
 4499|  2.56k|                    });
 4500|  2.56k|  g_type_free_instance ((GTypeInstance *) object);
 4501|  2.56k|}
g_clear_object:
 4523|  1.79k|{
 4524|       |  g_clear_pointer (object_ptr, g_object_unref);
  ------------------
  |  |  136|  1.79k|  G_STMT_START                                           \
  |  |  ------------------
  |  |  |  |  985|  1.79k|#define G_STMT_START  do
  |  |  ------------------
  |  |  137|  1.79k|  {                                                      \
  |  |  138|  1.79k|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|  1.79k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  139|  1.79k|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  ------------------
  |  |  |  |   39|  1.79k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  140|  1.79k|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  ------------------
  |  |  |  |   39|  1.79k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  141|  1.79k|    *_pp = NULL;                                         \
  |  |  142|  1.79k|    if (_ptr)                                            \
  |  |  ------------------
  |  |  |  Branch (142:9): [True: 0, False: 1.79k]
  |  |  ------------------
  |  |  143|  1.79k|      (destroy) (_ptr);                                  \
  |  |  144|  1.79k|  }                                                      \
  |  |  145|  1.79k|  G_STMT_END                                             \
  |  |  ------------------
  |  |  |  |  993|  1.79k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.79k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  146|  1.79k|  GLIB_AVAILABLE_MACRO_IN_2_34
  ------------------
 4525|  1.79k|}
g_value_get_object:
 5113|    896|{
 5114|    896|  g_return_val_if_fail (G_VALUE_HOLDS_OBJECT (value), NULL);
  ------------------
  |  |  663|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  4.48k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 896]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 896]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    896|      { } \
  |  |  666|    896|    else \
  |  |  667|    896|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5115|       |  
 5116|    896|  return value->data[0].v_pointer;
 5117|    896|}
gobject.c:g_object_base_class_init:
  935|      7|{
  936|      7|  GObjectClass *pclass = g_type_class_peek_parent (class);
  937|       |
  938|       |  /* Don't inherit HAS_DERIVED_CLASS flag from parent class */
  939|      7|  class->flags &= ~CLASS_HAS_DERIVED_CLASS_FLAG;
  ------------------
  |  |   89|      7|#define CLASS_HAS_DERIVED_CLASS_FLAG 0x2
  ------------------
  940|       |
  941|      7|  if (pclass)
  ------------------
  |  Branch (941:7): [True: 6, False: 1]
  ------------------
  942|      6|    pclass->flags |= CLASS_HAS_DERIVED_CLASS_FLAG;
  ------------------
  |  |   89|      6|#define CLASS_HAS_DERIVED_CLASS_FLAG 0x2
  ------------------
  943|       |
  944|       |  /* reset instance specific fields and methods that don't get inherited */
  945|      7|  class->construct_properties = pclass ? g_slist_copy (pclass->construct_properties) : NULL;
  ------------------
  |  Branch (945:33): [True: 6, False: 1]
  ------------------
  946|      7|  class->n_construct_properties = g_slist_length (class->construct_properties);
  947|      7|  class->get_property = NULL;
  948|      7|  class->set_property = NULL;
  949|       |  class->pspecs = NULL;
  950|      7|  class->n_pspecs = 0;
  951|      7|}
gobject.c:g_object_do_class_init:
  977|      1|{
  978|      1|  quark_closure_array = g_quark_from_static_string ("GObject-closure-array");
  979|      1|  quark_weak_notifies = g_quark_from_static_string ("GObject-weak-notifies");
  980|      1|  quark_weak_locations = g_quark_from_static_string ("GObject-weak-locations");
  981|      1|  quark_toggle_refs = g_quark_from_static_string ("GObject-toggle-references");
  982|      1|  quark_notify_queue = g_quark_from_static_string ("GObject-notify-queue");
  983|       |
  984|      1|  g_object_init_pspec_pool ();
  985|       |
  986|      1|  class->constructor = g_object_constructor;
  987|      1|  class->constructed = g_object_constructed;
  988|      1|  class->set_property = g_object_do_set_property;
  989|      1|  class->get_property = g_object_do_get_property;
  990|      1|  class->dispose = g_object_real_dispose;
  991|      1|  class->finalize = g_object_finalize;
  992|      1|  class->dispatch_properties_changed = g_object_dispatch_properties_changed;
  993|      1|  class->notify = NULL;
  994|       |
  995|       |  /**
  996|       |   * GObject::notify:
  997|       |   * @gobject: the object which received the signal.
  998|       |   * @pspec: the #GParamSpec of the property which changed.
  999|       |   *
 1000|       |   * The notify signal is emitted on an object when one of its properties has
 1001|       |   * its value set through g_object_set_property(), g_object_set(), et al.
 1002|       |   *
 1003|       |   * Note that getting this signal doesn’t itself guarantee that the value of
 1004|       |   * the property has actually changed. When it is emitted is determined by the
 1005|       |   * derived GObject class. If the implementor did not create the property with
 1006|       |   * %G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results
 1007|       |   * in ::notify being emitted, even if the new value is the same as the old.
 1008|       |   * If they did pass %G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only
 1009|       |   * when they explicitly call g_object_notify() or g_object_notify_by_pspec(),
 1010|       |   * and common practice is to do that only when the value has actually changed.
 1011|       |   *
 1012|       |   * This signal is typically used to obtain change notification for a
 1013|       |   * single property, by specifying the property name as a detail in the
 1014|       |   * g_signal_connect() call, like this:
 1015|       |   *
 1016|       |   * |[<!-- language="C" --> 
 1017|       |   * g_signal_connect (text_view->buffer, "notify::paste-target-list",
 1018|       |   *                   G_CALLBACK (gtk_text_view_target_list_notify),
 1019|       |   *                   text_view)
 1020|       |   * ]|
 1021|       |   *
 1022|       |   * It is important to note that you must use
 1023|       |   * [canonical parameter names][canonical-parameter-names] as
 1024|       |   * detail strings for the notify signal.
 1025|       |   */
 1026|      1|  gobject_signals[NOTIFY] =
 1027|      1|    g_signal_new (g_intern_static_string ("notify"),
 1028|      1|		  G_TYPE_FROM_CLASS (class),
  ------------------
  |  |  657|      1|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  ------------------
 1029|      1|		  G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE | G_SIGNAL_DETAILED | G_SIGNAL_NO_HOOKS | G_SIGNAL_ACTION,
 1030|      1|		  G_STRUCT_OFFSET (GObjectClass, notify),
  ------------------
  |  |  964|      1|      ((glong) offsetof (struct_type, member))
  ------------------
 1031|      1|		  NULL, NULL,
 1032|      1|		  NULL,
 1033|      1|		  G_TYPE_NONE,
  ------------------
  |  |   72|      1|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      1|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1034|      1|		  1, G_TYPE_PARAM);
  ------------------
  |  |  183|      1|#define G_TYPE_PARAM			G_TYPE_MAKE_FUNDAMENTAL (19)
  |  |  ------------------
  |  |  |  |  227|      1|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1035|       |
 1036|       |  /* Install a check function that we'll use to verify that classes that
 1037|       |   * implement an interface implement all properties for that interface
 1038|       |   */
 1039|      1|  g_type_add_interface_check (NULL, object_interface_check_properties);
 1040|       |
 1041|       |#if HAVE_PRIVATE
 1042|       |  g_type_class_adjust_private_offset (class, &GObject_private_offset);
 1043|       |#endif
 1044|      1|}
gobject.c:g_object_constructed:
 3009|  1.46k|{
 3010|       |  /* empty default impl to allow unconditional upchaining */
 3011|  1.46k|}
gobject.c:g_object_real_dispose:
 1751|  2.56k|{
 1752|  2.56k|  g_signal_handlers_destroy (object);
 1753|       |
 1754|       |  /* GWeakNotify and GClosure can call into user code */
 1755|  2.56k|  g_datalist_id_set_data (&object->qdata, quark_weak_notifies, NULL);
  ------------------
  |  |  105|  2.56k|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 1756|       |  g_datalist_id_set_data (&object->qdata, quark_closure_array, NULL);
  ------------------
  |  |  105|  2.56k|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 1757|  2.56k|}
gobject.c:g_object_finalize:
 1781|  2.56k|{
 1782|       |#ifdef G_ENABLE_DEBUG
 1783|       |  if (object_in_construction (object))
 1784|       |    {
 1785|       |      g_critical ("object %s %p finalized while still in-construction",
 1786|       |                  G_OBJECT_TYPE_NAME (object), object);
 1787|       |    }
 1788|       |
 1789|       | if (floating_check (object))
 1790|       |   {
 1791|       |      g_critical ("A floating object %s %p was finalized. This means that someone\n"
 1792|       |                  "called g_object_unref() on an object that had only a floating\n"
 1793|       |                  "reference; the initial floating reference is not owned by anyone\n"
 1794|       |                  "and must be removed with g_object_ref_sink().",
 1795|       |                  G_OBJECT_TYPE_NAME (object), object);
 1796|       |   }
 1797|       |#endif
 1798|       |
 1799|  2.56k|  g_datalist_clear (&object->qdata);
 1800|       |  
 1801|  2.56k|  GOBJECT_IF_DEBUG (OBJECTS,
 1802|  2.56k|    {
 1803|  2.56k|      G_LOCK (debug_objects);
 1804|  2.56k|      g_assert (g_hash_table_contains (debug_objects_ht, object));
 1805|  2.56k|      g_hash_table_remove (debug_objects_ht, object);
 1806|  2.56k|      debug_objects_count--;
 1807|  2.56k|      G_UNLOCK (debug_objects);
 1808|  2.56k|    });
 1809|  2.56k|}
gobject.c:object_interface_check_properties:
 2213|      2|{
 2214|      2|  GTypeInterface *iface_class = g_iface;
 2215|      2|  GObjectClass *class;
 2216|      2|  GType iface_type = iface_class->g_type;
 2217|      2|  GParamSpec **pspecs;
 2218|      2|  guint n;
 2219|       |
 2220|      2|  class = g_type_class_ref (iface_class->g_instance_type);
 2221|       |
 2222|      2|  if (class == NULL)
  ------------------
  |  Branch (2222:7): [True: 0, False: 2]
  ------------------
 2223|      0|    return;
 2224|       |
 2225|      2|  if (!G_IS_OBJECT_CLASS (class))
  ------------------
  |  |   80|      2|#define G_IS_OBJECT_CLASS(class)    (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
  |  |  ------------------
  |  |  |  |  610|      2|#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type)                (_G_TYPE_CCT ((g_class), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2681|      2|#  define _G_TYPE_CCT(cp, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2682|      2|  GTypeClass *__class = (GTypeClass*) cp; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2683|      2|  if (!__class) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2683:7): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2684|      2|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2685|      2|  else if (__class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2685:12): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2686|      2|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2687|      2|  else \
  |  |  |  |  |  | 2688|      2|    __r = g_type_check_class_is_a (__class, __t); \
  |  |  |  |  |  | 2689|      2|  __r; \
  |  |  |  |  |  | 2690|      2|}))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2225:7): [True: 0, False: 2]
  ------------------
 2226|      0|    goto out;
 2227|       |
 2228|      2|  pspecs = g_param_spec_pool_list (pspec_pool, iface_type, &n);
 2229|       |
 2230|      2|  while (n--)
  ------------------
  |  Branch (2230:10): [True: 0, False: 2]
  ------------------
 2231|      0|    {
 2232|      0|      GParamSpec *class_pspec = g_param_spec_pool_lookup (pspec_pool,
 2233|      0|							  pspecs[n]->name,
 2234|      0|							  G_OBJECT_CLASS_TYPE (class),
  ------------------
  |  |  117|      0|#define G_OBJECT_CLASS_TYPE(class)  (G_TYPE_FROM_CLASS (class))
  |  |  ------------------
  |  |  |  |  657|      0|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  ------------------
  ------------------
 2235|      0|							  TRUE);
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2236|       |
 2237|      0|      if (!class_pspec)
  ------------------
  |  Branch (2237:11): [True: 0, False: 0]
  ------------------
 2238|      0|	{
 2239|      0|	  g_critical ("Object class %s doesn't implement property "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2240|      0|		      "'%s' from interface '%s'",
 2241|      0|		      g_type_name (G_OBJECT_CLASS_TYPE (class)),
 2242|      0|		      pspecs[n]->name,
 2243|      0|		      g_type_name (iface_type));
 2244|       |
 2245|      0|	  continue;
 2246|      0|	}
 2247|       |
 2248|       |      /* We do a number of checks on the properties of an interface to
 2249|       |       * make sure that all classes implementing the interface are
 2250|       |       * overriding the properties correctly.
 2251|       |       *
 2252|       |       * We do the checks in order of importance so that we can give
 2253|       |       * more useful error messages first.
 2254|       |       *
 2255|       |       * First, we check that the implementation doesn't remove the
 2256|       |       * basic functionality (readability, writability) advertised by
 2257|       |       * the interface.  Next, we check that it doesn't introduce
 2258|       |       * additional restrictions (such as construct-only).  Finally, we
 2259|       |       * make sure the types are compatible.
 2260|       |       */
 2261|       |
 2262|      0|#define SUBSET(a,b,mask) (((a) & ~(b) & (mask)) == 0)
 2263|       |      /* If the property on the interface is readable then the
 2264|       |       * implementation must be readable.  If the interface is writable
 2265|       |       * then the implementation must be writable.
 2266|       |       */
 2267|      0|      if (!SUBSET (pspecs[n]->flags, class_pspec->flags, G_PARAM_READABLE | G_PARAM_WRITABLE))
  ------------------
  |  | 2262|      0|#define SUBSET(a,b,mask) (((a) & ~(b) & (mask)) == 0)
  ------------------
  |  Branch (2267:11): [True: 0, False: 0]
  ------------------
 2268|      0|        {
 2269|      0|          g_critical ("Flags for property '%s' on class '%s' remove functionality compared with the "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2270|      0|                      "property on interface '%s'\n", pspecs[n]->name,
 2271|      0|                      g_type_name (G_OBJECT_CLASS_TYPE (class)), g_type_name (iface_type));
 2272|      0|          continue;
 2273|      0|        }
 2274|       |
 2275|       |      /* If the property on the interface is writable then we need to
 2276|       |       * make sure the implementation doesn't introduce new restrictions
 2277|       |       * on that writability (ie: construct-only).
 2278|       |       *
 2279|       |       * If the interface was not writable to begin with then we don't
 2280|       |       * really have any problems here because "writable at construct
 2281|       |       * time only" is still more permissive than "read only".
 2282|       |       */
 2283|      0|      if (pspecs[n]->flags & G_PARAM_WRITABLE)
  ------------------
  |  Branch (2283:11): [True: 0, False: 0]
  ------------------
 2284|      0|        {
 2285|      0|          if (!SUBSET (class_pspec->flags, pspecs[n]->flags, G_PARAM_CONSTRUCT_ONLY))
  ------------------
  |  | 2262|      0|#define SUBSET(a,b,mask) (((a) & ~(b) & (mask)) == 0)
  ------------------
  |  Branch (2285:15): [True: 0, False: 0]
  ------------------
 2286|      0|            {
 2287|      0|              g_critical ("Flags for property '%s' on class '%s' introduce additional restrictions on "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2288|      0|                          "writability compared with the property on interface '%s'\n", pspecs[n]->name,
 2289|      0|                          g_type_name (G_OBJECT_CLASS_TYPE (class)), g_type_name (iface_type));
 2290|      0|              continue;
 2291|      0|            }
 2292|      0|        }
 2293|      0|#undef SUBSET
 2294|       |
 2295|       |      /* If the property on the interface is readable then we are
 2296|       |       * effectively advertising that reading the property will return a
 2297|       |       * value of a specific type.  All implementations of the interface
 2298|       |       * need to return items of this type -- but may be more
 2299|       |       * restrictive.  For example, it is legal to have:
 2300|       |       *
 2301|       |       *   GtkWidget *get_item();
 2302|       |       *
 2303|       |       * that is implemented by a function that always returns a
 2304|       |       * GtkEntry.  In short: readability implies that the
 2305|       |       * implementation  value type must be equal or more restrictive.
 2306|       |       *
 2307|       |       * Similarly, if the property on the interface is writable then
 2308|       |       * must be able to accept the property being set to any value of
 2309|       |       * that type, including subclasses.  In this case, we may also be
 2310|       |       * less restrictive.  For example, it is legal to have:
 2311|       |       *
 2312|       |       *   set_item (GtkEntry *);
 2313|       |       *
 2314|       |       * that is implemented by a function that will actually work with
 2315|       |       * any GtkWidget.  In short: writability implies that the
 2316|       |       * implementation value type must be equal or less restrictive.
 2317|       |       *
 2318|       |       * In the case that the property is both readable and writable
 2319|       |       * then the only way that both of the above can be satisfied is
 2320|       |       * with a type that is exactly equal.
 2321|       |       */
 2322|      0|      switch (pspecs[n]->flags & (G_PARAM_READABLE | G_PARAM_WRITABLE))
 2323|      0|        {
 2324|      0|        case G_PARAM_READABLE | G_PARAM_WRITABLE:
  ------------------
  |  Branch (2324:9): [True: 0, False: 0]
  ------------------
 2325|       |          /* class pspec value type must have exact equality with interface */
 2326|      0|          if (pspecs[n]->value_type != class_pspec->value_type)
  ------------------
  |  Branch (2326:15): [True: 0, False: 0]
  ------------------
 2327|      0|            g_critical ("Read/writable property '%s' on class '%s' has type '%s' which is not exactly equal to the "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2328|      0|                        "type '%s' of the property on the interface '%s'\n", pspecs[n]->name,
 2329|      0|                        g_type_name (G_OBJECT_CLASS_TYPE (class)), g_type_name (G_PARAM_SPEC_VALUE_TYPE (class_pspec)),
 2330|      0|                        g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspecs[n])), g_type_name (iface_type));
 2331|      0|          break;
 2332|       |
 2333|      0|        case G_PARAM_READABLE:
  ------------------
  |  Branch (2333:9): [True: 0, False: 0]
  ------------------
 2334|       |          /* class pspec value type equal or more restrictive than interface */
 2335|      0|          if (!g_type_is_a (class_pspec->value_type, pspecs[n]->value_type))
  ------------------
  |  |  760|      0|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  ------------------
  |  |  |  Branch (760:27): [True: 0, False: 0]
  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 2336|      0|            g_critical ("Read-only property '%s' on class '%s' has type '%s' which is not equal to or more "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2337|      0|                        "restrictive than the type '%s' of the property on the interface '%s'\n", pspecs[n]->name,
 2338|      0|                        g_type_name (G_OBJECT_CLASS_TYPE (class)), g_type_name (G_PARAM_SPEC_VALUE_TYPE (class_pspec)),
 2339|      0|                        g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspecs[n])), g_type_name (iface_type));
 2340|      0|          break;
 2341|       |
 2342|      0|        case G_PARAM_WRITABLE:
  ------------------
  |  Branch (2342:9): [True: 0, False: 0]
  ------------------
 2343|       |          /* class pspec value type equal or less restrictive than interface */
 2344|      0|          if (!g_type_is_a (pspecs[n]->value_type, class_pspec->value_type))
  ------------------
  |  |  760|      0|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  ------------------
  |  |  |  Branch (760:27): [True: 0, False: 0]
  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 2345|      0|            g_critical ("Write-only property '%s' on class '%s' has type '%s' which is not equal to or less "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2346|      0|                        "restrictive than the type '%s' of the property on the interface '%s' \n", pspecs[n]->name,
 2347|      0|                        g_type_name (G_OBJECT_CLASS_TYPE (class)), g_type_name (G_PARAM_SPEC_VALUE_TYPE (class_pspec)),
 2348|      0|                        g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspecs[n])), g_type_name (iface_type));
 2349|      0|          break;
 2350|       |
 2351|      0|        default:
  ------------------
  |  Branch (2351:9): [True: 0, False: 0]
  ------------------
 2352|      0|          g_assert_not_reached ();
  ------------------
  |  |  274|      0|#define g_assert_not_reached()          G_STMT_START { g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); } G_STMT_END
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |               #define g_assert_not_reached()          G_STMT_START { g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); } G_STMT_END
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |               #define g_assert_not_reached()          G_STMT_START { g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2353|      0|        }
 2354|      0|    }
 2355|       |
 2356|      2|  g_free (pspecs);
 2357|       |
 2358|      2| out:
 2359|      2|  g_type_class_unref (class);
 2360|      2|}
gobject.c:validate_and_install_class_property:
 1094|      1|{
 1095|      1|  if (!validate_pspec_to_install (pspec))
  ------------------
  |  Branch (1095:7): [True: 0, False: 1]
  ------------------
 1096|      0|    {
 1097|      0|      g_param_spec_ref_sink (pspec);
 1098|      0|      g_param_spec_unref (pspec);
 1099|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1100|      0|    }
 1101|       |
 1102|      1|  if (pspec->flags & G_PARAM_WRITABLE)
  ------------------
  |  Branch (1102:7): [True: 1, False: 0]
  ------------------
 1103|      1|    g_return_val_if_fail (class->set_property != NULL, FALSE);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1104|      1|  if (pspec->flags & G_PARAM_READABLE)
  ------------------
  |  Branch (1104:7): [True: 1, False: 0]
  ------------------
 1105|      1|    g_return_val_if_fail (class->get_property != NULL, FALSE);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1106|       |
 1107|      1|  class->flags |= CLASS_HAS_PROPS_FLAG;
  ------------------
  |  |   76|      1|#define CLASS_HAS_PROPS_FLAG 0x1
  ------------------
 1108|      1|  if (install_property_internal (oclass_type, property_id, pspec))
  ------------------
  |  Branch (1108:7): [True: 1, False: 0]
  ------------------
 1109|      1|    {
 1110|      1|      if (pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY))
  ------------------
  |  Branch (1110:11): [True: 1, False: 0]
  ------------------
 1111|      1|        {
 1112|      1|          class->construct_properties = g_slist_append (class->construct_properties, pspec);
 1113|      1|          class->n_construct_properties += 1;
 1114|      1|        }
 1115|       |
 1116|       |      /* for property overrides of construct properties, we have to get rid
 1117|       |       * of the overridden inherited construct property
 1118|       |       */
 1119|      1|      pspec = g_param_spec_pool_lookup (pspec_pool, pspec->name, parent_type, TRUE);
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1120|      1|      if (pspec && pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY))
  ------------------
  |  Branch (1120:11): [True: 0, False: 1]
  |  Branch (1120:20): [True: 0, False: 0]
  ------------------
 1121|      0|        {
 1122|      0|          class->construct_properties = g_slist_remove (class->construct_properties, pspec);
 1123|      0|          class->n_construct_properties -= 1;
 1124|      0|        }
 1125|       |
 1126|      1|      return TRUE;
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1127|      1|    }
 1128|      0|  else
 1129|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1130|      1|}
gobject.c:validate_pspec_to_install:
 1072|      1|{
 1073|      1|  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1074|      1|  g_return_val_if_fail (PARAM_SPEC_PARAM_ID (pspec) == 0, FALSE);	/* paranoid */
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1075|       |
 1076|      1|  g_return_val_if_fail (pspec->flags & (G_PARAM_READABLE | G_PARAM_WRITABLE), FALSE);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1077|       |
 1078|      1|  if (pspec->flags & G_PARAM_CONSTRUCT)
  ------------------
  |  Branch (1078:7): [True: 1, False: 0]
  ------------------
 1079|      1|    g_return_val_if_fail ((pspec->flags & G_PARAM_CONSTRUCT_ONLY) == 0, FALSE);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1080|       |
 1081|      1|  if (pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY))
  ------------------
  |  Branch (1081:7): [True: 1, False: 0]
  ------------------
 1082|      1|    g_return_val_if_fail (pspec->flags & G_PARAM_WRITABLE, FALSE);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1083|       |
 1084|      1|  return TRUE;
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1085|      1|}
gobject.c:install_property_internal:
 1051|      1|{
 1052|      1|  g_param_spec_ref_sink (pspec);
 1053|       |
 1054|      1|  g_object_init_pspec_pool ();
 1055|       |
 1056|      1|  if (g_param_spec_pool_lookup (pspec_pool, pspec->name, g_type, FALSE))
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
  |  Branch (1056:7): [True: 0, False: 1]
  ------------------
 1057|      0|    {
 1058|      0|      g_critical ("When installing property: type '%s' already has a property named '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1059|      0|                  g_type_name (g_type),
 1060|      0|                  pspec->name);
 1061|      0|      g_param_spec_unref (pspec);
 1062|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1063|      0|    }
 1064|       |
 1065|      1|  PARAM_SPEC_SET_PARAM_ID (pspec, property_id);
  ------------------
  |  |   69|      1|#define	PARAM_SPEC_SET_PARAM_ID(pspec, id)	((pspec)->param_id = (id))
  ------------------
 1066|      1|  g_param_spec_pool_insert (pspec_pool, g_steal_pointer (&pspec), g_type);
  ------------------
  |  |  247|      1|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 1067|      1|  return TRUE;
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1068|      1|}
gobject.c:param_spec_follow_override:
 1423|    896|{
 1424|    896|  if (((GTypeInstance *) (*pspec))->g_class->g_type == G_TYPE_PARAM_OVERRIDE)
  ------------------
  |  |  509|    896|#define	G_TYPE_PARAM_OVERRIDE		   (g_param_spec_types[20])
  ------------------
  |  Branch (1424:7): [True: 0, False: 896]
  ------------------
 1425|      0|    *pspec = ((GParamSpecOverride *) (*pspec))->overridden;
 1426|    896|}
gobject.c:g_object_init_pspec_pool:
  924|      2|{
  925|      2|  if (G_UNLIKELY (g_atomic_pointer_get (&pspec_pool) == NULL))
  ------------------
  |  | 1245|      2|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 1, False: 1]
  |  |  ------------------
  ------------------
  926|      1|    {
  927|      1|      GParamSpecPool *pool = g_param_spec_pool_new (TRUE);
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  928|      1|      if (!g_atomic_pointer_compare_and_exchange (&pspec_pool, NULL, pool))
  ------------------
  |  |  253|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  254|      1|    G_STATIC_ASSERT (sizeof (oldval) == sizeof (gpointer));                  \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  255|      1|    gpointer gapcae_oldval = (gpointer)(oldval);                             \
  |  |  256|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  257|      1|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (257:13): [Folded, False: 1]
  |  |  ------------------
  |  |  258|      1|    __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (258:5): [True: 1, False: 0]
  |  |  ------------------
  |  |  259|      1|  }))
  ------------------
  |  Branch (928:11): [True: 0, False: 1]
  ------------------
  929|      0|        g_param_spec_pool_free (pool);
  930|      1|    }
  931|      2|}
gobject.c:object_get_optional_flags:
 1637|  6.01k|{
 1638|       |  return g_atomic_int_get (object_get_optional_flags_p (object));
  ------------------
  |  |  110|  6.01k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  6.01k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  6.01k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  6.01k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  6.01k|    gint gaig_temp;                                                          \
  |  |  113|  6.01k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 6.01k]
  |  |  ------------------
  |  |  114|  6.01k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  6.01k|    (gint) gaig_temp;                                                        \
  |  |  116|  6.01k|  }))
  ------------------
 1639|  6.01k|}
gobject.c:object_get_optional_flags_p:
  246|  24.1k|{
  247|  24.1k|#if HAVE_OPTIONAL_FLAGS_IN_GOBJECT
  248|  24.1k|  return &(((GObjectReal *) object)->optional_flags);
  249|       |#else
  250|       |  return &g_object_get_instance_private (object)->optional_flags;
  251|       |#endif
  252|  24.1k|}
gobject.c:object_set_optional_flags:
 1644|  2.56k|{
 1645|       |  g_atomic_int_or (object_get_optional_flags_p (object), flags);
  ------------------
  |  |  221|  2.56k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  222|  2.56k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.56k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  223|  2.56k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (223:13): [Folded, False: 2.56k]
  |  |  ------------------
  |  |  224|  2.56k|    (guint) __atomic_fetch_or ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  225|  2.56k|  }))
  ------------------
 1646|  2.56k|}
gobject.c:g_object_init:
 1699|  2.56k|{
 1700|  2.56k|  object->ref_count = 1;
 1701|  2.56k|  object->qdata = NULL;
 1702|       |
 1703|  2.56k|  if (CLASS_HAS_PROPS (class) && CLASS_NEEDS_NOTIFY (class))
  ------------------
  |  |   78|  5.12k|    ((class)->flags & CLASS_HAS_PROPS_FLAG)
  |  |  ------------------
  |  |  |  |   76|  2.56k|#define CLASS_HAS_PROPS_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (78:5): [True: 896, False: 1.66k]
  |  |  ------------------
  ------------------
                if (CLASS_HAS_PROPS (class) && CLASS_NEEDS_NOTIFY (class))
  ------------------
  |  |   87|    896|    (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   83|  1.79k|#define CLASS_HAS_NOTIFY(class) ((class)->notify != NULL)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:33): [True: 0, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   85|    896|    ((class)->dispatch_properties_changed != g_object_dispatch_properties_changed)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (85:5): [True: 0, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1704|      0|    {
 1705|       |      /* freeze object's notification queue, g_object_new_internal() preserves pairedness */
 1706|      0|      g_object_notify_queue_freeze (object);
 1707|      0|    }
 1708|       |
 1709|       |  /* mark object in-construction for notify_queue_thaw() and to allow construct-only properties */
 1710|  2.56k|  set_object_in_construction (object);
 1711|       |
 1712|  2.56k|  GOBJECT_IF_DEBUG (OBJECTS,
 1713|  2.56k|    {
 1714|  2.56k|      G_LOCK (debug_objects);
 1715|  2.56k|      debug_objects_count++;
 1716|  2.56k|      g_hash_table_add (debug_objects_ht, object);
 1717|  2.56k|      G_UNLOCK (debug_objects);
 1718|  2.56k|    });
 1719|  2.56k|}
gobject.c:set_object_in_construction:
 1686|  2.56k|{
 1687|  2.56k|  object_set_optional_flags (object, OPTIONAL_FLAG_IN_CONSTRUCTION);
  ------------------
  |  |  107|  2.56k|#define OPTIONAL_FLAG_IN_CONSTRUCTION    (1 << 0)
  ------------------
 1688|  2.56k|}
gobject.c:g_object_notify_queue_freeze:
  682|  2.56k|{
  683|  2.56k|  GObjectNotifyQueue *nqueue;
  684|       |
  685|  2.56k|  object_bit_lock (object, OPTIONAL_BIT_LOCK_NOTIFY);
  ------------------
  |  |  128|  2.56k|#define OPTIONAL_BIT_LOCK_NOTIFY         2
  ------------------
  686|  2.56k|  nqueue = g_datalist_id_get_data (&object->qdata, quark_notify_queue);
  687|  2.56k|  if (!nqueue)
  ------------------
  |  Branch (687:7): [True: 2.56k, False: 0]
  ------------------
  688|  2.56k|    {
  689|  2.56k|      nqueue = g_object_notify_queue_create_queue_frozen (object);
  690|  2.56k|      goto out;
  691|  2.56k|    }
  692|       |
  693|      0|  if (nqueue->freeze_count >= 65535)
  ------------------
  |  Branch (693:7): [True: 0, False: 0]
  ------------------
  694|      0|    g_critical("Free queue for %s (%p) is larger than 65535,"
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  695|      0|               " called g_object_freeze_notify() too often."
  696|      0|               " Forgot to call g_object_thaw_notify() or infinite loop",
  697|      0|               G_OBJECT_TYPE_NAME (object), object);
  698|      0|  else
  699|      0|    nqueue->freeze_count++;
  700|       |
  701|  2.56k|out:
  702|  2.56k|  object_bit_unlock (object, OPTIONAL_BIT_LOCK_NOTIFY);
  ------------------
  |  |  128|  2.56k|#define OPTIONAL_BIT_LOCK_NOTIFY         2
  ------------------
  703|       |
  704|  2.56k|  return nqueue;
  705|      0|}
gobject.c:g_object_notify_queue_create_queue_frozen:
  665|  2.56k|{
  666|  2.56k|  GObjectNotifyQueue *nqueue;
  667|       |
  668|  2.56k|  nqueue = g_new0 (GObjectNotifyQueue, 1);
  ------------------
  |  |  332|  2.56k|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|  2.56k|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|  2.56k|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|  2.56k|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|  2.56k|	  gpointer __p;						\
  |  |  |  |  264|  2.56k|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 2.56k]
  |  |  |  |  ------------------
  |  |  |  |  265|  2.56k|	    __p = g_##func (__n);				\
  |  |  |  |  266|  2.56k|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|  2.56k|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|  2.56k|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|  2.56k|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 2.56k]
  |  |  |  |  |  Branch (267:26): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|  2.56k|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|  2.56k|	  else							\
  |  |  |  |  270|  2.56k|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|  2.56k|	  __p;							\
  |  |  |  |  272|  2.56k|	}))
  |  |  ------------------
  ------------------
  669|       |
  670|  2.56k|  *nqueue = (GObjectNotifyQueue){
  671|  2.56k|    .freeze_count = 1,
  672|  2.56k|  };
  673|       |
  674|  2.56k|  g_datalist_id_set_data_full (&object->qdata, quark_notify_queue,
  675|  2.56k|                               nqueue, g_object_notify_queue_free);
  676|       |
  677|  2.56k|  return nqueue;
  678|  2.56k|}
gobject.c:g_object_notify_queue_free:
  656|  2.56k|{
  657|  2.56k|  GObjectNotifyQueue *nqueue = data;
  658|       |
  659|  2.56k|  g_slist_free (nqueue->pspecs);
  660|  2.56k|  g_free_sized (nqueue, sizeof (GObjectNotifyQueue));
  661|  2.56k|}
gobject.c:g_object_new_internal:
 2598|  2.56k|{
 2599|  2.56k|  GObjectNotifyQueue *nqueue = NULL;
 2600|  2.56k|  GObject *object;
 2601|  2.56k|  guint i;
 2602|       |
 2603|  2.56k|  if G_UNLIKELY (CLASS_HAS_CUSTOM_CONSTRUCTOR (class))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.56k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 2604|      0|    return g_object_new_with_custom_constructor (class, params, n_params);
 2605|       |
 2606|  2.56k|  object = (GObject *) g_type_create_instance (class->g_type_class.g_type);
 2607|       |
 2608|  2.56k|  g_assert (g_object_is_aligned (object));
  ------------------
  |  |  275|  2.56k|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.56k|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|  2.56k|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|  2.56k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.56k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.56k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|  2.56k|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|  2.56k|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.56k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.56k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2609|       |
 2610|  2.56k|  unset_object_in_construction (object);
 2611|       |
 2612|  2.56k|  if (CLASS_HAS_PROPS (class))
  ------------------
  |  |   78|  2.56k|    ((class)->flags & CLASS_HAS_PROPS_FLAG)
  |  |  ------------------
  |  |  |  |   76|  2.56k|#define CLASS_HAS_PROPS_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (78:5): [True: 896, False: 1.66k]
  |  |  ------------------
  ------------------
 2613|    896|    {
 2614|    896|      GSList *node;
 2615|       |
 2616|    896|      if (_g_object_has_notify_handler (object))
  ------------------
  |  Branch (2616:11): [True: 0, False: 896]
  ------------------
 2617|      0|        {
 2618|       |          /* This may or may not have been setup in g_object_init().
 2619|       |           * If it hasn't, we do it now.
 2620|       |           */
 2621|      0|          nqueue = g_datalist_id_get_data (&object->qdata, quark_notify_queue);
 2622|      0|          if (!nqueue)
  ------------------
  |  Branch (2622:15): [True: 0, False: 0]
  ------------------
 2623|      0|            nqueue = g_object_notify_queue_freeze (object);
 2624|      0|        }
 2625|       |
 2626|       |      /* We will set exactly n_construct_properties construct
 2627|       |       * properties, but they may come from either the class default
 2628|       |       * values or the passed-in parameter list.
 2629|       |       */
 2630|  1.79k|      for (node = class->construct_properties; node; node = node->next)
  ------------------
  |  Branch (2630:48): [True: 896, False: 896]
  ------------------
 2631|    896|        {
 2632|    896|          const GValue *value;
 2633|    896|          GParamSpec *pspec;
 2634|    896|          guint j;
 2635|    896|          gboolean user_specified = FALSE;
  ------------------
  |  |  925|    896|#define	FALSE	(0)
  ------------------
 2636|       |
 2637|    896|          pspec = node->data;
 2638|    896|          value = NULL; /* to silence gcc... */
 2639|       |
 2640|    896|          for (j = 0; j < n_params; j++)
  ------------------
  |  Branch (2640:23): [True: 0, False: 896]
  ------------------
 2641|      0|            if (params[j].pspec == pspec)
  ------------------
  |  Branch (2641:17): [True: 0, False: 0]
  ------------------
 2642|      0|              {
 2643|      0|                value = params[j].value;
 2644|      0|                user_specified = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2645|      0|                break;
 2646|      0|              }
 2647|       |
 2648|    896|          if (value == NULL)
  ------------------
  |  Branch (2648:15): [True: 896, False: 0]
  ------------------
 2649|    896|            value = g_param_spec_get_default_value (pspec);
 2650|       |
 2651|    896|          object_set_property (object, pspec, value, nqueue, user_specified);
 2652|    896|        }
 2653|    896|    }
 2654|       |
 2655|       |  /* run 'constructed' handler if there is a custom one */
 2656|  2.56k|  if (CLASS_HAS_CUSTOM_CONSTRUCTED (class))
  ------------------
  |  |   82|  2.56k|    ((class)->constructed != g_object_constructed)
  |  |  ------------------
  |  |  |  Branch (82:5): [True: 1.46k, False: 1.09k]
  |  |  ------------------
  ------------------
 2657|  1.46k|    class->constructed (object);
 2658|       |
 2659|       |  /* Set remaining properties.  The construct properties will
 2660|       |   * already have been taken, so set only the non-construct ones.
 2661|       |   */
 2662|  2.56k|  for (i = 0; i < n_params; i++)
  ------------------
  |  Branch (2662:15): [True: 0, False: 2.56k]
  ------------------
 2663|      0|    if (!(params[i].pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY)))
  ------------------
  |  Branch (2663:9): [True: 0, False: 0]
  ------------------
 2664|      0|      object_set_property (object, params[i].pspec, params[i].value, nqueue, TRUE);
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2665|       |
 2666|  2.56k|  if (nqueue)
  ------------------
  |  Branch (2666:7): [True: 0, False: 2.56k]
  ------------------
 2667|      0|    g_object_notify_queue_thaw (object, nqueue, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2668|       |
 2669|  2.56k|  return object;
 2670|  2.56k|}
gobject.c:g_object_is_aligned:
 2436|  2.56k|{
 2437|  2.56k|  return ((((guintptr) (void *) object) %
 2438|  2.56k|             MAX (G_ALIGNOF (gdouble),
  ------------------
  |  |  933|  15.3k|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [Folded, False: 2.56k]
  |  |  |  Branch (933:29): [Folded, False: 2.56k]
  |  |  |  Branch (933:29): [Folded, False: 2.56k]
  |  |  |  Branch (933:29): [Folded, False: 2.56k]
  |  |  |  Branch (933:42): [Folded, False: 2.56k]
  |  |  |  Branch (933:42): [Folded, False: 2.56k]
  |  |  |  Branch (933:42): [Folded, False: 2.56k]
  |  |  ------------------
  ------------------
 2439|  2.56k|                  MAX (G_ALIGNOF (guint64),
 2440|  2.56k|                       MAX (G_ALIGNOF (gint),
 2441|  2.56k|                            G_ALIGNOF (glong))))) == 0);
 2442|  2.56k|}
gobject.c:unset_object_in_construction:
 1692|  2.56k|{
 1693|  2.56k|  object_unset_optional_flags (object, OPTIONAL_FLAG_IN_CONSTRUCTION);
  ------------------
  |  |  107|  2.56k|#define OPTIONAL_FLAG_IN_CONSTRUCTION    (1 << 0)
  ------------------
 1694|  2.56k|}
gobject.c:object_unset_optional_flags:
 1651|  2.56k|{
 1652|       |  g_atomic_int_and (object_get_optional_flags_p (object), ~flags);
  ------------------
  |  |  215|  2.56k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  216|  2.56k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.56k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  217|  2.56k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (217:13): [Folded, False: 2.56k]
  |  |  ------------------
  |  |  218|  2.56k|    (guint) __atomic_fetch_and ((atomic), (val), __ATOMIC_SEQ_CST);          \
  |  |  219|  2.56k|  }))
  ------------------
 1653|  2.56k|}
gobject.c:_g_object_has_notify_handler:
 1663|    896|{
 1664|    896|  return CLASS_NEEDS_NOTIFY (G_OBJECT_GET_CLASS (object)) ||
  ------------------
  |  |   87|  1.79k|    (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   83|  1.79k|#define CLASS_HAS_NOTIFY(class) ((class)->notify != NULL)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:33): [True: 0, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   85|    896|    ((class)->dispatch_properties_changed != g_object_dispatch_properties_changed)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (85:5): [True: 0, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1665|    896|         (object_get_optional_flags (object) & OPTIONAL_FLAG_HAS_NOTIFY_HANDLER) != 0;
  ------------------
  |  |  109|    896|#define OPTIONAL_FLAG_HAS_NOTIFY_HANDLER (1 << 2) /* Same, specifically for "notify" */
  ------------------
  |  Branch (1665:10): [True: 0, False: 896]
  ------------------
 1666|    896|}
gobject.c:object_set_property:
 2149|    896|{
 2150|    896|  GTypeInstance *inst = (GTypeInstance *) object;
 2151|    896|  GObjectClass *class;
 2152|    896|  GParamSpecClass *pclass;
 2153|    896|  guint param_id = PARAM_SPEC_PARAM_ID (pspec);
  ------------------
  |  |   68|    896|#define PARAM_SPEC_PARAM_ID(pspec)		((pspec)->param_id)
  ------------------
 2154|       |
 2155|    896|  if (G_LIKELY (inst->g_class->g_type == pspec->owner_type))
  ------------------
  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 329, False: 567]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    329|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    329|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 329, False: 567]
  |  |  ------------------
  ------------------
 2156|    329|    class = (GObjectClass *) inst->g_class;
 2157|    567|  else
 2158|    567|    class = g_type_class_peek (pspec->owner_type);
 2159|       |
 2160|    896|  g_assert (class != NULL);
  ------------------
  |  |  275|    896|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    896|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    896|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    896|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2161|       |
 2162|    896|  param_spec_follow_override (&pspec);
 2163|       |
 2164|    896|  if (user_specified)
  ------------------
  |  Branch (2164:7): [True: 0, False: 896]
  ------------------
 2165|      0|    consider_issuing_property_deprecation_warning (pspec);
 2166|       |
 2167|    896|  pclass = G_PARAM_SPEC_GET_CLASS (pspec);
  ------------------
  |  |   81|    896|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|    896|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    896|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2168|    896|  if (g_value_type_compatible (G_VALUE_TYPE (value), pspec->value_type) &&
  ------------------
  |  |   62|    896|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (2168:7): [True: 896, False: 0]
  ------------------
 2169|    896|      (pclass->value_validate == NULL ||
  ------------------
  |  Branch (2169:8): [True: 0, False: 896]
  ------------------
 2170|    896|       (pclass->value_is_valid != NULL && pclass->value_is_valid (pspec, value))))
  ------------------
  |  Branch (2170:9): [True: 896, False: 0]
  |  Branch (2170:43): [True: 0, False: 896]
  ------------------
 2171|      0|    {
 2172|      0|      class->set_property (object, param_id, value, pspec);
 2173|      0|    }
 2174|    896|  else
 2175|    896|    {
 2176|       |      /* provide a copy to work from, convert (if necessary) and validate */
 2177|    896|      GValue tmp_value = G_VALUE_INIT;
  ------------------
  |  |  207|    896|#define G_VALUE_INIT  { 0, { { 0 } } }
  ------------------
 2178|       |
 2179|    896|      g_value_init (&tmp_value, pspec->value_type);
 2180|       |
 2181|    896|      if (!g_value_transform (value, &tmp_value))
  ------------------
  |  Branch (2181:11): [True: 0, False: 896]
  ------------------
 2182|      0|        g_critical ("unable to set property '%s' of type '%s' from value of type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2183|    896|                    pspec->name,
 2184|    896|                    g_type_name (pspec->value_type),
 2185|    896|                    G_VALUE_TYPE_NAME (value));
 2186|    896|      else if (g_param_value_validate (pspec, &tmp_value) && !(pspec->flags & G_PARAM_LAX_VALIDATION))
  ------------------
  |  Branch (2186:16): [True: 0, False: 896]
  |  Branch (2186:62): [True: 0, False: 0]
  ------------------
 2187|      0|        {
 2188|      0|          gchar *contents = g_strdup_value_contents (value);
 2189|       |
 2190|      0|          g_critical ("value \"%s\" of type '%s' is invalid or out of range for property '%s' of type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2191|      0|                      contents,
 2192|      0|                      G_VALUE_TYPE_NAME (value),
 2193|      0|                      pspec->name,
 2194|      0|                      g_type_name (pspec->value_type));
 2195|      0|          g_free (contents);
 2196|      0|        }
 2197|    896|      else
 2198|    896|        {
 2199|    896|          class->set_property (object, param_id, &tmp_value, pspec);
 2200|    896|        }
 2201|       |
 2202|    896|      g_value_unset (&tmp_value);
 2203|    896|    }
 2204|       |
 2205|    896|  if ((pspec->flags & (G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE)) == G_PARAM_READABLE &&
  ------------------
  |  Branch (2205:7): [True: 896, False: 0]
  ------------------
 2206|    896|      nqueue != NULL)
  ------------------
  |  Branch (2206:7): [True: 0, False: 896]
  ------------------
 2207|      0|    g_object_notify_queue_add (object, nqueue, pspec, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2208|    896|}
gobject.c:object_bit_lock:
  623|  6.49k|{
  624|       |#if defined(G_ENABLE_DEBUG) && defined(G_THREAD_LOCAL)
  625|       |  /* all object_bit_lock() really use the same bit/mutex. The "lock_bit" argument
  626|       |   * only exists for asserting. object_bit_lock() is not re-entrant (also not with
  627|       |   * different "lock_bit" values). */
  628|       |  g_assert (lock_bit > 0);
  629|       |  g_assert (_object_bit_is_locked == 0);
  630|       |  _object_bit_is_locked = lock_bit;
  631|       |#endif
  632|       |
  633|  6.49k|  g_bit_lock ((gint *) object_get_optional_flags_p (object), _OPTIONAL_BIT_LOCK);
  ------------------
  |  |  105|  6.49k|#define _OPTIONAL_BIT_LOCK               3
  ------------------
  634|  6.49k|}
gobject.c:weak_refs_notify:
 3641|    123|{
 3642|    123|  WeakRefStack *wstack = data;
 3643|    123|  guint i;
 3644|       |
 3645|    251|  for (i = 0; i < wstack->n_weak_refs; i++)
  ------------------
  |  Branch (3645:15): [True: 128, False: 123]
  ------------------
 3646|    128|    wstack->weak_refs[i].notify (wstack->weak_refs[i].data, wstack->object);
 3647|    123|  g_free (wstack);
 3648|    123|}
gobject.c:object_bit_unlock:
  638|  6.49k|{
  639|       |#if defined(G_ENABLE_DEBUG) && defined(G_THREAD_LOCAL)
  640|       |  /* All lock_bit map to the same mutex. We cannot use two different locks on
  641|       |   * the same integer. Assert against that. */
  642|       |  g_assert (lock_bit > 0);
  643|       |  g_assert (_object_bit_is_locked == lock_bit);
  644|       |  _object_bit_is_locked = 0;
  645|       |#endif
  646|       |
  647|       |  /* Warning: after unlock, @object may be a dangling pointer (destroyed on
  648|       |   * another thread) and must not be touched anymore. */
  649|       |
  650|  6.49k|  g_bit_unlock ((gint *) object_get_optional_flags_p (object), _OPTIONAL_BIT_LOCK);
  ------------------
  |  |  105|  6.49k|#define _OPTIONAL_BIT_LOCK               3
  ------------------
  651|  6.49k|}
gobject.c:object_ref:
 4177|  2.40k|{
 4178|  2.40k|  GToggleNotify toggle_notify;
 4179|  2.40k|  gpointer toggle_data;
 4180|  2.40k|  gint old_ref;
 4181|       |
 4182|  2.40k|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|  2.40k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.40k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  2.40k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.40k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  2.40k|    gint gaig_temp;                                                          \
  |  |  113|  2.40k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 2.40k]
  |  |  ------------------
  |  |  114|  2.40k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  2.40k|    (gint) gaig_temp;                                                        \
  |  |  116|  2.40k|  }))
  ------------------
 4183|       |
 4184|  2.40k|retry:
 4185|  2.40k|  toggle_notify = NULL;
 4186|  2.40k|  toggle_data = NULL;
 4187|  2.40k|  if (old_ref > 1 && old_ref < G_MAXINT)
  ------------------
  |  |   39|    499|#define G_MAXINT	INT_MAX
  ------------------
  |  Branch (4187:7): [True: 499, False: 1.90k]
  |  Branch (4187:22): [True: 499, False: 0]
  ------------------
 4188|    499|    {
 4189|       |      /* Fast-path. We have apparently more than 1 references already. No
 4190|       |       * special handling for toggle references, just increment the ref count. */
 4191|    499|      if (!g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|    499|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|    499|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|    499|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    499|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|    499|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    499|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|    499|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 499]
  |  |  ------------------
  |  |  197|    499|    *(preval) = (oldval);                                                      \
  |  |  198|    499|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|    499|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 499, False: 0]
  |  |  ------------------
  |  |  199|    499|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|    499|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|    499|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    499|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|    499|  }))
  ------------------
  |  Branch (4191:11): [True: 0, False: 499]
  ------------------
 4192|    499|                                                   old_ref, old_ref + 1, &old_ref))
 4193|      0|        goto retry;
 4194|    499|    }
 4195|  1.90k|  else if (old_ref == 1)
  ------------------
  |  Branch (4195:12): [True: 1.90k, False: 0]
  ------------------
 4196|  1.90k|    {
 4197|       |      /* With ref count 1, check whether we need to emit a toggle notification. */
 4198|  1.90k|      if (!toggle_refs_check_and_ref_or_deref (object, TRUE, &old_ref, &toggle_notify, &toggle_data))
  ------------------
  |  |  929|  1.90k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.90k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (4198:11): [True: 0, False: 1.90k]
  ------------------
 4199|      0|        goto retry;
 4200|  1.90k|    }
 4201|      0|  else
 4202|      0|    {
 4203|      0|      gboolean object_already_finalized = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4204|       |
 4205|      0|      *out_toggle_notify = NULL;
 4206|      0|      *out_toggle_data = NULL;
 4207|      0|      g_return_val_if_fail (!object_already_finalized, NULL);
  ------------------
  |  |  663|      0|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      0|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      0|      { } \
  |  |  666|      0|    else \
  |  |  667|      0|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4208|      0|      return NULL;
 4209|      0|    }
 4210|       |
 4211|  2.40k|  TRACE (GOBJECT_OBJECT_REF (object, G_TYPE_FROM_INSTANCE (object), old_ref));
 4212|       |
 4213|  2.40k|  *out_toggle_notify = toggle_notify;
 4214|  2.40k|  *out_toggle_data = toggle_data;
 4215|  2.40k|  return object;
 4216|  2.40k|}
gobject.c:toggle_refs_check_and_ref_or_deref:
 3961|  3.80k|{
 3962|  3.80k|  const gint ref_curr = is_ref ? 1 : 2;
  ------------------
  |  Branch (3962:25): [True: 1.90k, False: 1.90k]
  ------------------
 3963|  3.80k|  const gint ref_next = is_ref ? 2 : 1;
  ------------------
  |  Branch (3963:25): [True: 1.90k, False: 1.90k]
  ------------------
 3964|  3.80k|  gboolean success;
 3965|       |
 3966|       |#if G_ENABLE_DEBUG
 3967|       |  g_assert (ref_curr == *old_ref);
 3968|       |#endif
 3969|       |
 3970|  3.80k|  *toggle_notify = NULL;
 3971|  3.80k|  *toggle_data = NULL;
 3972|       |
 3973|  3.80k|  object_bit_lock (object, OPTIONAL_BIT_LOCK_TOGGLE_REFS);
  ------------------
  |  |  129|  3.80k|#define OPTIONAL_BIT_LOCK_TOGGLE_REFS    3
  ------------------
 3974|       |
 3975|       |  /* @old_ref is mainly an (out) parameter. On failure to compare-and-exchange,
 3976|       |   * we MUST return the new value which the caller will use for retry.*/
 3977|       |
 3978|  3.80k|  success = g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|  3.80k|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|  3.80k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|  3.80k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|  3.80k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|  3.80k|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|  3.80k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|  3.80k|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 3.80k]
  |  |  ------------------
  |  |  197|  3.80k|    *(preval) = (oldval);                                                      \
  |  |  198|  3.80k|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|  3.80k|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 3.80k, False: 0]
  |  |  ------------------
  |  |  199|  3.80k|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|  3.80k|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|  3.80k|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|  3.80k|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|  3.80k|  }))
  ------------------
 3979|  3.80k|                                                    ref_curr,
 3980|  3.80k|                                                    ref_next,
 3981|  3.80k|                                                    old_ref);
 3982|       |
 3983|       |  /* Note that if we are called during g_object_unref (@is_ref set to FALSE),
 3984|       |   * then we drop the ref count from 2 to 1 and give up our reference. We thus
 3985|       |   * no longer hold a strong reference and another thread may race against
 3986|       |   * destroying the object.
 3987|       |   *
 3988|       |   * After this point with is_ref=FALSE and success=TRUE, @object must no
 3989|       |   * longer be accessed.
 3990|       |   *
 3991|       |   * The exception is here. While we still hold the object lock, we know that
 3992|       |   * @object could not be destroyed, because g_object_unref() also needs to
 3993|       |   * acquire the same lock during g_object_notify_queue_freeze(). Thus, we know
 3994|       |   * object cannot yet be destroyed and we can access it until the unlock
 3995|       |   * below. */
 3996|       |
 3997|  3.80k|  if (success && OBJECT_HAS_TOGGLE_REF (object))
  ------------------
  |  |   73|  3.80k|    ((g_datalist_get_flags (&(object)->qdata) & OBJECT_HAS_TOGGLE_REF_FLAG) != 0)
  |  |  ------------------
  |  |  |  |   71|  3.80k|#define OBJECT_HAS_TOGGLE_REF_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (73:5): [True: 0, False: 3.80k]
  |  |  ------------------
  ------------------
  |  Branch (3997:7): [True: 3.80k, False: 0]
  ------------------
 3998|      0|    {
 3999|      0|      ToggleRefStack *tstackptr;
 4000|       |
 4001|      0|      tstackptr = g_datalist_id_get_data (&object->qdata, quark_toggle_refs);
 4002|       |
 4003|      0|      if (tstackptr->n_toggle_refs != 1)
  ------------------
  |  Branch (4003:11): [True: 0, False: 0]
  ------------------
 4004|      0|        {
 4005|      0|          g_critical ("Unexpected number of toggle-refs. g_object_add_toggle_ref() must be paired with g_object_remove_toggle_ref()");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4006|      0|        }
 4007|      0|      else
 4008|      0|        {
 4009|      0|          *toggle_notify = tstackptr->toggle_refs[0].notify;
 4010|      0|          *toggle_data = tstackptr->toggle_refs[0].data;
 4011|      0|        }
 4012|      0|    }
 4013|       |
 4014|  3.80k|  object_bit_unlock (object, OPTIONAL_BIT_LOCK_TOGGLE_REFS);
  ------------------
  |  |  129|  3.80k|#define OPTIONAL_BIT_LOCK_TOGGLE_REFS    3
  ------------------
 4015|       |
 4016|  3.80k|  return success;
 4017|  3.80k|}
gobject.c:_object_unref_clear_weak_locations:
 4250|  5.12k|{
 4251|  5.12k|  WeakRefData *wrdata;
 4252|  5.12k|  gboolean success;
 4253|       |
 4254|       |  /* Fast path, for objects that never had a GWeakRef registered. */
 4255|  5.12k|  if (!(object_get_optional_flags (object) & OPTIONAL_FLAG_EVER_HAD_WEAK_REF))
  ------------------
  |  |  111|  5.12k|#define OPTIONAL_FLAG_EVER_HAD_WEAK_REF  (1 << 4) /* whether on the object ever g_weak_ref_set() was called. */
  ------------------
  |  Branch (4255:7): [True: 5.12k, False: 0]
  ------------------
 4256|  5.12k|    {
 4257|       |      /* The caller previously just checked atomically that the ref-count was
 4258|       |       * one.
 4259|       |       *
 4260|       |       * At this point still, @object never ever had a GWeakRef registered.
 4261|       |       * That means, nobody else holds a strong reference and also nobody else
 4262|       |       * can hold a weak reference, to race against obtaining another
 4263|       |       * reference. We are good to proceed. */
 4264|  5.12k|      if (do_unref)
  ------------------
  |  Branch (4264:11): [True: 2.56k, False: 2.56k]
  ------------------
 4265|  2.56k|        {
 4266|  2.56k|          if (!g_atomic_int_compare_and_exchange ((gint *) &object->ref_count, 1, 0))
  ------------------
  |  |  185|  2.56k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|  2.56k|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|  2.56k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.56k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|  2.56k|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 2.56k]
  |  |  ------------------
  |  |  189|  2.56k|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|  2.56k|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|  2.56k|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|  2.56k|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (189:5): [True: 2.56k, False: 0]
  |  |  ------------------
  |  |  190|  2.56k|  }))
  ------------------
  |  Branch (4266:15): [True: 0, False: 2.56k]
  ------------------
 4267|      0|            {
 4268|       |#if G_ENABLE_DEBUG
 4269|       |              g_assert_not_reached ();
 4270|       |#endif
 4271|      0|            }
 4272|  2.56k|        }
 4273|  5.12k|      return TRUE;
  ------------------
  |  |  929|  5.12k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  5.12k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4274|  5.12k|    }
 4275|       |
 4276|       |  /* Slow path. We must obtain a lock on the @wrdata, to atomically release
 4277|       |   * weak references and check that the ref count is as expected. */
 4278|       |
 4279|      0|  wrdata = weak_ref_data_get_surely (object);
 4280|       |
 4281|      0|  weak_ref_data_lock (wrdata);
 4282|       |
 4283|      0|  if (do_unref)
  ------------------
  |  Branch (4283:7): [True: 0, False: 0]
  ------------------
 4284|      0|    {
 4285|      0|      success = g_atomic_int_compare_and_exchange_full ((gint *) &object->ref_count,
  ------------------
  |  |  193|      0|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|      0|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|      0|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 0]
  |  |  ------------------
  |  |  197|      0|    *(preval) = (oldval);                                                      \
  |  |  198|      0|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 0, False: 0]
  |  |  ------------------
  |  |  199|      0|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|      0|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|      0|  }))
  ------------------
 4286|      0|                                                        1, 0,
 4287|      0|                                                        p_old_ref);
 4288|      0|    }
 4289|      0|  else
 4290|      0|    {
 4291|      0|      *p_old_ref = g_atomic_int_get ((gint *) &object->ref_count);
  ------------------
  |  |  110|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|      0|    gint gaig_temp;                                                          \
  |  |  113|      0|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 0]
  |  |  ------------------
  |  |  114|      0|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|      0|    (gint) gaig_temp;                                                        \
  |  |  116|      0|  }))
  ------------------
 4292|      0|      success = (*p_old_ref == 1);
 4293|      0|    }
 4294|       |
 4295|      0|  if (success)
  ------------------
  |  Branch (4295:7): [True: 0, False: 0]
  ------------------
 4296|      0|    weak_ref_data_clear_list (wrdata, object);
 4297|       |
 4298|      0|  weak_ref_data_unlock (wrdata);
 4299|       |
 4300|      0|  return success;
 4301|  5.12k|}
gobject.c:g_value_object_init:
 4929|    898|{
 4930|       |  value->data[0].v_pointer = NULL;
 4931|    898|}
gobject.c:g_value_object_free_value:
 4935|  1.79k|{
 4936|  1.79k|  g_clear_object ((GObject**) &value->data[0].v_pointer);
 4937|  1.79k|}
gobject.c:g_value_object_copy_value:
 4942|    896|{
 4943|       |  g_set_object ((GObject**) &dest_value->data[0].v_pointer,
  ------------------
  |  |  763|    896|  (G_GNUC_EXTENSION ({ \
  |  |  ------------------
  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  764|    896|    G_STATIC_ASSERT (sizeof *(object_ptr) == sizeof (new_object)); \
  |  |  ------------------
  |  |  |  |  871|    896|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  765|    896|    /* Only one access, please; work around type aliasing */ \
  |  |  766|    896|    union { char *in; GObject **out; } _object_ptr; \
  |  |  767|    896|    _object_ptr.in = (char *) (object_ptr); \
  |  |  768|    896|    /* Check types match */ \
  |  |  769|    896|    (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |                   (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
  |  |  ------------------
  |  |  |  |  925|    896|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (769:13): [Folded, False: 896]
  |  |  ------------------
  |  |  770|    896|    (g_set_object) (_object_ptr.out, (GObject *) new_object); \
  |  |  771|    896|  })) \
  |  |  772|    896|  GOBJECT_AVAILABLE_MACRO_IN_2_44
  ------------------
 4944|    896|                src_value->data[0].v_pointer);
 4945|    896|}

gobject.c:g_set_object:
  736|    896|{
  737|    896|  GObject *old_object = *object_ptr;
  738|       |
  739|       |  /* rely on g_object_[un]ref() to check the pointers are actually GObjects;
  740|       |   * elide a (object_ptr != NULL) check because most of the time we will be
  741|       |   * operating on struct members with a constant offset, so a NULL check would
  742|       |   * not catch bugs
  743|       |   */
  744|       |
  745|    896|  if (old_object == new_object)
  ------------------
  |  Branch (745:7): [True: 896, False: 0]
  ------------------
  746|    896|    return FALSE;
  ------------------
  |  |  925|    896|#define	FALSE	(0)
  ------------------
  747|       |
  748|      0|  if (new_object != NULL)
  ------------------
  |  Branch (748:7): [True: 0, False: 0]
  ------------------
  749|      0|    g_object_ref (new_object);
  ------------------
  |  |  533|      0|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
  750|       |
  751|      0|  *object_ptr = new_object;
  752|       |
  753|      0|  if (old_object != NULL)
  ------------------
  |  Branch (753:7): [True: 0, False: 0]
  ------------------
  754|      0|    g_object_unref (old_object);
  755|       |
  756|      0|  return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  757|    896|}

_g_param_type_init:
  101|      2|{
  102|      2|  static const GTypeFundamentalInfo finfo = {
  103|      2|    (G_TYPE_FLAG_CLASSED |
  104|      2|     G_TYPE_FLAG_INSTANTIATABLE |
  105|      2|     G_TYPE_FLAG_DERIVABLE |
  106|      2|     G_TYPE_FLAG_DEEP_DERIVABLE),
  107|      2|  };
  108|      2|  static const GTypeValueTable param_value_table = {
  109|      2|    value_param_init,           /* value_init */
  110|      2|    value_param_free_value,     /* value_free */
  111|      2|    value_param_copy_value,     /* value_copy */
  112|      2|    value_param_peek_pointer,   /* value_peek_pointer */
  113|      2|    "p",			/* collect_format */
  114|      2|    value_param_collect_value,  /* collect_value */
  115|      2|    "p",			/* lcopy_format */
  116|      2|    value_param_lcopy_value,    /* lcopy_value */
  117|      2|  };
  118|      2|  const GTypeInfo param_spec_info = {
  119|      2|    sizeof (GParamSpecClass),
  120|       |
  121|      2|    (GBaseInitFunc) g_param_spec_class_base_init,
  122|      2|    (GBaseFinalizeFunc) g_param_spec_class_base_finalize,
  123|      2|    (GClassInitFunc) g_param_spec_class_init,
  124|      2|    (GClassFinalizeFunc) NULL,
  125|      2|    NULL,	/* class_data */
  126|       |
  127|      2|    sizeof (GParamSpec),
  128|      2|    0,		/* n_preallocs */
  129|      2|    (GInstanceInitFunc) g_param_spec_init,
  130|       |
  131|      2|    &param_value_table,
  132|      2|  };
  133|      2|  GType type;
  134|       |
  135|       |  /* This should be registered as GParamSpec instead of GParam, for
  136|       |   * consistency sake, so that type name can be mapped to struct name,
  137|       |   * However, some language bindings, most noticeable the python ones
  138|       |   * depends on the "GParam" identifier, see #548689
  139|       |   */
  140|      2|  type = g_type_register_fundamental (G_TYPE_PARAM, g_intern_static_string ("GParam"), &param_spec_info, &finfo, G_TYPE_FLAG_ABSTRACT);
  ------------------
  |  |  183|      2|#define G_TYPE_PARAM			G_TYPE_MAKE_FUNDAMENTAL (19)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  141|      2|  g_assert (type == G_TYPE_PARAM);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  142|      2|  g_param_private_offset = g_type_add_instance_private (type, sizeof (GParamSpecPrivate));
  143|      2|  g_value_register_transform_func (G_TYPE_PARAM, G_TYPE_PARAM, value_param_transform_value);
  ------------------
  |  |  183|      2|#define G_TYPE_PARAM			G_TYPE_MAKE_FUNDAMENTAL (19)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_PARAM, G_TYPE_PARAM, value_param_transform_value);
  ------------------
  |  |  183|      2|#define G_TYPE_PARAM			G_TYPE_MAKE_FUNDAMENTAL (19)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  144|      2|}
g_param_spec_ref:
  214|      1|{
  215|      1|  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  216|       |
  217|      1|  g_atomic_int_inc ((int *)&pspec->ref_count);
  ------------------
  |  |  162|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|      1|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 1]
  |  |  ------------------
  |  |  165|      1|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|      1|  }))
  ------------------
  218|       |
  219|      1|  return pspec;
  220|      1|}
g_param_spec_ref_sink:
  277|      1|{
  278|      1|  guintptr oldvalue;
  279|      1|  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  280|       |
  281|      1|  oldvalue = g_atomic_pointer_and (&pspec->qdata, ~(gsize)PARAM_FLOATING_FLAG);
  ------------------
  |  |  286|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  287|      1|    guintptr *gapa_atomic = (guintptr *) (atomic);                           \
  |  |  288|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  289|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr));                 \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  290|      1|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (290:13): [Folded, False: 1]
  |  |  ------------------
  |  |  291|      1|    (void) (0 ? (val) ^ (val) : 1);                                          \
  |  |  ------------------
  |  |  |  Branch (291:13): [Folded, False: 1]
  |  |  ------------------
  |  |  292|      1|    (guintptr) __atomic_fetch_and (gapa_atomic, (val), __ATOMIC_SEQ_CST);    \
  |  |  293|      1|  }))
  ------------------
  282|      1|  if (!(oldvalue & PARAM_FLOATING_FLAG))
  ------------------
  |  |   56|      1|#define PARAM_FLOATING_FLAG                     0x2
  ------------------
  |  Branch (282:7): [True: 0, False: 1]
  ------------------
  283|      0|    g_param_spec_ref (pspec);
  284|       |
  285|      1|  return pspec;
  286|      1|}
g_param_spec_is_valid_name:
  400|      2|{
  401|      2|  const gchar *p;
  402|       |
  403|       |  /* First character must be a letter. */
  404|      2|  if ((name[0] < 'A' || name[0] > 'Z') &&
  ------------------
  |  Branch (404:8): [True: 0, False: 2]
  |  Branch (404:25): [True: 2, False: 0]
  ------------------
  405|      2|      (name[0] < 'a' || name[0] > 'z'))
  ------------------
  |  Branch (405:8): [True: 0, False: 2]
  |  Branch (405:25): [True: 0, False: 2]
  ------------------
  406|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  407|       |
  408|     14|  for (p = name; *p != 0; p++)
  ------------------
  |  Branch (408:18): [True: 12, False: 2]
  ------------------
  409|     12|    {
  410|     12|      const gchar c = *p;
  411|       |
  412|     12|      if (c != '-' && c != '_' &&
  ------------------
  |  Branch (412:11): [True: 12, False: 0]
  |  Branch (412:23): [True: 12, False: 0]
  ------------------
  413|     12|          (c < '0' || c > '9') &&
  ------------------
  |  Branch (413:12): [True: 0, False: 12]
  |  Branch (413:23): [True: 12, False: 0]
  ------------------
  414|     12|          (c < 'A' || c > 'Z') &&
  ------------------
  |  Branch (414:12): [True: 0, False: 12]
  |  Branch (414:23): [True: 12, False: 0]
  ------------------
  415|     12|          (c < 'a' || c > 'z'))
  ------------------
  |  Branch (415:12): [True: 0, False: 12]
  |  Branch (415:23): [True: 0, False: 12]
  ------------------
  416|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  417|     12|    }
  418|       |
  419|      2|  return TRUE;
  ------------------
  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  420|      2|}
g_param_spec_internal:
  452|      1|{
  453|      1|  GParamSpec *pspec;
  454|      1|  GParamSpecPrivate *priv;
  455|       |  
  456|      1|  g_return_val_if_fail (G_TYPE_IS_PARAM (param_type) && param_type != G_TYPE_PARAM, NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  457|      1|  g_return_val_if_fail (name != NULL, NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  458|      1|  g_return_val_if_fail (g_param_spec_is_valid_name (name), NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  459|      1|  g_return_val_if_fail (!(flags & G_PARAM_STATIC_NAME) || is_canonical (name), NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  460|       |  
  461|      1|  pspec = (gpointer) g_type_create_instance (param_type);
  462|       |
  463|      1|  if (flags & G_PARAM_STATIC_NAME)
  ------------------
  |  Branch (463:7): [True: 1, False: 0]
  ------------------
  464|      1|    {
  465|       |      /* pspec->name is not freed if (flags & G_PARAM_STATIC_NAME) */
  466|      1|      pspec->name = (gchar *) g_intern_static_string (name);
  467|      1|      if (!is_canonical (pspec->name))
  ------------------
  |  Branch (467:11): [True: 0, False: 1]
  ------------------
  468|      0|        g_warning ("G_PARAM_STATIC_NAME used with non-canonical pspec name: %s", pspec->name);
  ------------------
  |  |  362|      0|#define g_warning(...)  g_log (G_LOG_DOMAIN,         \
  |  |  363|      0|                               G_LOG_LEVEL_WARNING,  \
  |  |  364|      0|                               __VA_ARGS__)
  ------------------
  469|      1|    }
  470|      0|  else
  471|      0|    {
  472|      0|      if (is_canonical (name))
  ------------------
  |  Branch (472:11): [True: 0, False: 0]
  ------------------
  473|      0|        pspec->name = (gchar *) g_intern_string (name);
  474|      0|      else
  475|      0|        {
  476|      0|          gchar *tmp = g_strdup (name);
  ------------------
  |  |  324|      0|#define g_strdup(x) g_strdup_inline (x)
  ------------------
  477|      0|          canonicalize_key (tmp);
  478|      0|          pspec->name = (gchar *) g_intern_string (tmp);
  479|      0|          g_free (tmp);
  480|      0|        }
  481|      0|    }
  482|       |
  483|      1|  priv = g_param_spec_get_private (pspec);
  484|      1|  priv->name_quark = g_quark_from_string (pspec->name);
  485|       |
  486|      1|  if (flags & G_PARAM_STATIC_NICK)
  ------------------
  |  Branch (486:7): [True: 0, False: 1]
  ------------------
  487|      0|    pspec->_nick = (gchar*) nick;
  488|      1|  else
  489|      1|    pspec->_nick = g_strdup (nick);
  ------------------
  |  |  324|      1|#define g_strdup(x) g_strdup_inline (x)
  ------------------
  490|       |
  491|      1|  if (flags & G_PARAM_STATIC_BLURB)
  ------------------
  |  Branch (491:7): [True: 0, False: 1]
  ------------------
  492|      0|    pspec->_blurb = (gchar*) blurb;
  493|      1|  else
  494|      1|    pspec->_blurb = g_strdup (blurb);
  ------------------
  |  |  324|      1|#define g_strdup(x) g_strdup_inline (x)
  ------------------
  495|       |
  496|      1|  pspec->flags = (flags & G_PARAM_USER_MASK) | (flags & G_PARAM_MASK);
  ------------------
  |  |   57|      1|#define	G_PARAM_USER_MASK			(~0U << G_PARAM_USER_SHIFT)
  |  |  ------------------
  |  |  |  |  199|      1|#define	G_PARAM_USER_SHIFT	(8)
  |  |  ------------------
  ------------------
                pspec->flags = (flags & G_PARAM_USER_MASK) | (flags & G_PARAM_MASK);
  ------------------
  |  |  192|      1|#define	G_PARAM_MASK		(0x000000ff)
  ------------------
  497|       |  
  498|      1|  return pspec;
  499|      1|}
g_param_value_set_default:
  630|      1|{
  631|      1|  g_return_if_fail (G_IS_PARAM_SPEC (pspec));
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  632|       |
  633|      1|  if (G_VALUE_TYPE (value) == G_TYPE_INVALID)
  ------------------
  |  |   62|      1|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
                if (G_VALUE_TYPE (value) == G_TYPE_INVALID)
  ------------------
  |  |   65|      1|#define G_TYPE_INVALID			G_TYPE_MAKE_FUNDAMENTAL (0)
  |  |  ------------------
  |  |  |  |  227|      1|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (633:7): [True: 0, False: 1]
  ------------------
  634|      0|    {
  635|      0|      g_value_init (value, G_PARAM_SPEC_VALUE_TYPE (pspec));
  ------------------
  |  |  105|      0|#define	G_PARAM_SPEC_VALUE_TYPE(pspec)	(G_PARAM_SPEC (pspec)->value_type)
  |  |  ------------------
  |  |  |  |   47|      0|#define G_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
  |  |  |  |  ------------------
  |  |  |  |  |  |  528|      0|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 2656|      0|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  636|      0|    }
  637|      1|  else
  638|      1|    {
  639|      1|      g_return_if_fail (G_IS_VALUE (value));
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  640|      1|      g_return_if_fail (PSPEC_APPLIES_TO_VALUE (pspec, value));
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      5|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  641|      1|      g_value_reset (value);
  642|      1|    }
  643|       |
  644|      1|  G_PARAM_SPEC_GET_CLASS (pspec)->value_set_default (pspec, value);
  ------------------
  |  |   81|      1|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|      1|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|      1|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  645|      1|}
g_param_value_validate:
  692|    896|{
  693|    896|  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
  ------------------
  |  |  663|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    896|      { } \
  |  |  666|    896|    else \
  |  |  667|    896|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  694|    896|  g_return_val_if_fail (G_IS_VALUE (value), FALSE);
  ------------------
  |  |  663|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    896|      { } \
  |  |  666|    896|    else \
  |  |  667|    896|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  695|    896|  g_return_val_if_fail (PSPEC_APPLIES_TO_VALUE (pspec, value), FALSE);
  ------------------
  |  |  663|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  4.48k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 896]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    896|      { } \
  |  |  666|    896|    else \
  |  |  667|    896|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  696|       |
  697|    896|  if (G_PARAM_SPEC_GET_CLASS (pspec)->value_validate)
  ------------------
  |  |   81|    896|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|    896|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    896|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (697:7): [True: 896, False: 0]
  ------------------
  698|    896|    {
  699|    896|      GValue oval = *value;
  700|       |
  701|    896|      if (G_PARAM_SPEC_GET_CLASS (pspec)->value_validate (pspec, value) ||
  ------------------
  |  |   81|    896|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|    896|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    896|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (701:11): [True: 0, False: 896]
  ------------------
  702|    896|	  memcmp (&oval.data, &value->data, sizeof (oval.data)))
  ------------------
  |  Branch (702:4): [True: 0, False: 896]
  ------------------
  703|      0|	return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  704|    896|    }
  705|       |
  706|    896|  return FALSE;
  ------------------
  |  |  925|    896|#define	FALSE	(0)
  ------------------
  707|    896|}
g_param_spec_pool_new:
  991|      1|{
  992|      1|  static GMutex init_mutex;
  993|      1|  GParamSpecPool *pool = g_new (GParamSpecPool, 1);
  ------------------
  |  |  315|      1|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      1|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      1|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      1|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      1|	  gpointer __p;						\
  |  |  |  |  264|      1|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  265|      1|	    __p = g_##func (__n);				\
  |  |  |  |  266|      1|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      1|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      1|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      1|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 1]
  |  |  |  |  |  Branch (267:26): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      1|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      1|	  else							\
  |  |  |  |  270|      1|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      1|	  __p;							\
  |  |  |  |  272|      1|	}))
  |  |  ------------------
  ------------------
  994|       |
  995|      1|  memcpy (&pool->mutex, &init_mutex, sizeof (init_mutex));
  996|      1|  pool->type_prefixing = type_prefixing != FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
  997|      1|  pool->hash_table = g_hash_table_new_full (param_spec_pool_hash,
  998|      1|                                            param_spec_pool_equals,
  999|      1|                                            (GDestroyNotify) g_param_spec_unref,
 1000|      1|                                            NULL);
 1001|       |
 1002|      1|  return pool;
 1003|      1|}
g_param_spec_pool_insert:
 1035|      1|{
 1036|      1|  const gchar *p;
 1037|       |  
 1038|      1|  if (pool && pspec && owner_type > 0 && pspec->owner_type == 0)
  ------------------
  |  Branch (1038:7): [True: 1, False: 0]
  |  Branch (1038:15): [True: 1, False: 0]
  |  Branch (1038:24): [True: 1, False: 0]
  |  Branch (1038:42): [True: 1, False: 0]
  ------------------
 1039|      1|    {
 1040|      7|      for (p = pspec->name; *p; p++)
  ------------------
  |  Branch (1040:29): [True: 6, False: 1]
  ------------------
 1041|      6|	{
 1042|      6|	  if (!strchr (G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-_", *p))
  ------------------
  |  |   51|      6|#define G_CSET_A_2_Z	"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  ------------------
  |  Branch (1042:8): [True: 0, False: 6]
  ------------------
 1043|      0|	    {
 1044|      0|	      g_critical (G_STRLOC ": pspec name \"%s\" contains invalid characters", pspec->name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1045|      0|	      return;
 1046|      0|	    }
 1047|      6|	}
 1048|      1|      g_mutex_lock (&pool->mutex);
 1049|      1|      pspec->owner_type = owner_type;
 1050|      1|      g_param_spec_ref (pspec);
 1051|      1|      g_hash_table_add (pool->hash_table, pspec);
 1052|      1|      g_mutex_unlock (&pool->mutex);
 1053|      1|    }
 1054|      0|  else
 1055|      0|    {
 1056|      0|      g_return_if_fail (pool != NULL);
  ------------------
  |  |  650|      0|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      0|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      0|      { } \
  |  |  653|      0|    else \
  |  |  654|      0|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1057|      0|      g_return_if_fail (pspec);
  ------------------
  |  |  650|      0|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      0|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      0|      { } \
  |  |  653|      0|    else \
  |  |  654|      0|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1058|      0|      g_return_if_fail (owner_type > 0);
  ------------------
  |  |  650|      0|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      0|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      0|      { } \
  |  |  653|      0|    else \
  |  |  654|      0|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1059|      0|      g_return_if_fail (pspec->owner_type == 0);
  ------------------
  |  |  650|      0|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      0|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      0|      { } \
  |  |  653|      0|    else \
  |  |  654|      0|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1060|      0|    }
 1061|      1|}
g_param_spec_pool_lookup:
 1160|      2|{
 1161|      2|  GParamSpec *pspec;
 1162|       |
 1163|      2|  g_return_val_if_fail (pool != NULL, NULL);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1164|      2|  g_return_val_if_fail (param_name != NULL, NULL);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1165|       |
 1166|      2|  g_mutex_lock (&pool->mutex);
 1167|       |
 1168|       |  /* try quick and away, i.e. without prefix */
 1169|      2|  pspec = param_spec_ht_lookup (pool->hash_table, param_name, owner_type, walk_ancestors);
 1170|      2|  if (pspec)
  ------------------
  |  Branch (1170:7): [True: 0, False: 2]
  ------------------
 1171|      0|    {
 1172|      0|      g_mutex_unlock (&pool->mutex);
 1173|      0|      return pspec;
 1174|      0|    }
 1175|       |
 1176|      2|  if (pool->type_prefixing)
  ------------------
  |  Branch (1176:7): [True: 2, False: 0]
  ------------------
 1177|      2|    {
 1178|      2|      char *delim;
 1179|       |
 1180|      2|      delim = strchr (param_name, ':');
 1181|       |
 1182|       |      /* strip type prefix */
 1183|      2|      if (delim && delim[1] == ':')
  ------------------
  |  Branch (1183:11): [True: 0, False: 2]
  |  Branch (1183:20): [True: 0, False: 0]
  ------------------
 1184|      0|        {
 1185|      0|          guint l = delim - param_name;
 1186|      0|          gchar stack_buffer[32], *buffer = l < 32 ? stack_buffer : g_new (gchar, l + 1);
  ------------------
  |  |  315|      0|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      0|	  gpointer __p;						\
  |  |  |  |  264|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|      0|	    __p = g_##func (__n);				\
  |  |  |  |  266|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      0|	  __p;							\
  |  |  |  |  272|      0|	}))
  |  |  ------------------
  ------------------
  |  Branch (1186:45): [True: 0, False: 0]
  ------------------
 1187|      0|          GType type;
 1188|       |
 1189|      0|          strncpy (buffer, param_name, delim - param_name);
 1190|      0|          buffer[l] = 0;
 1191|      0|          type = g_type_from_name (buffer);
 1192|      0|          if (l >= 32)
  ------------------
  |  Branch (1192:15): [True: 0, False: 0]
  ------------------
 1193|      0|            g_free (buffer);
 1194|      0|          if (type)         /* type==0 isn't a valid type pefix */
  ------------------
  |  Branch (1194:15): [True: 0, False: 0]
  ------------------
 1195|      0|            {
 1196|       |              /* sanity check, these cases don't make a whole lot of sense */
 1197|      0|              if ((!walk_ancestors && type != owner_type) || !g_type_is_a (owner_type, type))
  ------------------
  |  |  760|      0|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  ------------------
  |  |  |  Branch (760:27): [True: 0, False: 0]
  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (1197:20): [True: 0, False: 0]
  |  Branch (1197:39): [True: 0, False: 0]
  ------------------
 1198|      0|                {
 1199|      0|                  g_mutex_unlock (&pool->mutex);
 1200|       |
 1201|      0|                  return NULL;
 1202|      0|                }
 1203|      0|              owner_type = type;
 1204|      0|              param_name += l + 2;
 1205|      0|              pspec = param_spec_ht_lookup (pool->hash_table, param_name, owner_type, walk_ancestors);
 1206|      0|              g_mutex_unlock (&pool->mutex);
 1207|       |
 1208|      0|              return pspec;
 1209|      0|            }
 1210|      0|        }
 1211|      2|    }
 1212|       |
 1213|       |  /* malformed param_name */
 1214|       |
 1215|      2|  g_mutex_unlock (&pool->mutex);
 1216|       |
 1217|       |  return NULL;
 1218|      2|}
g_param_spec_pool_list:
 1380|      2|{
 1381|      2|  GParamSpec **pspecs, **p;
 1382|      2|  GSList **slists, *node;
 1383|      2|  gpointer data[4];
 1384|      2|  guint d, i;
 1385|      2|  int n_pspecs = 0;
 1386|       |
 1387|      2|  g_return_val_if_fail (pool != NULL, NULL);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1388|      2|  g_return_val_if_fail (owner_type > 0, NULL);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1389|      2|  g_return_val_if_fail (n_pspecs_p != NULL, NULL);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1390|       |  
 1391|      2|  g_mutex_lock (&pool->mutex);
 1392|      2|  d = g_type_depth (owner_type);
 1393|      2|  slists = g_new0 (GSList*, d);
  ------------------
  |  |  332|      2|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|      2|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      2|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      2|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      2|	  gpointer __p;						\
  |  |  |  |  264|      2|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  265|      2|	    __p = g_##func (__n);				\
  |  |  |  |  266|      2|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  267|      2|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      2|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      2|	  else							\
  |  |  |  |  270|      2|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      2|	  __p;							\
  |  |  |  |  272|      2|	}))
  |  |  ------------------
  ------------------
 1394|      2|  data[0] = slists;
 1395|      2|  data[1] = GTYPE_TO_POINTER (owner_type);
  ------------------
  |  | 2732|      2|#define GTYPE_TO_POINTER(t) ((gpointer) (guintptr) (t)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
 1396|      2|  data[2] = pool->hash_table;
 1397|      2|  data[3] = &n_pspecs;
 1398|       |
 1399|      2|  g_hash_table_foreach (pool->hash_table,
 1400|      2|                        G_TYPE_IS_INTERFACE (owner_type) ?
  ------------------
  |  |  300|      2|#define G_TYPE_IS_INTERFACE(type)               (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   42|      2|#define G_TYPE_FUNDAMENTAL(type)	(g_type_fundamental (type))
  |  |  ------------------
  |  |               #define G_TYPE_IS_INTERFACE(type)               (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      2|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (300:49): [True: 2, False: 0]
  |  |  ------------------
  ------------------
 1401|      2|                          pool_depth_list_for_interface :
 1402|      2|                          pool_depth_list,
 1403|      2|                        &data);
 1404|       |
 1405|      2|  pspecs = g_new (GParamSpec*, n_pspecs + 1);
  ------------------
  |  |  315|      2|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      2|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      2|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      2|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      2|	  gpointer __p;						\
  |  |  |  |  264|      2|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  265|      2|	    __p = g_##func (__n);				\
  |  |  |  |  266|      2|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  267|      2|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      2|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      2|	  else							\
  |  |  |  |  270|      2|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      2|	  __p;							\
  |  |  |  |  272|      2|	}))
  |  |  ------------------
  ------------------
 1406|      2|  p = pspecs;
 1407|      6|  for (i = 0; i < d; i++)
  ------------------
  |  Branch (1407:15): [True: 4, False: 2]
  ------------------
 1408|      4|    {
 1409|      4|      slists[i] = g_slist_sort (slists[i], pspec_compare_id);
 1410|      4|      for (node = slists[i]; node; node = node->next)
  ------------------
  |  Branch (1410:30): [True: 0, False: 4]
  ------------------
 1411|      0|	*p++ = node->data;
 1412|      4|      g_slist_free (slists[i]);
 1413|      4|    }
 1414|      2|  *p++ = NULL;
 1415|      2|  g_free (slists);
 1416|      2|  g_mutex_unlock (&pool->mutex);
 1417|       |
 1418|      2|  *n_pspecs_p = n_pspecs;
 1419|       |
 1420|      2|  return pspecs;
 1421|      2|}
g_param_type_register_static:
 1487|     46|{
 1488|     46|  GTypeInfo info = {
 1489|     46|    sizeof (GParamSpecClass),      /* class_size */
 1490|     46|    NULL,                          /* base_init */
 1491|     46|    NULL,                          /* base_destroy */
 1492|     46|    param_spec_generic_class_init, /* class_init */
 1493|     46|    NULL,                          /* class_destroy */
 1494|     46|    NULL,                          /* class_data */
 1495|     46|    0,                             /* instance_size */
 1496|     46|    16,                            /* n_preallocs */
 1497|     46|    NULL,                          /* instance_init */
 1498|     46|    NULL,                          /* value_table */
 1499|     46|  };
 1500|     46|  ParamSpecClassInfo *cinfo;
 1501|       |
 1502|     46|  g_return_val_if_fail (name != NULL, 0);
  ------------------
  |  |  663|     46|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     46|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     46|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     46|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     46|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     46| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     46|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     46|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     46|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 46, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     46|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     46|   else                                         \
  |  |  |  |  |  |  |  | 1240|     46|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     46|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     46|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 46, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     46|      { } \
  |  |  666|     46|    else \
  |  |  667|     46|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     46|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     46|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 46]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1503|     46|  g_return_val_if_fail (pspec_info != NULL, 0);
  ------------------
  |  |  663|     46|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     46|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     46|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     46|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     46|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     46| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     46|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     46|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     46|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 46, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     46|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     46|   else                                         \
  |  |  |  |  |  |  |  | 1240|     46|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     46|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     46|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 46, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     46|      { } \
  |  |  666|     46|    else \
  |  |  667|     46|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     46|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     46|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 46]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1504|     46|  g_return_val_if_fail (g_type_from_name (name) == 0, 0);
  ------------------
  |  |  663|     46|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     46|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     46|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     46|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     46|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     46| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     46|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     46|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     46|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 46, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     46|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     46|   else                                         \
  |  |  |  |  |  |  |  | 1240|     46|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     46|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     46|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 46, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     46|      { } \
  |  |  666|     46|    else \
  |  |  667|     46|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     46|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     46|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 46]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1505|     46|  g_return_val_if_fail (pspec_info->instance_size >= sizeof (GParamSpec), 0);
  ------------------
  |  |  663|     46|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     46|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     46|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     46|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     46|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     46| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     46|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     46|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     46|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 46, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     46|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     46|   else                                         \
  |  |  |  |  |  |  |  | 1240|     46|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     46|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     46|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 46, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     46|      { } \
  |  |  666|     46|    else \
  |  |  667|     46|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     46|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     46|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 46]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1506|     46|  g_return_val_if_fail (g_type_name (pspec_info->value_type) != NULL, 0);
  ------------------
  |  |  663|     46|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     46|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     46|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     46|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     46|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     46| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     46|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     46|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     46|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 46, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     46|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     46|   else                                         \
  |  |  |  |  |  |  |  | 1240|     46|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     46|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     46|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 46, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     46|      { } \
  |  |  666|     46|    else \
  |  |  667|     46|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     46|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     46|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 46]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1507|       |  /* default: g_return_val_if_fail (pspec_info->value_set_default != NULL, 0); */
 1508|       |  /* optional: g_return_val_if_fail (pspec_info->value_validate != NULL, 0); */
 1509|       |  /* default: g_return_val_if_fail (pspec_info->values_cmp != NULL, 0); */
 1510|       |
 1511|     46|  info.instance_size = pspec_info->instance_size;
 1512|     46|  info.n_preallocs = pspec_info->n_preallocs;
 1513|     46|  info.instance_init = (GInstanceInitFunc) pspec_info->instance_init;
 1514|     46|  cinfo = g_new (ParamSpecClassInfo, 1);
  ------------------
  |  |  315|     46|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|     46|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     46|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     46|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     46|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     46|	  gpointer __p;						\
  |  |  |  |  264|     46|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 46]
  |  |  |  |  ------------------
  |  |  |  |  265|     46|	    __p = g_##func (__n);				\
  |  |  |  |  266|     46|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 46, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     46|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     46|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     46|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 46]
  |  |  |  |  |  Branch (267:26): [True: 46, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     46|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     46|	  else							\
  |  |  |  |  270|     46|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     46|	  __p;							\
  |  |  |  |  272|     46|	}))
  |  |  ------------------
  ------------------
 1515|     46|  cinfo->value_type = pspec_info->value_type;
 1516|     46|  cinfo->finalize = pspec_info->finalize;
 1517|     46|  cinfo->value_set_default = pspec_info->value_set_default ? pspec_info->value_set_default : default_value_set_default;
  ------------------
  |  Branch (1517:30): [True: 46, False: 0]
  ------------------
 1518|     46|  cinfo->value_validate = pspec_info->value_validate;
 1519|     46|  cinfo->values_cmp = pspec_info->values_cmp ? pspec_info->values_cmp : default_values_cmp;
  ------------------
  |  Branch (1519:23): [True: 46, False: 0]
  ------------------
 1520|     46|  info.class_data = cinfo;
 1521|       |
 1522|     46|  return g_type_register_static (G_TYPE_PARAM, name, &info, 0);
  ------------------
  |  |  183|     46|#define G_TYPE_PARAM			G_TYPE_MAKE_FUNDAMENTAL (19)
  |  |  ------------------
  |  |  |  |  227|     46|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|     46|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1523|     46|}
g_param_spec_get_default_value:
 1635|    896|{
 1636|    896|  GParamSpecPrivate *priv = g_param_spec_get_private (pspec);
 1637|       |
 1638|       |  /* We use the type field of the GValue as the key for the once because
 1639|       |   * it will be zero before it is initialised and non-zero after.  We
 1640|       |   * have to take care that we don't write a non-zero value to the type
 1641|       |   * field before we are completely done, however, because then another
 1642|       |   * thread could come along and find the value partially-initialised.
 1643|       |   *
 1644|       |   * In order to accomplish this we store the default value in a
 1645|       |   * stack-allocated GValue.  We then set the type field in that value
 1646|       |   * to zero and copy the contents into place.  We then end by storing
 1647|       |   * the type as the last step in order to ensure that we're completely
 1648|       |   * done before a g_once_init_enter() could take the fast path in
 1649|       |   * another thread.
 1650|       |   */
 1651|    896|  if (g_once_init_enter_pointer (&priv->default_value.g_type))
  ------------------
  |  |  282|    896|  (G_GNUC_EXTENSION ({                                         \
  |  |  ------------------
  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (282:3): [True: 1, False: 895]
  |  |  ------------------
  |  |  283|    896|    G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|    896|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  284|    896|    (void) (0 ? (gpointer) * (location) : NULL);               \
  |  |  ------------------
  |  |  |  Branch (284:13): [Folded, False: 896]
  |  |  ------------------
  |  |  285|    896|    (!g_atomic_pointer_get (location) &&                       \
  |  |  ------------------
  |  |  |  |  127|  1.79k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  1.79k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    896|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  1.79k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    896|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  1.79k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    896|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  1.79k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  1.79k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  1.79k|  }))
  |  |  ------------------
  |  |  |  Branch (285:6): [True: 1, False: 895]
  |  |  ------------------
  |  |  286|    896|     g_once_init_enter_pointer (location));                    \
  |  |  ------------------
  |  |  |  Branch (286:6): [True: 1, False: 0]
  |  |  ------------------
  |  |  287|    896|  })) GLIB_AVAILABLE_MACRO_IN_2_80
  ------------------
 1652|      1|    {
 1653|      1|      GValue default_value = G_VALUE_INIT;
  ------------------
  |  |  207|      1|#define G_VALUE_INIT  { 0, { { 0 } } }
  ------------------
 1654|       |
 1655|      1|      g_value_init (&default_value, pspec->value_type);
 1656|      1|      g_param_value_set_default (pspec, &default_value);
 1657|       |
 1658|       |      /* store all but the type */
 1659|      1|      memcpy (priv->default_value.data, default_value.data, sizeof (default_value.data));
 1660|       |
 1661|      1|      g_once_init_leave_pointer (&priv->default_value.g_type, pspec->value_type);
  ------------------
  |  |  289|      1|  (G_GNUC_EXTENSION ({                                                      \
  |  |  ------------------
  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  290|      1|    G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer));              \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  291|      1|    0 ? (void) (*(location) = (result)) : (void) 0;                         \
  |  |  ------------------
  |  |  |  Branch (291:5): [Folded, False: 1]
  |  |  ------------------
  |  |  292|      1|    g_once_init_leave_pointer ((location), (gpointer) (guintptr) (result)); \
  |  |  293|      1|  })) GLIB_AVAILABLE_MACRO_IN_2_80
  ------------------
 1662|      1|    }
 1663|       |
 1664|    896|  return &priv->default_value;
 1665|    896|}
gparam.c:g_param_spec_class_base_init:
  148|     42|{
  149|     42|}
gparam.c:g_param_spec_class_init:
  159|      2|{
  160|      2|  class->value_type = G_TYPE_NONE;
  ------------------
  |  |   72|      2|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  161|      2|  class->finalize = g_param_spec_finalize;
  162|      2|  class->value_set_default = NULL;
  163|      2|  class->value_validate = NULL;
  164|      2|  class->values_cmp = NULL;
  165|       |
  166|      2|  g_type_class_adjust_private_offset (class, &g_param_private_offset);
  167|      2|}
gparam.c:g_param_spec_init:
  172|      1|{
  173|      1|  pspec->name = NULL;
  174|      1|  pspec->_nick = NULL;
  175|      1|  pspec->_blurb = NULL;
  176|      1|  pspec->flags = 0;
  177|      1|  pspec->value_type = class->value_type;
  178|      1|  pspec->owner_type = 0;
  179|      1|  pspec->qdata = NULL;
  180|      1|  g_datalist_set_flags (&pspec->qdata, PARAM_FLOATING_FLAG);
  ------------------
  |  |   56|      1|#define PARAM_FLOATING_FLAG                     0x2
  ------------------
  181|      1|  pspec->ref_count = 1;
  182|      1|  pspec->param_id = 0;
  183|      1|}
gparam.c:is_canonical:
  380|      4|{
  381|       |  return (strchr (key, '_') == NULL);
  382|      4|}
gparam.c:g_param_spec_get_private:
   95|    897|{
   96|    897|  return &G_STRUCT_MEMBER (GParamSpecPrivate, pspec, g_param_private_offset);
  ------------------
  |  |  973|    897|    (*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
  |  |  ------------------
  |  |  |  |  971|    897|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  ------------------
   97|    897|}
gparam.c:param_spec_pool_hash:
  953|      3|{
  954|      3|  const GParamSpec *key = key_spec;
  955|      3|  const gchar *p;
  956|      3|  guint h = (guint) key->owner_type;
  957|       |
  958|     21|  for (p = key->name; *p; p++)
  ------------------
  |  Branch (958:23): [True: 18, False: 3]
  ------------------
  959|     18|    h = (h << 5) - h + *p;
  960|       |
  961|      3|  return h;
  962|      3|}
gparam.c:param_spec_ht_lookup:
 1093|      2|{
 1094|      2|  GParamSpec key, *pspec;
 1095|       |
 1096|      2|  key.owner_type = owner_type;
 1097|      2|  key.name = (gchar*) param_name;
 1098|      2|  if (walk_ancestors)
  ------------------
  |  Branch (1098:7): [True: 1, False: 1]
  ------------------
 1099|      1|    do
 1100|      1|      {
 1101|      1|	pspec = g_hash_table_lookup (hash_table, &key);
 1102|      1|	if (pspec)
  ------------------
  |  Branch (1102:6): [True: 0, False: 1]
  ------------------
 1103|      0|	  return pspec;
 1104|      1|	key.owner_type = g_type_parent (key.owner_type);
 1105|      1|      }
 1106|      1|    while (key.owner_type);
  ------------------
  |  Branch (1106:12): [True: 0, False: 1]
  ------------------
 1107|      1|  else
 1108|      1|    pspec = g_hash_table_lookup (hash_table, &key);
 1109|       |
 1110|      2|  if (!pspec && !is_canonical (param_name))
  ------------------
  |  Branch (1110:7): [True: 2, False: 0]
  |  Branch (1110:17): [True: 0, False: 2]
  ------------------
 1111|      0|    {
 1112|      0|      gchar *canonical;
 1113|       |
 1114|      0|      canonical = g_strdup (key.name);
  ------------------
  |  |  324|      0|#define g_strdup(x) g_strdup_inline (x)
  ------------------
 1115|      0|      canonicalize_key (canonical);
 1116|       |
 1117|       |      /* try canonicalized form */
 1118|      0|      key.name = canonical;
 1119|      0|      key.owner_type = owner_type;
 1120|       |
 1121|      0|      if (walk_ancestors)
  ------------------
  |  Branch (1121:11): [True: 0, False: 0]
  ------------------
 1122|      0|        do
 1123|      0|          {
 1124|      0|            pspec = g_hash_table_lookup (hash_table, &key);
 1125|      0|            if (pspec)
  ------------------
  |  Branch (1125:17): [True: 0, False: 0]
  ------------------
 1126|      0|              {
 1127|      0|                g_free (canonical);
 1128|      0|                return pspec;
 1129|      0|              }
 1130|      0|            key.owner_type = g_type_parent (key.owner_type);
 1131|      0|          }
 1132|      0|        while (key.owner_type);
  ------------------
  |  Branch (1132:16): [True: 0, False: 0]
  ------------------
 1133|      0|      else
 1134|      0|        pspec = g_hash_table_lookup (hash_table, &key);
 1135|       |
 1136|      0|      g_free (canonical);
 1137|      0|    }
 1138|       |
 1139|      2|  return pspec;
 1140|      2|}
gparam.c:pool_depth_list_for_interface:
 1347|      2|{
 1348|      2|  GParamSpec *pspec = value;
 1349|      2|  gpointer *data = user_data;
 1350|      2|  GSList **slists = data[0];
 1351|      2|  GType owner_type = (GType) data[1];
 1352|      2|  GHashTable *ht = data[2];
 1353|      2|  int *count = data[3];
 1354|       |
 1355|      2|  if (pspec->owner_type == owner_type &&
  ------------------
  |  Branch (1355:7): [True: 0, False: 2]
  ------------------
 1356|      0|      should_list_pspec (pspec, owner_type, ht))
  ------------------
  |  Branch (1356:7): [True: 0, False: 0]
  ------------------
 1357|      0|    {
 1358|      0|      slists[0] = g_slist_prepend (slists[0], pspec);
 1359|      0|      *count = *count + 1;
 1360|      0|    }
 1361|      2|}
gparam.c:param_spec_generic_class_init:
 1441|     40|{
 1442|     40|  GParamSpecClass *class = g_class;
 1443|     40|  ParamSpecClassInfo *info = class_data;
 1444|       |
 1445|     40|  class->value_type = info->value_type;
 1446|     40|  if (info->finalize)
  ------------------
  |  Branch (1446:7): [True: 10, False: 30]
  ------------------
 1447|     10|    class->finalize = info->finalize;			/* optional */
 1448|     40|  class->value_set_default = info->value_set_default;
 1449|     40|  if (info->value_validate)
  ------------------
  |  Branch (1449:7): [True: 40, False: 0]
  ------------------
 1450|     40|    class->value_validate = info->value_validate;	/* optional */
 1451|     40|  class->values_cmp = info->values_cmp;
 1452|     40|  g_free (class_data);
 1453|     40|}

_g_param_spec_types_init:
 1378|      2|{
 1379|      2|  const guint n_types = 23;
 1380|      2|  GType type, *spec_types;
 1381|      2|#ifndef G_DISABLE_ASSERT
 1382|      2|  GType *spec_types_bound;
 1383|      2|#endif
 1384|       |
 1385|      2|  g_param_spec_types = g_new0 (GType, n_types);
  ------------------
  |  |  332|      2|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|      2|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      2|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      2|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      2|	  gpointer __p;						\
  |  |  |  |  264|      2|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  265|      2|	    __p = g_##func (__n);				\
  |  |  |  |  266|      2|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      2|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      2|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      2|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 2]
  |  |  |  |  |  Branch (267:26): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      2|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      2|	  else							\
  |  |  |  |  270|      2|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      2|	  __p;							\
  |  |  |  |  272|      2|	}))
  |  |  ------------------
  ------------------
 1386|      2|  spec_types = g_param_spec_types;
 1387|      2|#ifndef G_DISABLE_ASSERT
 1388|      2|  spec_types_bound = g_param_spec_types + n_types;
 1389|      2|#endif
 1390|       |  
 1391|       |  /* G_TYPE_PARAM_CHAR
 1392|       |   */
 1393|      2|  {
 1394|      2|    const GParamSpecTypeInfo pspec_info = {
 1395|      2|      sizeof (GParamSpecChar),	/* instance_size */
 1396|      2|      16,			/* n_preallocs */
 1397|      2|      param_char_init,		/* instance_init */
 1398|      2|      G_TYPE_CHAR,		/* value_type */
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1399|      2|      NULL,			/* finalize */
 1400|      2|      param_char_set_default,	/* value_set_default */
 1401|      2|      param_char_validate,	/* value_validate */
 1402|      2|      param_int_values_cmp,	/* values_cmp */
 1403|      2|    };
 1404|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamChar"), &pspec_info);
 1405|      2|    set_is_valid_vfunc (type, param_char_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1406|      2|    *spec_types++ = type;
 1407|      2|    g_assert (type == G_TYPE_PARAM_CHAR);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1408|      2|  }
 1409|       |  
 1410|       |  /* G_TYPE_PARAM_UCHAR
 1411|       |   */
 1412|      2|  {
 1413|      2|    const GParamSpecTypeInfo pspec_info = {
 1414|      2|      sizeof (GParamSpecUChar), /* instance_size */
 1415|      2|      16,                       /* n_preallocs */
 1416|      2|      param_uchar_init,         /* instance_init */
 1417|      2|      G_TYPE_UCHAR,		/* value_type */
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1418|      2|      NULL,			/* finalize */
 1419|      2|      param_uchar_set_default,	/* value_set_default */
 1420|      2|      param_uchar_validate,	/* value_validate */
 1421|      2|      param_uint_values_cmp,	/* values_cmp */
 1422|      2|    };
 1423|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamUChar"), &pspec_info);
 1424|      2|    set_is_valid_vfunc (type, param_uchar_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1425|      2|    *spec_types++ = type;
 1426|      2|    g_assert (type == G_TYPE_PARAM_UCHAR);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1427|      2|  }
 1428|       |  
 1429|       |  /* G_TYPE_PARAM_BOOLEAN
 1430|       |   */
 1431|      2|  {
 1432|      2|    const GParamSpecTypeInfo pspec_info = {
 1433|      2|      sizeof (GParamSpecBoolean), /* instance_size */
 1434|      2|      16,                         /* n_preallocs */
 1435|      2|      NULL,			  /* instance_init */
 1436|      2|      G_TYPE_BOOLEAN,             /* value_type */
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1437|      2|      NULL,                       /* finalize */
 1438|      2|      param_boolean_set_default,  /* value_set_default */
 1439|      2|      param_boolean_validate,     /* value_validate */
 1440|      2|      param_int_values_cmp,       /* values_cmp */
 1441|      2|    };
 1442|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamBoolean"), &pspec_info);
 1443|      2|    set_is_valid_vfunc (type, param_boolean_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1444|      2|    *spec_types++ = type;
 1445|      2|    g_assert (type == G_TYPE_PARAM_BOOLEAN);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1446|      2|  }
 1447|       |  
 1448|       |  /* G_TYPE_PARAM_INT
 1449|       |   */
 1450|      2|  {
 1451|      2|    const GParamSpecTypeInfo pspec_info = {
 1452|      2|      sizeof (GParamSpecInt),   /* instance_size */
 1453|      2|      16,                       /* n_preallocs */
 1454|      2|      param_int_init,           /* instance_init */
 1455|      2|      G_TYPE_INT,		/* value_type */
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1456|      2|      NULL,			/* finalize */
 1457|      2|      param_int_set_default,	/* value_set_default */
 1458|      2|      param_int_validate,	/* value_validate */
 1459|      2|      param_int_values_cmp,	/* values_cmp */
 1460|      2|    };
 1461|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamInt"), &pspec_info);
 1462|      2|    set_is_valid_vfunc (type, param_int_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1463|      2|    *spec_types++ = type;
 1464|      2|    g_assert (type == G_TYPE_PARAM_INT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1465|      2|  }
 1466|       |  
 1467|       |  /* G_TYPE_PARAM_UINT
 1468|       |   */
 1469|      2|  {
 1470|      2|    const GParamSpecTypeInfo pspec_info = {
 1471|      2|      sizeof (GParamSpecUInt),  /* instance_size */
 1472|      2|      16,                       /* n_preallocs */
 1473|      2|      param_uint_init,          /* instance_init */
 1474|      2|      G_TYPE_UINT,		/* value_type */
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1475|      2|      NULL,			/* finalize */
 1476|      2|      param_uint_set_default,	/* value_set_default */
 1477|      2|      param_uint_validate,	/* value_validate */
 1478|      2|      param_uint_values_cmp,	/* values_cmp */
 1479|      2|    };
 1480|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamUInt"), &pspec_info);
 1481|      2|    set_is_valid_vfunc (type, param_uint_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1482|      2|    *spec_types++ = type;
 1483|      2|    g_assert (type == G_TYPE_PARAM_UINT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1484|      2|  }
 1485|       |  
 1486|       |  /* G_TYPE_PARAM_LONG
 1487|       |   */
 1488|      2|  {
 1489|      2|    const GParamSpecTypeInfo pspec_info = {
 1490|      2|      sizeof (GParamSpecLong),  /* instance_size */
 1491|      2|      16,                       /* n_preallocs */
 1492|      2|      param_long_init,          /* instance_init */
 1493|      2|      G_TYPE_LONG,		/* value_type */
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1494|      2|      NULL,			/* finalize */
 1495|      2|      param_long_set_default,	/* value_set_default */
 1496|      2|      param_long_validate,	/* value_validate */
 1497|      2|      param_long_values_cmp,	/* values_cmp */
 1498|      2|    };
 1499|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamLong"), &pspec_info);
 1500|      2|    set_is_valid_vfunc (type, param_long_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1501|      2|    *spec_types++ = type;
 1502|      2|    g_assert (type == G_TYPE_PARAM_LONG);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1503|      2|  }
 1504|       |  
 1505|       |  /* G_TYPE_PARAM_ULONG
 1506|       |   */
 1507|      2|  {
 1508|      2|    const GParamSpecTypeInfo pspec_info = {
 1509|      2|      sizeof (GParamSpecULong), /* instance_size */
 1510|      2|      16,                       /* n_preallocs */
 1511|      2|      param_ulong_init,         /* instance_init */
 1512|      2|      G_TYPE_ULONG,		/* value_type */
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1513|      2|      NULL,			/* finalize */
 1514|      2|      param_ulong_set_default,	/* value_set_default */
 1515|      2|      param_ulong_validate,	/* value_validate */
 1516|      2|      param_ulong_values_cmp,	/* values_cmp */
 1517|      2|    };
 1518|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamULong"), &pspec_info);
 1519|      2|    set_is_valid_vfunc (type, param_ulong_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1520|      2|    *spec_types++ = type;
 1521|      2|    g_assert (type == G_TYPE_PARAM_ULONG);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1522|      2|  }
 1523|       |
 1524|       |  /* G_TYPE_PARAM_INT64
 1525|       |   */
 1526|      2|  {
 1527|      2|    const GParamSpecTypeInfo pspec_info = {
 1528|      2|      sizeof (GParamSpecInt64),  /* instance_size */
 1529|      2|      16,                       /* n_preallocs */
 1530|      2|      param_int64_init,         /* instance_init */
 1531|      2|      G_TYPE_INT64,		/* value_type */
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1532|      2|      NULL,			/* finalize */
 1533|      2|      param_int64_set_default,	/* value_set_default */
 1534|      2|      param_int64_validate,	/* value_validate */
 1535|      2|      param_int64_values_cmp,	/* values_cmp */
 1536|      2|    };
 1537|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamInt64"), &pspec_info);
 1538|      2|    set_is_valid_vfunc (type, param_int64_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1539|      2|    *spec_types++ = type;
 1540|      2|    g_assert (type == G_TYPE_PARAM_INT64);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1541|      2|  }
 1542|       |  
 1543|       |  /* G_TYPE_PARAM_UINT64
 1544|       |   */
 1545|      2|  {
 1546|      2|    const GParamSpecTypeInfo pspec_info = {
 1547|      2|      sizeof (GParamSpecUInt64), /* instance_size */
 1548|      2|      16,                       /* n_preallocs */
 1549|      2|      param_uint64_init,        /* instance_init */
 1550|      2|      G_TYPE_UINT64,		/* value_type */
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1551|      2|      NULL,			/* finalize */
 1552|      2|      param_uint64_set_default,	/* value_set_default */
 1553|      2|      param_uint64_validate,	/* value_validate */
 1554|      2|      param_uint64_values_cmp,	/* values_cmp */
 1555|      2|    };
 1556|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamUInt64"), &pspec_info);
 1557|      2|    set_is_valid_vfunc (type, param_uint64_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1558|      2|    *spec_types++ = type;
 1559|      2|    g_assert (type == G_TYPE_PARAM_UINT64);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1560|      2|  }
 1561|       |
 1562|       |  /* G_TYPE_PARAM_UNICHAR
 1563|       |   */
 1564|      2|  {
 1565|      2|    const GParamSpecTypeInfo pspec_info = {
 1566|      2|      sizeof (GParamSpecUnichar), /* instance_size */
 1567|      2|      16,                        /* n_preallocs */
 1568|      2|      param_unichar_init,	 /* instance_init */
 1569|      2|      G_TYPE_UINT,		 /* value_type */
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1570|      2|      NULL,			 /* finalize */
 1571|      2|      param_unichar_set_default, /* value_set_default */
 1572|      2|      param_unichar_validate,	 /* value_validate */
 1573|      2|      param_unichar_values_cmp,	 /* values_cmp */
 1574|      2|    };
 1575|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamUnichar"), &pspec_info);
 1576|      2|    set_is_valid_vfunc (type, param_unichar_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1577|      2|    *spec_types++ = type;
 1578|      2|    g_assert (type == G_TYPE_PARAM_UNICHAR);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1579|      2|  }
 1580|       |
 1581|       | /* G_TYPE_PARAM_ENUM
 1582|       |   */
 1583|      2|  {
 1584|      2|    const GParamSpecTypeInfo pspec_info = {
 1585|      2|      sizeof (GParamSpecEnum),  /* instance_size */
 1586|      2|      16,                       /* n_preallocs */
 1587|      2|      param_enum_init,          /* instance_init */
 1588|      2|      G_TYPE_ENUM,		/* value_type */
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1589|      2|      param_enum_finalize,	/* finalize */
 1590|      2|      param_enum_set_default,	/* value_set_default */
 1591|      2|      param_enum_validate,	/* value_validate */
 1592|      2|      param_long_values_cmp,	/* values_cmp */
 1593|      2|    };
 1594|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamEnum"), &pspec_info);
 1595|      2|    set_is_valid_vfunc (type, param_enum_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1596|      2|    *spec_types++ = type;
 1597|      2|    g_assert (type == G_TYPE_PARAM_ENUM);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1598|      2|  }
 1599|       |  
 1600|       |  /* G_TYPE_PARAM_FLAGS
 1601|       |   */
 1602|      2|  {
 1603|      2|    const GParamSpecTypeInfo pspec_info = {
 1604|      2|      sizeof (GParamSpecFlags),	/* instance_size */
 1605|      2|      16,			/* n_preallocs */
 1606|      2|      param_flags_init,		/* instance_init */
 1607|      2|      G_TYPE_FLAGS,		/* value_type */
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1608|      2|      param_flags_finalize,	/* finalize */
 1609|      2|      param_flags_set_default,	/* value_set_default */
 1610|      2|      param_flags_validate,	/* value_validate */
 1611|      2|      param_ulong_values_cmp,	/* values_cmp */
 1612|      2|    };
 1613|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamFlags"), &pspec_info);
 1614|      2|    set_is_valid_vfunc (type, param_flags_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1615|      2|    *spec_types++ = type;
 1616|      2|    g_assert (type == G_TYPE_PARAM_FLAGS);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1617|      2|  }
 1618|       |  
 1619|       |  /* G_TYPE_PARAM_FLOAT
 1620|       |   */
 1621|      2|  {
 1622|      2|    const GParamSpecTypeInfo pspec_info = {
 1623|      2|      sizeof (GParamSpecFloat), /* instance_size */
 1624|      2|      16,                       /* n_preallocs */
 1625|      2|      param_float_init,         /* instance_init */
 1626|      2|      G_TYPE_FLOAT,		/* value_type */
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1627|      2|      NULL,			/* finalize */
 1628|      2|      param_float_set_default,	/* value_set_default */
 1629|      2|      param_float_validate,	/* value_validate */
 1630|      2|      param_float_values_cmp,	/* values_cmp */
 1631|      2|    };
 1632|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamFloat"), &pspec_info);
 1633|      2|    set_is_valid_vfunc (type, param_float_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1634|      2|    *spec_types++ = type;
 1635|      2|    g_assert (type == G_TYPE_PARAM_FLOAT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1636|      2|  }
 1637|       |  
 1638|       |  /* G_TYPE_PARAM_DOUBLE
 1639|       |   */
 1640|      2|  {
 1641|      2|    const GParamSpecTypeInfo pspec_info = {
 1642|      2|      sizeof (GParamSpecDouble),	/* instance_size */
 1643|      2|      16,				/* n_preallocs */
 1644|      2|      param_double_init,		/* instance_init */
 1645|      2|      G_TYPE_DOUBLE,			/* value_type */
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1646|      2|      NULL,				/* finalize */
 1647|      2|      param_double_set_default,		/* value_set_default */
 1648|      2|      param_double_validate,		/* value_validate */
 1649|      2|      param_double_values_cmp,		/* values_cmp */
 1650|      2|    };
 1651|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamDouble"), &pspec_info);
 1652|      2|    set_is_valid_vfunc (type, param_double_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1653|      2|    *spec_types++ = type;
 1654|      2|    g_assert (type == G_TYPE_PARAM_DOUBLE);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1655|      2|  }
 1656|       |  
 1657|       |  /* G_TYPE_PARAM_STRING
 1658|       |   */
 1659|      2|  {
 1660|      2|    const GParamSpecTypeInfo pspec_info = {
 1661|      2|      sizeof (GParamSpecString),	/* instance_size */
 1662|      2|      16,				/* n_preallocs */
 1663|      2|      param_string_init,		/* instance_init */
 1664|      2|      G_TYPE_STRING,			/* value_type */
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1665|      2|      param_string_finalize,		/* finalize */
 1666|      2|      param_string_set_default,		/* value_set_default */
 1667|      2|      param_string_validate,		/* value_validate */
 1668|      2|      param_string_values_cmp,		/* values_cmp */
 1669|      2|    };
 1670|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamString"), &pspec_info);
 1671|      2|    set_is_valid_vfunc (type, param_string_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1672|      2|    *spec_types++ = type;
 1673|      2|    g_assert (type == G_TYPE_PARAM_STRING);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1674|      2|  }
 1675|       |  
 1676|       |  /* G_TYPE_PARAM_PARAM
 1677|       |   */
 1678|      2|  {
 1679|      2|    const GParamSpecTypeInfo pspec_info = {
 1680|      2|      sizeof (GParamSpecParam),	/* instance_size */
 1681|      2|      16,			/* n_preallocs */
 1682|      2|      param_param_init,		/* instance_init */
 1683|      2|      G_TYPE_PARAM,		/* value_type */
  ------------------
  |  |  183|      2|#define G_TYPE_PARAM			G_TYPE_MAKE_FUNDAMENTAL (19)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1684|      2|      NULL,			/* finalize */
 1685|      2|      param_param_set_default,	/* value_set_default */
 1686|      2|      param_param_validate,	/* value_validate */
 1687|      2|      param_pointer_values_cmp,	/* values_cmp */
 1688|      2|    };
 1689|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamParam"), &pspec_info);
 1690|      2|    set_is_valid_vfunc (type, param_param_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1691|      2|    *spec_types++ = type;
 1692|      2|    g_assert (type == G_TYPE_PARAM_PARAM);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1693|      2|  }
 1694|       |  
 1695|       |  /* G_TYPE_PARAM_BOXED
 1696|       |   */
 1697|      2|  {
 1698|      2|    const GParamSpecTypeInfo pspec_info = {
 1699|      2|      sizeof (GParamSpecBoxed),	/* instance_size */
 1700|      2|      4,			/* n_preallocs */
 1701|      2|      param_boxed_init,		/* instance_init */
 1702|      2|      G_TYPE_BOXED,		/* value_type */
  ------------------
  |  |  177|      2|#define G_TYPE_BOXED			G_TYPE_MAKE_FUNDAMENTAL (18)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1703|      2|      NULL,			/* finalize */
 1704|      2|      param_boxed_set_default,	/* value_set_default */
 1705|      2|      NULL,                   	/* value_validate */
 1706|      2|      param_boxed_values_cmp,	/* values_cmp */
 1707|      2|    };
 1708|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamBoxed"), &pspec_info);
 1709|      2|    *spec_types++ = type;
 1710|      2|    g_assert (type == G_TYPE_PARAM_BOXED);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1711|      2|  }
 1712|       |
 1713|       |  /* G_TYPE_PARAM_POINTER
 1714|       |   */
 1715|      2|  {
 1716|      2|    const GParamSpecTypeInfo pspec_info = {
 1717|      2|      sizeof (GParamSpecPointer),  /* instance_size */
 1718|      2|      0,                           /* n_preallocs */
 1719|      2|      param_pointer_init,	   /* instance_init */
 1720|      2|      G_TYPE_POINTER,  		   /* value_type */
  ------------------
  |  |  171|      2|#define G_TYPE_POINTER			G_TYPE_MAKE_FUNDAMENTAL (17)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1721|      2|      NULL,			   /* finalize */
 1722|      2|      param_pointer_set_default,   /* value_set_default */
 1723|      2|      NULL,
 1724|      2|      param_pointer_values_cmp,	   /* values_cmp */
 1725|      2|    };
 1726|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamPointer"), &pspec_info);
 1727|      2|    *spec_types++ = type;
 1728|      2|    g_assert (type == G_TYPE_PARAM_POINTER);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1729|      2|  }
 1730|       |  
 1731|       |  /* G_TYPE_PARAM_VALUE_ARRAY
 1732|       |   */
 1733|      2|  {
 1734|      2|    /* const */ GParamSpecTypeInfo pspec_info = {
 1735|      2|      sizeof (GParamSpecValueArray),	/* instance_size */
 1736|      2|      0,				/* n_preallocs */
 1737|      2|      param_value_array_init,		/* instance_init */
 1738|      2|      0xdeadbeef,			/* value_type, assigned further down */
 1739|      2|      param_value_array_finalize,	/* finalize */
 1740|      2|      param_value_array_set_default,	/* value_set_default */
 1741|      2|      param_value_array_validate,	/* value_validate */
 1742|      2|      param_value_array_values_cmp,	/* values_cmp */
 1743|      2|    };
 1744|      2|    pspec_info.value_type = G_TYPE_VALUE_ARRAY;
  ------------------
  |  |   40|      2|#define G_TYPE_VALUE_ARRAY (g_value_array_get_type ()) GOBJECT_DEPRECATED_MACRO_IN_2_32_FOR(G_TYPE_ARRAY)
  ------------------
 1745|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamValueArray"), &pspec_info);
 1746|      2|    *spec_types++ = type;
 1747|      2|    g_assert (type == G_TYPE_PARAM_VALUE_ARRAY);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1748|      2|  }
 1749|       |
 1750|       |  /* G_TYPE_PARAM_OBJECT
 1751|       |   */
 1752|      2|  {
 1753|      2|    const GParamSpecTypeInfo pspec_info = {
 1754|      2|      sizeof (GParamSpecObject), /* instance_size */
 1755|      2|      16,                        /* n_preallocs */
 1756|      2|      param_object_init,	 /* instance_init */
 1757|      2|      G_TYPE_OBJECT,		 /* value_type */
  ------------------
  |  |  189|      2|#define G_TYPE_OBJECT			G_TYPE_MAKE_FUNDAMENTAL (20)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1758|      2|      NULL,			 /* finalize */
 1759|      2|      param_object_set_default,	 /* value_set_default */
 1760|      2|      param_object_validate,	 /* value_validate */
 1761|      2|      param_object_values_cmp,	 /* values_cmp */
 1762|      2|    };
 1763|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamObject"), &pspec_info);
 1764|      2|    set_is_valid_vfunc (type, param_object_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1765|      2|    *spec_types++ = type;
 1766|      2|    g_assert (type == G_TYPE_PARAM_OBJECT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1767|      2|  }
 1768|       |
 1769|       |  /* G_TYPE_PARAM_OVERRIDE
 1770|       |   */
 1771|      2|  {
 1772|      2|    const GParamSpecTypeInfo pspec_info = {
 1773|      2|      sizeof (GParamSpecOverride), /* instance_size */
 1774|      2|      16,                        /* n_preallocs */
 1775|      2|      param_override_init,	 /* instance_init */
 1776|      2|      G_TYPE_NONE,		 /* value_type */
  ------------------
  |  |   72|      2|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1777|      2|      param_override_finalize,	 /* finalize */
 1778|      2|      param_override_set_default, /* value_set_default */
 1779|      2|      param_override_validate,	  /* value_validate */
 1780|      2|      param_override_values_cmp,  /* values_cmp */
 1781|      2|    };
 1782|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamOverride"), &pspec_info);
 1783|      2|    set_is_valid_vfunc (type, param_override_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1784|      2|    *spec_types++ = type;
 1785|      2|    g_assert (type == G_TYPE_PARAM_OVERRIDE);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1786|      2|  }
 1787|       |
 1788|       |  /* G_TYPE_PARAM_GTYPE
 1789|       |   */
 1790|      2|  {
 1791|      2|    GParamSpecTypeInfo pspec_info = {
 1792|      2|      sizeof (GParamSpecGType),	/* instance_size */
 1793|      2|      0,			/* n_preallocs */
 1794|      2|      param_gtype_init,		/* instance_init */
 1795|      2|      0xdeadbeef,		/* value_type, assigned further down */
 1796|      2|      NULL,			/* finalize */
 1797|      2|      param_gtype_set_default,	/* value_set_default */
 1798|      2|      param_gtype_validate,	/* value_validate */
 1799|      2|      param_gtype_values_cmp,	/* values_cmp */
 1800|      2|    };
 1801|      2|    pspec_info.value_type = G_TYPE_GTYPE;
  ------------------
  |  |  168|      2|#define	G_TYPE_GTYPE			 (g_gtype_get_type())
  ------------------
 1802|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamGType"), &pspec_info);
 1803|      2|    set_is_valid_vfunc (type, param_gtype_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1804|      2|    *spec_types++ = type;
 1805|      2|    g_assert (type == G_TYPE_PARAM_GTYPE);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1806|      2|  }
 1807|       |
 1808|       |  /* G_TYPE_PARAM_VARIANT
 1809|       |   */
 1810|      2|  {
 1811|      2|    const GParamSpecTypeInfo pspec_info = {
 1812|      2|      sizeof (GParamSpecVariant), /* instance_size */
 1813|      2|      0,                          /* n_preallocs */
 1814|      2|      param_variant_init,         /* instance_init */
 1815|      2|      G_TYPE_VARIANT,             /* value_type */
  ------------------
  |  |  207|      2|#define	G_TYPE_VARIANT                  G_TYPE_MAKE_FUNDAMENTAL (21)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1816|      2|      param_variant_finalize,     /* finalize */
 1817|      2|      param_variant_set_default,  /* value_set_default */
 1818|      2|      param_variant_validate,     /* value_validate */
 1819|      2|      param_variant_values_cmp,   /* values_cmp */
 1820|      2|    };
 1821|      2|    type = g_param_type_register_static (g_intern_static_string ("GParamVariant"), &pspec_info);
 1822|      2|    set_is_valid_vfunc (type, param_variant_is_valid);
  ------------------
  |  | 1368|      2|#define set_is_valid_vfunc(type,func) { \
  |  | 1369|      2|  GParamSpecClass *class = g_type_class_ref (type); \
  |  | 1370|      2|  class->value_is_valid = func; \
  |  | 1371|      2|  g_type_class_unref (class); \
  |  | 1372|      2|}
  ------------------
 1823|      2|    *spec_types++ = type;
 1824|      2|    g_assert (type == G_TYPE_PARAM_VARIANT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1825|      2|  }
 1826|       |
 1827|      2|  g_assert (spec_types == spec_types_bound);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1828|      2|}
g_param_spec_object:
 2662|      1|{
 2663|      1|  GParamSpecObject *ospec;
 2664|       |  
 2665|      1|  g_return_val_if_fail (g_type_is_a (object_type, G_TYPE_OBJECT), NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2666|       |  
 2667|      1|  ospec = g_param_spec_internal (G_TYPE_PARAM_OBJECT,
  ------------------
  |  |  484|      1|#define	G_TYPE_PARAM_OBJECT		   (g_param_spec_types[19])
  ------------------
 2668|      1|				 name,
 2669|      1|				 nick,
 2670|      1|				 blurb,
 2671|      1|				 flags);
 2672|       |
 2673|      1|  G_PARAM_SPEC (ospec)->value_type = object_type;
  ------------------
  |  |   47|      1|#define G_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
  |  |  ------------------
  |  |  |  |  528|      1|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|      1|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2674|       |  
 2675|      1|  return G_PARAM_SPEC (ospec);
  ------------------
  |  |   47|      1|#define G_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
  |  |  ------------------
  |  |  |  |  528|      1|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|      1|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2676|      1|}
gparamspecs.c:param_object_init:
 1103|      1|{
 1104|       |  /* GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec); */
 1105|      1|}
gparamspecs.c:param_object_set_default:
 1110|      1|{
 1111|       |  value->data[0].v_pointer = NULL;
 1112|      1|}
gparamspecs.c:param_object_validate:
 1128|    896|{
 1129|    896|  GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec);
  ------------------
  |  |  500|    896|#define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
  |  |  ------------------
  |  |  |  |  528|    896|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    896|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1130|    896|  GObject *object = value->data[0].v_pointer;
 1131|    896|  guint changed = 0;
 1132|       |  
 1133|    896|  if (object && !g_value_type_compatible (G_OBJECT_TYPE (object), G_PARAM_SPEC_VALUE_TYPE (ospec)))
  ------------------
  |  |   98|      0|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  ------------------
  |  |  |  |  646|      0|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                if (object && !g_value_type_compatible (G_OBJECT_TYPE (object), G_PARAM_SPEC_VALUE_TYPE (ospec)))
  ------------------
  |  |  105|      0|#define	G_PARAM_SPEC_VALUE_TYPE(pspec)	(G_PARAM_SPEC (pspec)->value_type)
  |  |  ------------------
  |  |  |  |   47|      0|#define G_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
  |  |  |  |  ------------------
  |  |  |  |  |  |  528|      0|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 2656|      0|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1133:7): [True: 0, False: 896]
  |  Branch (1133:17): [True: 0, False: 0]
  ------------------
 1134|      0|    {
 1135|      0|      g_object_unref (object);
 1136|      0|      value->data[0].v_pointer = NULL;
 1137|      0|      changed++;
 1138|      0|    }
 1139|       |  
 1140|    896|  return changed;
 1141|    896|}
gparamspecs.c:param_object_is_valid:
 1117|    896|{
 1118|    896|  GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec);
  ------------------
  |  |  500|    896|#define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
  |  |  ------------------
  |  |  |  |  528|    896|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    896|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1119|    896|  GObject *object = value->data[0].v_pointer;
 1120|       |
 1121|    896|  return object &&
  ------------------
  |  Branch (1121:10): [True: 0, False: 896]
  ------------------
 1122|      0|         g_value_type_compatible (G_OBJECT_TYPE (object), G_PARAM_SPEC_VALUE_TYPE (ospec));
  ------------------
  |  |   98|      0|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  ------------------
  |  |  |  |  646|      0|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                       g_value_type_compatible (G_OBJECT_TYPE (object), G_PARAM_SPEC_VALUE_TYPE (ospec));
  ------------------
  |  |  105|      0|#define	G_PARAM_SPEC_VALUE_TYPE(pspec)	(G_PARAM_SPEC (pspec)->value_type)
  |  |  ------------------
  |  |  |  |   47|      0|#define G_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
  |  |  |  |  ------------------
  |  |  |  |  |  |  528|      0|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 2656|      0|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1122:10): [True: 0, False: 0]
  ------------------
 1123|    896|}

g_signal_is_valid_name:
  295|      1|{
  296|       |  /* FIXME: We allow this, against our own documentation (the leading `-` is
  297|       |   * invalid), because GTK has historically used this. */
  298|      1|  if (g_str_equal (name, "-gtk-private-changed"))
  ------------------
  |  |  175|      1|#define g_str_equal(v1, v2) (strcmp ((const char *) (v1), (const char *) (v2)) == 0)
  |  |  ------------------
  |  |  |  Branch (175:29): [True: 0, False: 1]
  |  |  ------------------
  ------------------
  299|      0|    return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  300|       |
  301|      1|  return g_param_spec_is_valid_name (name);
  302|      1|}
_g_signal_init:
  827|      2|{
  828|      2|  SIGNAL_LOCK ();
  ------------------
  |  |  237|      2|#define	SIGNAL_LOCK()		G_LOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  137|      2|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      2|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  829|      2|  if (!g_n_signal_nodes)
  ------------------
  |  Branch (829:7): [True: 2, False: 0]
  ------------------
  830|      2|    {
  831|       |      /* setup handler list binary searchable array hash table (in german, that'd be one word ;) */
  832|      2|      g_handler_list_bsa_ht = g_hash_table_new (g_direct_hash, NULL);
  833|      2|      g_signal_key_bsa = g_bsearch_array_create (&g_signal_key_bconfig);
  834|       |      
  835|       |      /* invalid (0) signal_id */
  836|      2|      g_n_signal_nodes = 1;
  837|      2|      g_signal_nodes = g_renew (SignalNode*, g_signal_nodes, g_n_signal_nodes);
  ------------------
  |  |  346|      2|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|      2|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|      2|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|      2|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|      2|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|      2|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  279|      2|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|      2|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  281|      2|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      2|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      2|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 2]
  |  |  |  |  |  Branch (281:26): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|      2|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|      2|	  else							\
  |  |  |  |  284|      2|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|      2|	  __p;							\
  |  |  |  |  286|      2|	}))
  |  |  ------------------
  ------------------
  838|      2|      g_signal_nodes[0] = NULL;
  839|      2|      g_handlers = g_hash_table_new (handler_hash, handler_equal);
  840|      2|    }
  841|      2|  SIGNAL_UNLOCK ();
  ------------------
  |  |  238|      2|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|      2|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      2|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  842|      2|}
g_signal_new:
 1410|      1|{
 1411|      1|  va_list args;
 1412|      1|  guint signal_id;
 1413|       |
 1414|      1|  g_return_val_if_fail (signal_name != NULL, 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1415|       |  
 1416|      1|  va_start (args, n_params);
 1417|       |
 1418|      1|  signal_id = g_signal_new_valist (signal_name, itype, signal_flags,
 1419|      1|                                   class_offset ? g_signal_type_cclosure_new (itype, class_offset) : NULL,
  ------------------
  |  Branch (1419:36): [True: 1, False: 0]
  ------------------
 1420|      1|				   accumulator, accu_data, c_marshaller,
 1421|      1|                                   return_type, n_params, args);
 1422|       |
 1423|      1|  va_end (args);
 1424|       |
 1425|      1|  return signal_id;
 1426|      1|}
g_signal_newv:
 1607|      1|{
 1608|      1|  const gchar *name;
 1609|      1|  gchar *signal_name_copy = NULL;
 1610|      1|  guint signal_id, i;
 1611|      1|  SignalNode *node;
 1612|      1|  GSignalCMarshaller builtin_c_marshaller;
 1613|      1|  GSignalCVaMarshaller builtin_va_marshaller;
 1614|      1|  GSignalCVaMarshaller va_marshaller;
 1615|       |  
 1616|      1|  g_return_val_if_fail (signal_name != NULL, 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1617|      1|  g_return_val_if_fail (g_signal_is_valid_name (signal_name), 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1618|      1|  g_return_val_if_fail (G_TYPE_IS_INSTANTIATABLE (itype) || G_TYPE_IS_INTERFACE (itype), 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1619|      1|  if (n_params)
  ------------------
  |  Branch (1619:7): [True: 1, False: 0]
  ------------------
 1620|      1|    g_return_val_if_fail (param_types != NULL, 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1621|      1|  g_return_val_if_fail ((return_type & G_SIGNAL_TYPE_STATIC_SCOPE) == 0, 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1622|      1|  if (return_type == (G_TYPE_NONE & ~G_SIGNAL_TYPE_STATIC_SCOPE))
  ------------------
  |  |   72|      1|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      1|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                if (return_type == (G_TYPE_NONE & ~G_SIGNAL_TYPE_STATIC_SCOPE))
  ------------------
  |  |  224|      1|#define	G_SIGNAL_TYPE_STATIC_SCOPE (G_TYPE_FLAG_RESERVED_ID_BIT)
  |  |  ------------------
  |  |  |  | 2711|      1|#define	G_TYPE_FLAG_RESERVED_ID_BIT	((GType) (1 << 0))
  |  |  ------------------
  ------------------
  |  Branch (1622:7): [True: 1, False: 0]
  ------------------
 1623|      1|    g_return_val_if_fail (accumulator == NULL, 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1624|      1|  if (!accumulator)
  ------------------
  |  Branch (1624:7): [True: 1, False: 0]
  ------------------
 1625|      1|    g_return_val_if_fail (accu_data == NULL, 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1626|      1|  g_return_val_if_fail ((signal_flags & G_SIGNAL_ACCUMULATOR_FIRST_RUN) == 0, 0);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1627|       |
 1628|      1|  if (!is_canonical (signal_name))
  ------------------
  |  Branch (1628:7): [True: 0, False: 1]
  ------------------
 1629|      0|    {
 1630|      0|      signal_name_copy = g_strdup (signal_name);
  ------------------
  |  |  324|      0|#define g_strdup(x) g_strdup_inline (x)
  ------------------
 1631|      0|      canonicalize_key (signal_name_copy);
 1632|      0|      name = signal_name_copy;
 1633|      0|    }
 1634|      1|  else
 1635|      1|    {
 1636|      1|      name = signal_name;
 1637|      1|    }
 1638|       |  
 1639|      1|  SIGNAL_LOCK ();
  ------------------
  |  |  237|      1|#define	SIGNAL_LOCK()		G_LOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  137|      1|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      1|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1640|       |  
 1641|      1|  signal_id = signal_id_lookup (name, itype);
 1642|      1|  node = LOOKUP_SIGNAL_NODE (signal_id);
 1643|      1|  if (node && !node->destroyed)
  ------------------
  |  Branch (1643:7): [True: 0, False: 1]
  |  Branch (1643:15): [True: 0, False: 0]
  ------------------
 1644|      0|    {
 1645|      0|      g_critical (G_STRLOC ": signal \"%s\" already exists in the '%s' %s",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  |  |  ------------------
  |  |  |  Branch (361:32): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1646|      0|                  name,
 1647|      0|                  type_debug_name (node->itype),
 1648|      0|                  G_TYPE_IS_INTERFACE (node->itype) ? "interface" : "class ancestry");
 1649|      0|      g_free (signal_name_copy);
 1650|      0|      SIGNAL_UNLOCK ();
  ------------------
  |  |  238|      0|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|      0|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      0|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1651|      0|      return 0;
 1652|      0|    }
 1653|      1|  if (node && node->itype != itype)
  ------------------
  |  Branch (1653:7): [True: 0, False: 1]
  |  Branch (1653:15): [True: 0, False: 0]
  ------------------
 1654|      0|    {
 1655|      0|      g_critical (G_STRLOC ": signal \"%s\" for type '%s' was previously created for type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1656|      0|                  name,
 1657|      0|                  type_debug_name (itype),
 1658|      0|                  type_debug_name (node->itype));
 1659|      0|      g_free (signal_name_copy);
 1660|      0|      SIGNAL_UNLOCK ();
  ------------------
  |  |  238|      0|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|      0|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      0|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1661|      0|      return 0;
 1662|      0|    }
 1663|      2|  for (i = 0; i < n_params; i++)
  ------------------
  |  Branch (1663:15): [True: 1, False: 1]
  ------------------
 1664|      1|    if (!G_TYPE_IS_VALUE (param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE))
  ------------------
  |  |   44|      1|#define	G_TYPE_IS_VALUE(type)		(g_type_check_is_value_type (type))
  ------------------
  |  Branch (1664:9): [True: 0, False: 1]
  ------------------
 1665|      0|      {
 1666|      0|	g_critical (G_STRLOC ": parameter %d of type '%s' for signal \"%s::%s\" is not a value type",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1667|      0|		    i + 1, type_debug_name (param_types[i]), type_debug_name (itype), name);
 1668|      0|	g_free (signal_name_copy);
 1669|      0|	SIGNAL_UNLOCK ();
  ------------------
  |  |  238|      0|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|      0|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      0|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1670|      0|	return 0;
 1671|      0|      }
 1672|      1|  if (return_type != G_TYPE_NONE && !G_TYPE_IS_VALUE (return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE))
  ------------------
  |  |   72|      1|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                if (return_type != G_TYPE_NONE && !G_TYPE_IS_VALUE (return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE))
  ------------------
  |  |   44|      0|#define	G_TYPE_IS_VALUE(type)		(g_type_check_is_value_type (type))
  ------------------
  |  Branch (1672:7): [True: 0, False: 1]
  |  Branch (1672:37): [True: 0, False: 0]
  ------------------
 1673|      0|    {
 1674|      0|      g_critical (G_STRLOC ": return value of type '%s' for signal \"%s::%s\" is not a value type",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1675|      0|		  type_debug_name (return_type), type_debug_name (itype), name);
 1676|      0|      g_free (signal_name_copy);
 1677|      0|      SIGNAL_UNLOCK ();
  ------------------
  |  |  238|      0|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|      0|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      0|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1678|      0|      return 0;
 1679|      0|    }
 1680|       |  
 1681|       |  /* setup permanent portion of signal node */
 1682|      1|  if (!node)
  ------------------
  |  Branch (1682:7): [True: 1, False: 0]
  ------------------
 1683|      1|    {
 1684|      1|      SignalKey key;
 1685|       |      
 1686|      1|      signal_id = g_n_signal_nodes++;
 1687|      1|      node = g_new (SignalNode, 1);
  ------------------
  |  |  315|      1|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      1|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      1|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      1|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      1|	  gpointer __p;						\
  |  |  |  |  264|      1|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  265|      1|	    __p = g_##func (__n);				\
  |  |  |  |  266|      1|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      1|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      1|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      1|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 1]
  |  |  |  |  |  Branch (267:26): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      1|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      1|	  else							\
  |  |  |  |  270|      1|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      1|	  __p;							\
  |  |  |  |  272|      1|	}))
  |  |  ------------------
  ------------------
 1688|      1|      node->signal_id = signal_id;
 1689|      1|      g_signal_nodes = g_renew (SignalNode*, g_signal_nodes, g_n_signal_nodes);
  ------------------
  |  |  346|      1|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|      1|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|      1|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|      1|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|      1|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|      1|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  279|      1|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|      1|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  281|      1|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|      1|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|      1|	  else							\
  |  |  |  |  284|      1|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|      1|	  __p;							\
  |  |  |  |  286|      1|	}))
  |  |  ------------------
  ------------------
 1690|      1|      g_signal_nodes[signal_id] = node;
 1691|      1|      node->itype = itype;
 1692|      1|      key.itype = itype;
 1693|      1|      key.signal_id = signal_id;
 1694|      1|      node->name = g_intern_string (name);
 1695|      1|      key.quark = g_quark_from_string (name);
 1696|      1|      g_signal_key_bsa = g_bsearch_array_insert (g_signal_key_bsa, &g_signal_key_bconfig, &key);
 1697|       |
 1698|      1|      TRACE(GOBJECT_SIGNAL_NEW(signal_id, name, itype));
 1699|      1|    }
 1700|      1|  node->destroyed = FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
 1701|       |
 1702|       |  /* setup reinitializable portion */
 1703|      1|  node->single_va_closure_is_valid = FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
 1704|      1|  node->flags = signal_flags & G_SIGNAL_FLAGS_MASK;
  ------------------
  |  |  157|      1|#define G_SIGNAL_FLAGS_MASK  0x1ff
  ------------------
 1705|      1|  node->n_params = n_params;
 1706|      1|  node->param_types = g_memdup2 (param_types, sizeof (GType) * n_params);
 1707|      1|  node->return_type = return_type;
 1708|      1|  node->class_closure_bsa = NULL;
 1709|      1|  if (accumulator)
  ------------------
  |  Branch (1709:7): [True: 0, False: 1]
  ------------------
 1710|      0|    {
 1711|      0|      node->accumulator = g_new (SignalAccumulator, 1);
  ------------------
  |  |  315|      0|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      0|	  gpointer __p;						\
  |  |  |  |  264|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|      0|	    __p = g_##func (__n);				\
  |  |  |  |  266|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      0|	  __p;							\
  |  |  |  |  272|      0|	}))
  |  |  ------------------
  ------------------
 1712|      0|      node->accumulator->func = accumulator;
 1713|      0|      node->accumulator->data = accu_data;
 1714|      0|    }
 1715|      1|  else
 1716|      1|    node->accumulator = NULL;
 1717|       |
 1718|      1|  builtin_c_marshaller = NULL;
 1719|      1|  builtin_va_marshaller = NULL;
 1720|       |
 1721|       |  /* Pick up built-in va marshallers for standard types, and
 1722|       |     instead of generic marshaller if no marshaller specified */
 1723|      1|  if (n_params == 0 && return_type == G_TYPE_NONE)
  ------------------
  |  |   72|      0|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      0|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      0|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1723:7): [True: 0, False: 1]
  |  Branch (1723:24): [True: 0, False: 0]
  ------------------
 1724|      0|    {
 1725|      0|      builtin_c_marshaller = g_cclosure_marshal_VOID__VOID;
 1726|      0|      builtin_va_marshaller = g_cclosure_marshal_VOID__VOIDv;
 1727|      0|    }
 1728|      1|  else if (n_params == 1 && return_type == G_TYPE_NONE)
  ------------------
  |  |   72|      1|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      1|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1728:12): [True: 1, False: 0]
  |  Branch (1728:29): [True: 1, False: 0]
  ------------------
 1729|      1|    {
 1730|      1|#define ADD_CHECK(__type__) \
 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
 1732|      1|	{                                                                \
 1733|      1|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
 1734|      1|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
 1735|      1|	}
 1736|       |
 1737|      1|      if (0) {}
  ------------------
  |  Branch (1737:11): [Folded, False: 1]
  ------------------
 1738|      1|      ADD_CHECK (BOOLEAN)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1739|      1|      ADD_CHECK (CHAR)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1740|      1|      ADD_CHECK (UCHAR)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1741|      1|      ADD_CHECK (INT)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1742|      1|      ADD_CHECK (UINT)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1743|      1|      ADD_CHECK (LONG)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1744|      1|      ADD_CHECK (ULONG)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1745|      1|      ADD_CHECK (ENUM)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1746|      1|      ADD_CHECK (FLAGS)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1747|      1|      ADD_CHECK (FLOAT)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1748|      1|      ADD_CHECK (DOUBLE)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1749|      1|      ADD_CHECK (STRING)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 1]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1750|      1|      ADD_CHECK (PARAM)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      1|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 1, False: 0]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      1|	{                                                                \
  |  | 1733|      1|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      1|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      1|	}
  ------------------
 1751|      1|      ADD_CHECK (BOXED)
  ------------------
  |  | 1731|      1|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      0|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 0]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      0|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1752|      0|      ADD_CHECK (POINTER)
  ------------------
  |  | 1731|      0|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      0|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 0]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      0|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1753|      0|      ADD_CHECK (OBJECT)
  ------------------
  |  | 1731|      0|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      0|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 0]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      0|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1754|      0|      ADD_CHECK (VARIANT)
  ------------------
  |  | 1731|      0|      else if (g_type_is_a (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_ ##__type__))         \
  |  |  ------------------
  |  |  |  |  760|      0|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (760:27): [True: 0, False: 0]
  |  |  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1732|      0|	{                                                                \
  |  | 1733|      0|	  builtin_c_marshaller = g_cclosure_marshal_VOID__ ## __type__;  \
  |  | 1734|      0|	  builtin_va_marshaller = g_cclosure_marshal_VOID__ ## __type__ ##v;     \
  |  | 1735|      0|	}
  ------------------
 1755|      1|    }
 1756|       |
 1757|      1|  if (c_marshaller == NULL)
  ------------------
  |  Branch (1757:7): [True: 1, False: 0]
  ------------------
 1758|      1|    {
 1759|      1|      if (builtin_c_marshaller)
  ------------------
  |  Branch (1759:11): [True: 1, False: 0]
  ------------------
 1760|      1|        {
 1761|      1|	  c_marshaller = builtin_c_marshaller;
 1762|      1|          va_marshaller = builtin_va_marshaller;
 1763|      1|        }
 1764|      0|      else
 1765|      0|	{
 1766|      0|	  c_marshaller = g_cclosure_marshal_generic;
 1767|      0|	  va_marshaller = g_cclosure_marshal_generic_va;
 1768|      0|	}
 1769|      1|    }
 1770|      0|  else
 1771|      0|    va_marshaller = NULL;
 1772|       |
 1773|      1|  node->c_marshaller = c_marshaller;
 1774|      1|  node->va_marshaller = va_marshaller;
 1775|      1|  node->emission_hooks = NULL;
 1776|      1|  if (class_closure)
  ------------------
  |  Branch (1776:7): [True: 1, False: 0]
  ------------------
 1777|      1|    signal_add_class_closure (node, 0, class_closure);
 1778|       |
 1779|      1|  SIGNAL_UNLOCK ();
  ------------------
  |  |  238|      1|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|      1|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|      1|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1780|       |
 1781|      1|  g_free (signal_name_copy);
 1782|       |
 1783|      1|  return signal_id;
 1784|      1|}
g_signal_new_valist:
 1866|      1|{
 1867|       |  /* Somewhat arbitrarily reserve 200 bytes. That should cover the majority
 1868|       |   * of cases where n_params is small and still be small enough for what we
 1869|       |   * want to put on the stack. */
 1870|      1|  GType param_types_stack[200 / sizeof (GType)];
 1871|      1|  GType *param_types_heap = NULL;
 1872|      1|  GType *param_types;
 1873|      1|  guint i;
 1874|      1|  guint signal_id;
 1875|       |
 1876|      1|  param_types = param_types_stack;
 1877|      1|  if (n_params > 0)
  ------------------
  |  Branch (1877:7): [True: 1, False: 0]
  ------------------
 1878|      1|    {
 1879|      1|      if (G_UNLIKELY (n_params > G_N_ELEMENTS (param_types_stack)))
  ------------------
  |  | 1245|      1|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 1]
  |  |  ------------------
  ------------------
 1880|      0|        {
 1881|      0|          param_types_heap = g_new (GType, n_params);
  ------------------
  |  |  315|      0|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      0|	  gpointer __p;						\
  |  |  |  |  264|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|      0|	    __p = g_##func (__n);				\
  |  |  |  |  266|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      0|	  __p;							\
  |  |  |  |  272|      0|	}))
  |  |  ------------------
  ------------------
 1882|      0|          param_types = param_types_heap;
 1883|      0|        }
 1884|       |
 1885|      2|      for (i = 0; i < n_params; i++)
  ------------------
  |  Branch (1885:19): [True: 1, False: 1]
  ------------------
 1886|      1|        param_types[i] = va_arg (args, GType);
 1887|      1|    }
 1888|       |
 1889|      1|  signal_id = g_signal_newv (signal_name, itype, signal_flags,
 1890|      1|                             class_closure, accumulator, accu_data, c_marshaller,
 1891|      1|                             return_type, n_params, param_types);
 1892|      1|  g_free (param_types_heap);
 1893|       |
 1894|      1|  return signal_id;
 1895|      1|}
g_signal_handlers_destroy:
 2724|  5.12k|{
 2725|  5.12k|  GBSearchArray *hlbsa;
 2726|       |  
 2727|  5.12k|  g_return_if_fail (G_TYPE_CHECK_INSTANCE (instance));
  ------------------
  |  |  650|  5.12k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.12k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  5.12k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.12k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.12k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.12k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.12k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.12k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  5.12k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.12k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.12k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.12k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.12k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.12k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.12k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  5.12k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.12k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.12k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.12k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.12k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  5.12k|      { } \
  |  |  653|  5.12k|    else \
  |  |  654|  5.12k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  5.12k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.12k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.12k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2728|       |  
 2729|  5.12k|  SIGNAL_LOCK ();
  ------------------
  |  |  237|  5.12k|#define	SIGNAL_LOCK()		G_LOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  137|  5.12k|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|  5.12k|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2730|  5.12k|  hlbsa = g_hash_table_lookup (g_handler_list_bsa_ht, instance);
 2731|  5.12k|  if (hlbsa)
  ------------------
  |  Branch (2731:7): [True: 0, False: 5.12k]
  ------------------
 2732|      0|    {
 2733|      0|      guint i;
 2734|       |      
 2735|       |      /* reentrancy caution, delete instance trace first */
 2736|      0|      g_hash_table_remove (g_handler_list_bsa_ht, instance);
 2737|       |      
 2738|      0|      for (i = 0; i < hlbsa->n_nodes; i++)
  ------------------
  |  Branch (2738:19): [True: 0, False: 0]
  ------------------
 2739|      0|        {
 2740|      0|          HandlerList *hlist = g_bsearch_array_get_nth (hlbsa, &g_signal_hlbsa_bconfig, i);
 2741|      0|          Handler *handler = hlist->handlers;
 2742|       |	  
 2743|      0|          while (handler)
  ------------------
  |  Branch (2743:18): [True: 0, False: 0]
  ------------------
 2744|      0|            {
 2745|      0|              Handler *tmp = handler;
 2746|       |	      
 2747|      0|              handler = tmp->next;
 2748|      0|              tmp->block_count = 1;
 2749|       |              /* cruel unlink, this works because _all_ handlers vanish */
 2750|      0|              tmp->next = NULL;
 2751|      0|              tmp->prev = tmp;
 2752|      0|              if (tmp->sequential_number)
  ------------------
  |  Branch (2752:19): [True: 0, False: 0]
  ------------------
 2753|      0|		{
 2754|      0|                  g_hash_table_remove (g_handlers, tmp);
 2755|      0|		  remove_invalid_closure_notify (tmp, instance);
 2756|      0|		  tmp->sequential_number = 0;
 2757|      0|		  handler_unref_R (0, NULL, tmp);
 2758|      0|		}
 2759|      0|            }
 2760|      0|        }
 2761|      0|      g_bsearch_array_free (hlbsa, &g_signal_hlbsa_bconfig);
 2762|      0|    }
 2763|  5.12k|  SIGNAL_UNLOCK ();
  ------------------
  |  |  238|  5.12k|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|  5.12k|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|  5.12k|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2764|  5.12k|}
gsignal.c:LOOKUP_SIGNAL_NODE:
  247|      1|{
  248|      1|  if (signal_id < g_n_signal_nodes)
  ------------------
  |  Branch (248:7): [True: 1, False: 0]
  ------------------
  249|      1|    return g_signal_nodes[signal_id];
  250|      0|  else
  251|      0|    return NULL;
  252|      1|}
gsignal.c:signal_id_lookup:
  307|      1|{
  308|      1|  GQuark quark;
  309|      1|  GType *ifaces, type = itype;
  310|      1|  SignalKey key;
  311|      1|  guint n_ifaces;
  312|       |
  313|      1|  quark = g_quark_try_string (name);
  314|      1|  key.quark = quark;
  315|       |
  316|       |  /* try looking up signals for this type and its ancestors */
  317|      1|  do
  318|      1|    {
  319|      1|      SignalKey *signal_key;
  320|       |      
  321|      1|      key.itype = type;
  322|      1|      signal_key = g_bsearch_array_lookup (g_signal_key_bsa, &g_signal_key_bconfig, &key);
  ------------------
  |  |   97|      1|    g_bsearch_array_lookup_fuzzy ((barray), (bconfig), (key_node), 0)
  ------------------
  323|       |      
  324|      1|      if (signal_key)
  ------------------
  |  Branch (324:11): [True: 0, False: 1]
  ------------------
  325|      0|	return signal_key->signal_id;
  326|       |      
  327|      1|      type = g_type_parent (type);
  328|      1|    }
  329|      1|  while (type);
  ------------------
  |  Branch (329:10): [True: 0, False: 1]
  ------------------
  330|       |
  331|       |  /* no luck, try interfaces it exports */
  332|      1|  ifaces = g_type_interfaces (itype, &n_ifaces);
  333|      1|  while (n_ifaces--)
  ------------------
  |  Branch (333:10): [True: 0, False: 1]
  ------------------
  334|      0|    {
  335|      0|      SignalKey *signal_key;
  336|       |
  337|      0|      key.itype = ifaces[n_ifaces];
  338|      0|      signal_key = g_bsearch_array_lookup (g_signal_key_bsa, &g_signal_key_bconfig, &key);
  ------------------
  |  |   97|      0|    g_bsearch_array_lookup_fuzzy ((barray), (bconfig), (key_node), 0)
  ------------------
  339|       |
  340|      0|      if (signal_key)
  ------------------
  |  Branch (340:11): [True: 0, False: 0]
  ------------------
  341|      0|	{
  342|      0|	  g_free (ifaces);
  343|      0|	  return signal_key->signal_id;
  344|      0|	}
  345|      0|    }
  346|      1|  g_free (ifaces);
  347|       |
  348|       |  /* If the @name is non-canonical, try again. This is the slow path — people
  349|       |   * should use canonical names in their queries if they want performance. */
  350|      1|  if (!is_canonical (name))
  ------------------
  |  Branch (350:7): [True: 0, False: 1]
  ------------------
  351|      0|    {
  352|      0|      guint signal_id;
  353|      0|      gchar *name_copy = g_strdup (name);
  ------------------
  |  |  324|      0|#define g_strdup(x) g_strdup_inline (x)
  ------------------
  354|      0|      canonicalize_key (name_copy);
  355|       |
  356|      0|      signal_id = signal_id_lookup (name_copy, itype);
  357|       |
  358|      0|      g_free (name_copy);
  359|       |
  360|      0|      return signal_id;
  361|      0|    }
  362|       |
  363|      1|  return 0;
  364|      1|}
gsignal.c:is_canonical:
  275|      2|{
  276|       |  return (strchr (key, '_') == NULL);
  277|      2|}
gsignal.c:signal_add_class_closure:
 1545|      1|{
 1546|      1|  ClassClosure key;
 1547|       |
 1548|      1|  node->single_va_closure_is_valid = FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
 1549|       |
 1550|      1|  if (!node->class_closure_bsa)
  ------------------
  |  Branch (1550:7): [True: 1, False: 0]
  ------------------
 1551|      1|    node->class_closure_bsa = g_bsearch_array_create (&g_class_closure_bconfig);
 1552|      1|  key.instance_type = itype;
 1553|      1|  key.closure = g_closure_ref (closure);
 1554|      1|  node->class_closure_bsa = g_bsearch_array_insert (node->class_closure_bsa,
 1555|      1|						    &g_class_closure_bconfig,
 1556|      1|						    &key);
 1557|      1|  g_closure_sink (closure);
 1558|      1|  if (node->c_marshaller && closure && G_CLOSURE_NEEDS_MARSHAL (closure))
  ------------------
  |  |   41|      1|#define	G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL)
  |  |  ------------------
  |  |  |  Branch (41:42): [True: 1, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (1558:7): [True: 1, False: 0]
  |  Branch (1558:29): [True: 1, False: 0]
  ------------------
 1559|      1|    {
 1560|      1|      g_closure_set_marshal (closure, node->c_marshaller);
 1561|      1|      if (node->va_marshaller)
  ------------------
  |  Branch (1561:11): [True: 1, False: 0]
  ------------------
 1562|      1|	_g_closure_set_va_marshal (closure, node->va_marshaller);
 1563|      1|    }
 1564|      1|}

g_type_interface_add_prerequisite:
 1550|      3|{
 1551|      3|  TypeNode *iface, *prerequisite_node;
 1552|      3|  IFaceHolder *holders;
 1553|       |  
 1554|      3|  g_return_if_fail (G_TYPE_IS_INTERFACE (interface_type));	/* G_TYPE_IS_INTERFACE() is an external call: _U */
  ------------------
  |  |  650|      3|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      3|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      3|      { } \
  |  |  653|      3|    else \
  |  |  654|      3|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      3|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1555|      3|  g_return_if_fail (!g_type_is_a (interface_type, prerequisite_type));
  ------------------
  |  |  650|      3|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      3|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      9|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 3]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 3]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      3|      { } \
  |  |  653|      3|    else \
  |  |  654|      3|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      3|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1556|      3|  g_return_if_fail (!g_type_is_a (prerequisite_type, interface_type));
  ------------------
  |  |  650|      3|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      3|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      9|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 3]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 3]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      3|      { } \
  |  |  653|      3|    else \
  |  |  654|      3|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      3|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1557|       |  
 1558|      3|  iface = lookup_type_node_I (interface_type);
 1559|      3|  prerequisite_node = lookup_type_node_I (prerequisite_type);
 1560|      3|  if (!iface || !prerequisite_node || !NODE_IS_IFACE (iface))
  ------------------
  |  |  233|      3|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      3|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      3|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      3|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      3|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1560:7): [True: 0, False: 3]
  |  Branch (1560:17): [True: 0, False: 3]
  |  Branch (1560:39): [True: 0, False: 3]
  ------------------
 1561|      0|    {
 1562|      0|      g_critical ("interface type '%s' or prerequisite type '%s' invalid",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1563|      0|		  type_descriptive_name_I (interface_type),
 1564|      0|		  type_descriptive_name_I (prerequisite_type));
 1565|      0|      return;
 1566|      0|    }
 1567|      3|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      3|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 1568|      3|  holders = iface_node_get_holders_L (iface);
  ------------------
  |  |  238|      3|#define	iface_node_get_holders_L(node)		((IFaceHolder*) type_get_qdata_L ((node), static_quark_iface_holder))
  ------------------
 1569|      3|  if (holders)
  ------------------
  |  Branch (1569:7): [True: 0, False: 3]
  ------------------
 1570|      0|    {
 1571|      0|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1572|      0|      g_critical ("unable to add prerequisite '%s' to interface '%s' which is already in use for '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1573|      0|		  type_descriptive_name_I (prerequisite_type),
 1574|      0|		  type_descriptive_name_I (interface_type),
 1575|      0|		  type_descriptive_name_I (holders->instance_type));
 1576|      0|      return;
 1577|      0|    }
 1578|      3|  if (prerequisite_node->is_instantiatable)
  ------------------
  |  Branch (1578:7): [True: 3, False: 0]
  ------------------
 1579|      3|    {
 1580|      3|      guint i;
 1581|       |      
 1582|       |      /* can have at most one publicly installable instantiatable prerequisite */
 1583|      3|      for (i = 0; i < IFACE_NODE_N_PREREQUISITES (iface); i++)
  ------------------
  |  |  236|      3|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (1583:19): [True: 0, False: 3]
  ------------------
 1584|      0|	{
 1585|      0|	  TypeNode *prnode = lookup_type_node_I (IFACE_NODE_PREREQUISITES (iface)[i]);
  ------------------
  |  |  237|      0|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 1586|       |	  
 1587|      0|	  if (prnode->is_instantiatable)
  ------------------
  |  Branch (1587:8): [True: 0, False: 0]
  ------------------
 1588|      0|	    {
 1589|      0|	      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1590|      0|	      g_critical ("adding prerequisite '%s' to interface '%s' conflicts with existing prerequisite '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1591|      0|			  type_descriptive_name_I (prerequisite_type),
 1592|      0|			  type_descriptive_name_I (interface_type),
 1593|      0|			  type_descriptive_name_I (NODE_TYPE (prnode)));
 1594|      0|	      return;
 1595|      0|	    }
 1596|      0|	}
 1597|       |      
 1598|      6|      for (i = 0; i < prerequisite_node->n_supers + 1u; i++)
  ------------------
  |  Branch (1598:19): [True: 3, False: 3]
  ------------------
 1599|      3|	type_iface_add_prerequisite_W (iface, lookup_type_node_I (prerequisite_node->supers[i]));
 1600|      3|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      3|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1601|      3|    }
 1602|      0|  else if (NODE_IS_IFACE (prerequisite_node))
  ------------------
  |  |  233|      0|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      0|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      0|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      0|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      0|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1603|      0|    {
 1604|      0|      GType *prerequisites;
 1605|      0|      guint i;
 1606|       |      
 1607|      0|      prerequisites = IFACE_NODE_PREREQUISITES (prerequisite_node);
  ------------------
  |  |  237|      0|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 1608|      0|      for (i = 0; i < IFACE_NODE_N_PREREQUISITES (prerequisite_node); i++)
  ------------------
  |  |  236|      0|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (1608:19): [True: 0, False: 0]
  ------------------
 1609|      0|	type_iface_add_prerequisite_W (iface, lookup_type_node_I (prerequisites[i]));
 1610|      0|      type_iface_add_prerequisite_W (iface, prerequisite_node);
 1611|      0|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1612|      0|    }
 1613|      0|  else
 1614|      0|    {
 1615|      0|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1616|      0|      g_critical ("prerequisite '%s' for interface '%s' is neither instantiatable nor interface",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1617|      0|		  type_descriptive_name_I (prerequisite_type),
 1618|      0|		  type_descriptive_name_I (interface_type));
 1619|      0|    }
 1620|      3|}
g_type_create_instance:
 1869|  2.56k|{
 1870|  2.56k|  TypeNode *node;
 1871|  2.56k|  GTypeInstance *instance;
 1872|  2.56k|  GTypeClass *class;
 1873|  2.56k|  gchar *allocated;
 1874|  2.56k|  gint private_size;
 1875|  2.56k|  gint ivar_size;
 1876|  2.56k|  guint i;
 1877|       |
 1878|  2.56k|  node = lookup_type_node_I (type);
 1879|  2.56k|  if (G_UNLIKELY (!node || !node->is_instantiatable))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  7.68k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 1880|      0|    {
 1881|      0|      g_error ("cannot create new instance of invalid (non-instantiatable) type '%s'",
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1882|      0|		 type_descriptive_name_I (type));
 1883|      0|    }
 1884|       |  /* G_TYPE_IS_ABSTRACT() is an external call: _U */
 1885|  2.56k|  if (G_UNLIKELY (!node->mutatable_check_cache && G_TYPE_IS_ABSTRACT (type)))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  5.12k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 1886|      0|    {
 1887|      0|      g_error ("cannot create instance of abstract (non-instantiatable) type '%s'",
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1888|      0|		 type_descriptive_name_I (type));
 1889|      0|    }
 1890|  2.56k|  if (G_UNLIKELY (G_TYPE_IS_DEPRECATED (type)))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.56k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 1891|      0|    {
 1892|      0|      maybe_issue_deprecation_warning (type);
 1893|      0|    }
 1894|       |
 1895|  2.56k|  class = g_type_class_ref (type);
 1896|       |
 1897|       |  /* We allocate the 'private' areas before the normal instance data, in
 1898|       |   * reverse order.  This allows the private area of a particular class
 1899|       |   * to always be at a constant relative address to the instance data.
 1900|       |   * If we stored the private data after the instance data this would
 1901|       |   * not be the case (since a subclass that added more instance
 1902|       |   * variables would push the private data further along).
 1903|       |   *
 1904|       |   * This presents problems for valgrindability, of course, so we do a
 1905|       |   * workaround for that case.  We identify the start of the object to
 1906|       |   * valgrind as an allocated block (so that pointers to objects show up
 1907|       |   * as 'reachable' instead of 'possibly lost').  We then add an extra
 1908|       |   * pointer at the end of the object, after all instance data, back to
 1909|       |   * the start of the private area so that it is also recorded as
 1910|       |   * reachable.  We also add extra private space at the start because
 1911|       |   * valgrind doesn't seem to like us claiming to have allocated an
 1912|       |   * address that it saw allocated by malloc().
 1913|       |   */
 1914|  2.56k|  private_size = node->data->instance.private_size;
 1915|  2.56k|  ivar_size = node->data->instance.instance_size;
 1916|       |
 1917|  2.56k|#ifdef ENABLE_VALGRIND
 1918|  2.56k|  if (G_UNLIKELY (private_size && RUNNING_ON_VALGRIND))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  6.02k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 897, False: 1.66k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 897]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 1919|      0|    {
 1920|      0|      private_size += ALIGN_STRUCT (1);
  ------------------
  |  |  130|      0|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 1921|       |
 1922|       |      /* Allocate one extra pointer size... */
 1923|      0|      allocated = g_malloc0 (private_size + ivar_size + sizeof (gpointer));
 1924|       |      /* ... and point it back to the start of the private data. */
 1925|      0|      *(gpointer *) (allocated + private_size + ivar_size) = allocated + ALIGN_STRUCT (1);
  ------------------
  |  |  130|      0|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 1926|       |
 1927|       |      /* Tell valgrind that it should treat the object itself as such */
 1928|      0|      VALGRIND_MALLOCLIKE_BLOCK (allocated + private_size, ivar_size + sizeof (gpointer), 0, TRUE);
  ------------------
  |  | 6480|      0|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|      0|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      0|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      0|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      0|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|      0|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
 1929|      0|      VALGRIND_MALLOCLIKE_BLOCK (allocated + ALIGN_STRUCT (1), private_size - ALIGN_STRUCT (1), 0, TRUE);
  ------------------
  |  | 6480|      0|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|      0|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      0|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      0|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      0|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|      0|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
 1930|      0|    }
 1931|  2.56k|  else
 1932|  2.56k|#endif
 1933|  2.56k|    allocated = g_malloc0 (private_size + ivar_size);
 1934|       |
 1935|  2.56k|  instance = (GTypeInstance *) (allocated + private_size);
 1936|       |
 1937|  6.82k|  for (i = node->n_supers; i > 0; i--)
  ------------------
  |  Branch (1937:28): [True: 4.26k, False: 2.56k]
  ------------------
 1938|  4.26k|    {
 1939|  4.26k|      TypeNode *pnode;
 1940|       |      
 1941|  4.26k|      pnode = lookup_type_node_I (node->supers[i]);
 1942|  4.26k|      if (pnode->data->instance.instance_init)
  ------------------
  |  Branch (1942:11): [True: 4.26k, False: 0]
  ------------------
 1943|  4.26k|	{
 1944|  4.26k|	  instance->g_class = pnode->data->instance.class;
 1945|  4.26k|	  pnode->data->instance.instance_init (instance, class);
 1946|  4.26k|	}
 1947|  4.26k|    }
 1948|       |
 1949|  2.56k|  instance->g_class = class;
 1950|  2.56k|  if (node->data->instance.instance_init)
  ------------------
  |  Branch (1950:7): [True: 2.56k, False: 0]
  ------------------
 1951|  2.56k|    node->data->instance.instance_init (instance, class);
 1952|       |
 1953|       |#ifdef	G_ENABLE_DEBUG
 1954|       |  IF_DEBUG (INSTANCE_COUNT)
 1955|       |    {
 1956|       |      g_atomic_int_inc ((int *) &node->instance_count);
 1957|       |    }
 1958|       |#endif
 1959|       |
 1960|  2.56k|  TRACE(GOBJECT_OBJECT_NEW(instance, type));
 1961|       |
 1962|  2.56k|  return instance;
 1963|  2.56k|}
g_type_free_instance:
 1977|  2.56k|{
 1978|  2.56k|  TypeNode *node;
 1979|  2.56k|  GTypeClass *class;
 1980|  2.56k|  gchar *allocated;
 1981|  2.56k|  gint private_size;
 1982|  2.56k|  gint ivar_size;
 1983|       |
 1984|  2.56k|  g_return_if_fail (instance != NULL && instance->g_class != NULL);
  ------------------
  |  |  650|  2.56k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.56k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  2.56k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.56k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  7.68k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.56k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.56k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  2.56k|      { } \
  |  |  653|  2.56k|    else \
  |  |  654|  2.56k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  2.56k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.56k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.56k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1985|       |  
 1986|  2.56k|  class = instance->g_class;
 1987|  2.56k|  node = lookup_type_node_I (class->g_type);
 1988|  2.56k|  if (G_UNLIKELY (!node || !node->is_instantiatable || !node->data || node->data->class.class != (gpointer) class))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  17.9k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 1989|      0|    {
 1990|      0|      g_critical ("cannot free instance of invalid (non-instantiatable) type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1991|      0|		  type_descriptive_name_I (class->g_type));
 1992|      0|      return;
 1993|      0|    }
 1994|       |  /* G_TYPE_IS_ABSTRACT() is an external call: _U */
 1995|  2.56k|  if (G_UNLIKELY (!node->mutatable_check_cache && G_TYPE_IS_ABSTRACT (NODE_TYPE (node))))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  5.12k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.56k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 1996|      0|    {
 1997|      0|      g_critical ("cannot free instance of abstract (non-instantiatable) type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1998|      0|		  NODE_NAME (node));
 1999|      0|      return;
 2000|      0|    }
 2001|       |  
 2002|  2.56k|  instance->g_class = NULL;
 2003|  2.56k|  private_size = node->data->instance.private_size;
 2004|  2.56k|  ivar_size = node->data->instance.instance_size;
 2005|  2.56k|  allocated = ((gchar *) instance) - private_size;
 2006|       |
 2007|       |#ifdef G_ENABLE_DEBUG
 2008|       |  memset (allocated, 0xaa, ivar_size + private_size);
 2009|       |#endif
 2010|       |
 2011|  2.56k|#ifdef ENABLE_VALGRIND
 2012|       |  /* See comment in g_type_create_instance() about what's going on here.
 2013|       |   * We're basically unwinding what we put into motion there.
 2014|       |   */
 2015|  2.56k|  if (G_UNLIKELY (private_size && RUNNING_ON_VALGRIND))
  ------------------
  |  | 1245|  2.56k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.56k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.56k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.56k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  6.01k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 1.66k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 896]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.56k|   else                                         \
  |  |  |  |  |  | 1240|  2.56k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.56k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.56k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.56k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.56k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.56k]
  |  |  ------------------
  ------------------
 2016|      0|    {
 2017|      0|      private_size += ALIGN_STRUCT (1);
  ------------------
  |  |  130|      0|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 2018|      0|      allocated -= ALIGN_STRUCT (1);
  ------------------
  |  |  130|      0|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 2019|       |
 2020|       |      /* Clear out the extra pointer... */
 2021|      0|      *(gpointer *) (allocated + private_size + ivar_size) = NULL;
 2022|       |      /* ... and ensure we include it in the size we free. */
 2023|      0|      g_free_sized (allocated, private_size + ivar_size + sizeof (gpointer));
 2024|       |
 2025|      0|      VALGRIND_FREELIKE_BLOCK (allocated + ALIGN_STRUCT (1), 0);
  ------------------
  |  | 6494|      0|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__FREELIKE_BLOCK,         \
  |  |  ------------------
  |  |  |  |  204|      0|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      0|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      0|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      0|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6495|      0|                                    addr, rzB, 0, 0, 0)
  ------------------
 2026|      0|      VALGRIND_FREELIKE_BLOCK (instance, 0);
  ------------------
  |  | 6494|      0|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__FREELIKE_BLOCK,         \
  |  |  ------------------
  |  |  |  |  204|      0|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      0|    __extension__                                                 \
  |  |  |  |  |  |  415|      0|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      0|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      0|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      0|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      0|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      0|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      0|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      0|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      0|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      0|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      0|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      0|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      0|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      0|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      0|                    );                                            \
  |  |  |  |  |  |  430|      0|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      0|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      0|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      0|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6495|      0|                                    addr, rzB, 0, 0, 0)
  ------------------
 2027|      0|    }
 2028|  2.56k|  else
 2029|  2.56k|#endif
 2030|  2.56k|    g_free_sized (allocated, private_size + ivar_size);
 2031|       |
 2032|       |#ifdef	G_ENABLE_DEBUG
 2033|       |  IF_DEBUG (INSTANCE_COUNT)
 2034|       |    {
 2035|       |      g_atomic_int_add ((int *) &node->instance_count, -1);
 2036|       |    }
 2037|       |#endif
 2038|       |
 2039|  2.56k|  g_type_class_unref (class);
 2040|  2.56k|}
g_type_add_interface_check:
 2633|      1|{
 2634|      1|  guint i;
 2635|       |  
 2636|      1|  g_return_if_fail (check_func != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2637|       |  
 2638|      1|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      1|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2639|      1|  i = static_n_iface_check_funcs++;
 2640|      1|  static_iface_check_funcs = g_renew (IFaceCheckFunc, static_iface_check_funcs, static_n_iface_check_funcs);
  ------------------
  |  |  346|      1|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|      1|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|      1|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|      1|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|      1|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|      1|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  279|      1|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|      1|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  281|      1|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|      1|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|      1|	  else							\
  |  |  |  |  284|      1|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|      1|	  __p;							\
  |  |  |  |  286|      1|	}))
  |  |  ------------------
  ------------------
 2641|      1|  static_iface_check_funcs[i].check_data = check_data;
 2642|      1|  static_iface_check_funcs[i].check_func = check_func;
 2643|      1|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      1|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2644|      1|}
g_type_register_fundamental:
 2710|     38|{
 2711|     38|  TypeNode *node;
 2712|       |  
 2713|     38|  g_assert_type_system_initialized ();
  ------------------
  |  |   97|     38|  g_assert (static_quark_type_flags)
  |  |  ------------------
  |  |  |  |  275|     38|#define g_assert(expr)                  G_STMT_START { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  276|     38|                                             if G_LIKELY (expr) ; else \
  |  |  |  |  ------------------
  |  |  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1244:25): [True: 38, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  277|     38|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  |  |  ------------------
  |  |  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  |  |  ------------------
  |  |  |  |  278|      0|                                                                         #expr); \
  |  |  |  |  279|     38|                                        } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2714|     38|  g_return_val_if_fail (type_id > 0, 0);
  ------------------
  |  |  663|     38|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     38|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 38, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     38|      { } \
  |  |  666|     38|    else \
  |  |  667|     38|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2715|     38|  g_return_val_if_fail (type_name != NULL, 0);
  ------------------
  |  |  663|     38|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     38|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 38, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     38|      { } \
  |  |  666|     38|    else \
  |  |  667|     38|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2716|     38|  g_return_val_if_fail (info != NULL, 0);
  ------------------
  |  |  663|     38|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     38|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 38, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     38|      { } \
  |  |  666|     38|    else \
  |  |  667|     38|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2717|     38|  g_return_val_if_fail (finfo != NULL, 0);
  ------------------
  |  |  663|     38|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     38|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 38, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     38|      { } \
  |  |  666|     38|    else \
  |  |  667|     38|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2718|       |  
 2719|     38|  if (!check_type_name_I (type_name))
  ------------------
  |  Branch (2719:7): [True: 0, False: 38]
  ------------------
 2720|      0|    return 0;
 2721|     38|  if ((type_id & TYPE_ID_MASK) ||
  ------------------
  |  |  242|     38|#define	TYPE_ID_MASK				((GType) ((1 << G_TYPE_FUNDAMENTAL_SHIFT) - 1))
  |  |  ------------------
  |  |  |  |   48|     38|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  |  Branch (2721:7): [True: 0, False: 38]
  ------------------
 2722|     38|      type_id > G_TYPE_FUNDAMENTAL_MAX)
  ------------------
  |  |   55|     38|#define	G_TYPE_FUNDAMENTAL_MAX		(255 << G_TYPE_FUNDAMENTAL_SHIFT)
  |  |  ------------------
  |  |  |  |   48|     38|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  |  Branch (2722:7): [True: 0, False: 38]
  ------------------
 2723|      0|    {
 2724|      0|      g_critical ("attempt to register fundamental type '%s' with invalid type id (%" G_GUINTPTR_FORMAT ")",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2725|      0|		  type_name,
 2726|      0|		  (guintptr) type_id);
 2727|      0|      return 0;
 2728|      0|    }
 2729|     38|  if ((finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE) &&
  ------------------
  |  Branch (2729:7): [True: 4, False: 34]
  ------------------
 2730|      4|      !(finfo->type_flags & G_TYPE_FLAG_CLASSED))
  ------------------
  |  Branch (2730:7): [True: 0, False: 4]
  ------------------
 2731|      0|    {
 2732|      0|      g_critical ("cannot register instantiatable fundamental type '%s' as non-classed",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2733|      0|		  type_name);
 2734|      0|      return 0;
 2735|      0|    }
 2736|     38|  if (lookup_type_node_I (type_id))
  ------------------
  |  Branch (2736:7): [True: 0, False: 38]
  ------------------
 2737|      0|    {
 2738|      0|      g_critical ("cannot register existing fundamental type '%s' (as '%s')",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2739|      0|		  type_descriptive_name_I (type_id),
 2740|      0|		  type_name);
 2741|      0|      return 0;
 2742|      0|    }
 2743|       |  
 2744|     38|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     38|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2745|     38|  node = type_node_fundamental_new_W (type_id, type_name, finfo->type_flags);
 2746|     38|  type_add_flags_W (node, flags);
 2747|       |  
 2748|     38|  if (check_type_info_I (NULL, NODE_FUNDAMENTAL_TYPE (node), type_name, info))
  ------------------
  |  |  229|     38|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (2748:7): [True: 38, False: 0]
  ------------------
 2749|     38|    type_data_make_W (node, info,
 2750|     38|		      check_value_table_I (type_name, info->value_table) ? info->value_table : NULL);
  ------------------
  |  Branch (2750:9): [True: 36, False: 2]
  ------------------
 2751|     38|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     38|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2752|       |  
 2753|     38|  return NODE_TYPE (node);
  ------------------
  |  |  227|     38|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2754|     38|}
g_type_register_static_simple:
 2783|     12|{
 2784|     12|  GTypeInfo info;
 2785|       |
 2786|       |  /* Instances are not allowed to be larger than this. If you have a big
 2787|       |   * fixed-length array or something, point to it instead.
 2788|       |   */
 2789|     12|  g_return_val_if_fail (class_size <= G_MAXUINT16, G_TYPE_INVALID);
  ------------------
  |  |  663|     12|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     12|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     12|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     12|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     12|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     12| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     12|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     12|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     12|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 12, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     12|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     12|   else                                         \
  |  |  |  |  |  |  |  | 1240|     12|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     12|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     12|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 12, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     12|      { } \
  |  |  666|     12|    else \
  |  |  667|     12|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     12|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     12|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 12]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2790|     12|  g_return_val_if_fail (instance_size <= G_MAXUINT16, G_TYPE_INVALID);
  ------------------
  |  |  663|     12|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     12|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     12|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     12|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     12|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     12| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     12|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     12|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     12|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 12, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     12|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     12|   else                                         \
  |  |  |  |  |  |  |  | 1240|     12|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     12|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     12|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 12, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     12|      { } \
  |  |  666|     12|    else \
  |  |  667|     12|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     12|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     12|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 12]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2791|       |
 2792|     12|  info.class_size = class_size;
 2793|     12|  info.base_init = NULL;
 2794|     12|  info.base_finalize = NULL;
 2795|     12|  info.class_init = class_init;
 2796|     12|  info.class_finalize = NULL;
 2797|     12|  info.class_data = NULL;
 2798|     12|  info.instance_size = instance_size;
 2799|     12|  info.n_preallocs = 0;
 2800|     12|  info.instance_init = instance_init;
 2801|     12|  info.value_table = NULL;
 2802|       |
 2803|     12|  return g_type_register_static (parent_type, type_name, &info, flags);
 2804|     12|}
g_type_register_static:
 2826|     64|{
 2827|     64|  TypeNode *pnode, *node;
 2828|     64|  GType type = 0;
 2829|       |  
 2830|     64|  g_assert_type_system_initialized ();
  ------------------
  |  |   97|     64|  g_assert (static_quark_type_flags)
  |  |  ------------------
  |  |  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  |  |  ------------------
  |  |  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  |  |  ------------------
  |  |  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  |  |  ------------------
  |  |  |  |  278|      0|                                                                         #expr); \
  |  |  |  |  279|     64|                                        } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2831|     64|  g_return_val_if_fail (parent_type > 0, 0);
  ------------------
  |  |  663|     64|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     64|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     64|      { } \
  |  |  666|     64|    else \
  |  |  667|     64|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     64|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2832|     64|  g_return_val_if_fail (type_name != NULL, 0);
  ------------------
  |  |  663|     64|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     64|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     64|      { } \
  |  |  666|     64|    else \
  |  |  667|     64|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     64|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2833|     64|  g_return_val_if_fail (info != NULL, 0);
  ------------------
  |  |  663|     64|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     64|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     64|      { } \
  |  |  666|     64|    else \
  |  |  667|     64|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     64|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2834|       |  
 2835|     64|  if (!check_type_name_I (type_name) ||
  ------------------
  |  Branch (2835:7): [True: 0, False: 64]
  ------------------
 2836|     64|      !check_derivation_I (parent_type, type_name))
  ------------------
  |  Branch (2836:7): [True: 0, False: 64]
  ------------------
 2837|      0|    return 0;
 2838|     64|  if (info->class_finalize)
  ------------------
  |  Branch (2838:7): [True: 0, False: 64]
  ------------------
 2839|      0|    {
 2840|      0|      g_critical ("class finalizer specified for static type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2841|      0|		  type_name);
 2842|      0|      return 0;
 2843|      0|    }
 2844|       |  
 2845|     64|  pnode = lookup_type_node_I (parent_type);
 2846|     64|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     64|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2847|     64|  type_data_ref_Wm (pnode);
 2848|     64|  if (check_type_info_I (pnode, NODE_FUNDAMENTAL_TYPE (pnode), type_name, info))
  ------------------
  |  |  229|     64|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (2848:7): [True: 64, False: 0]
  ------------------
 2849|     64|    {
 2850|     64|      node = type_node_new_W (pnode, type_name, NULL);
 2851|     64|      type_add_flags_W (node, flags);
 2852|     64|      type = NODE_TYPE (node);
  ------------------
  |  |  227|     64|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2853|     64|      type_data_make_W (node, info,
 2854|     64|			check_value_table_I (type_name, info->value_table) ? info->value_table : NULL);
  ------------------
  |  Branch (2854:4): [True: 2, False: 62]
  ------------------
 2855|     64|    }
 2856|     64|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     64|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2857|       |  
 2858|     64|  return type;
 2859|     64|}
g_type_add_interface_static:
 2920|      3|{
 2921|       |  /* G_TYPE_IS_INSTANTIATABLE() is an external call: _U */
 2922|      3|  g_return_if_fail (G_TYPE_IS_INSTANTIATABLE (instance_type));
  ------------------
  |  |  650|      3|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      3|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      3|      { } \
  |  |  653|      3|    else \
  |  |  654|      3|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      3|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2923|      3|  g_return_if_fail (g_type_parent (interface_type) == G_TYPE_INTERFACE);
  ------------------
  |  |  650|      3|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      3|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      3|      { } \
  |  |  653|      3|    else \
  |  |  654|      3|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      3|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2924|       |
 2925|       |  /* we only need to lock class_init_rec_mutex if instance_type already has its
 2926|       |   * class initialized, however this function is rarely enough called to take
 2927|       |   * the simple route and always acquire class_init_rec_mutex.
 2928|       |   */
 2929|      3|  g_rec_mutex_lock (&class_init_rec_mutex); /* required locking order: 1) class_init_rec_mutex, 2) type_rw_lock */
 2930|      3|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      3|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2931|      3|  if (check_add_interface_L (instance_type, interface_type))
  ------------------
  |  Branch (2931:7): [True: 3, False: 0]
  ------------------
 2932|      3|    {
 2933|      3|      TypeNode *node = lookup_type_node_I (instance_type);
 2934|      3|      TypeNode *iface = lookup_type_node_I (interface_type);
 2935|      3|      if (check_interface_info_I (iface, NODE_TYPE (node), info))
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
  |  Branch (2935:11): [True: 3, False: 0]
  ------------------
 2936|      3|        type_add_interface_Wm (node, iface, info, NULL);
 2937|      3|    }
 2938|      3|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      3|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2939|      3|  g_rec_mutex_unlock (&class_init_rec_mutex);
 2940|      3|}
g_type_class_ref:
 2993|  2.65k|{
 2994|  2.65k|  TypeNode *node;
 2995|  2.65k|  GType ptype;
 2996|  2.65k|  gboolean holds_ref;
 2997|  2.65k|  GTypeClass *pclass;
 2998|       |
 2999|       |  /* optimize for common code path */
 3000|  2.65k|  node = lookup_type_node_I (type);
 3001|  2.65k|  if (!node || !node->is_classed)
  ------------------
  |  Branch (3001:7): [True: 0, False: 2.65k]
  |  Branch (3001:16): [True: 0, False: 2.65k]
  ------------------
 3002|      0|    {
 3003|      0|      g_critical ("cannot retrieve class for invalid (unclassed) type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 3004|      0|		  type_descriptive_name_I (type));
 3005|      0|      return NULL;
 3006|      0|    }
 3007|       |
 3008|  2.65k|  if (G_LIKELY (type_data_ref_U (node)))
  ------------------
  |  | 1244|  2.65k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  2.65k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.65k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.65k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.65k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.65k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.65k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.65k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.65k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.65k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.65k|   else                                         \
  |  |  |  |  |  | 1240|  2.65k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.65k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.65k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.65k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.65k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 2.65k, False: 0]
  |  |  ------------------
  ------------------
 3009|  2.65k|    {
 3010|  2.65k|      if (G_LIKELY (g_atomic_int_get (&node->data->class.init_state) == INITIALIZED))
  ------------------
  |  | 1244|  2.65k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  2.65k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.65k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.65k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.65k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  7.96k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 2.65k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.60k, False: 51]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.65k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.60k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.60k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.65k|   else                                         \
  |  |  |  |  |  | 1240|  2.65k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     51|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     51|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.65k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.65k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.65k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.65k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 2.60k, False: 51]
  |  |  ------------------
  ------------------
 3011|  2.60k|        return node->data->class.class;
 3012|     51|      holds_ref = TRUE;
  ------------------
  |  |  929|     51|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     51|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3013|     51|    }
 3014|      0|  else
 3015|      0|    holds_ref = FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3016|       |  
 3017|       |  /* here, we either have node->data->class.class == NULL, or a recursive
 3018|       |   * call to g_type_class_ref() with a partly initialized class, or
 3019|       |   * node->data->class.init_state == INITIALIZED, because any
 3020|       |   * concurrently running initialization was guarded by class_init_rec_mutex.
 3021|       |   */
 3022|     51|  g_rec_mutex_lock (&class_init_rec_mutex); /* required locking order: 1) class_init_rec_mutex, 2) type_rw_lock */
 3023|       |
 3024|       |  /* we need an initialized parent class for initializing derived classes */
 3025|     51|  ptype = NODE_PARENT_TYPE (node);
  ------------------
  |  |  228|     51|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 3026|     51|  pclass = ptype ? g_type_class_ref (ptype) : NULL;
  ------------------
  |  Branch (3026:12): [True: 48, False: 3]
  ------------------
 3027|       |
 3028|     51|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     51|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 3029|       |
 3030|     51|  if (!holds_ref)
  ------------------
  |  Branch (3030:7): [True: 0, False: 51]
  ------------------
 3031|      0|    type_data_ref_Wm (node);
 3032|       |
 3033|     51|  if (!node->data->class.class) /* class uninitialized */
  ------------------
  |  Branch (3033:7): [True: 49, False: 2]
  ------------------
 3034|     49|    type_class_init_Wm (node, pclass);
 3035|       |
 3036|     51|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     51|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 3037|       |
 3038|     51|  if (pclass)
  ------------------
  |  Branch (3038:7): [True: 48, False: 3]
  ------------------
 3039|     48|    g_type_class_unref (pclass);
 3040|       |
 3041|     51|  g_rec_mutex_unlock (&class_init_rec_mutex);
 3042|       |
 3043|     51|  return node->data->class.class;
 3044|  2.65k|}
g_type_class_unref:
 3057|  2.65k|{
 3058|  2.65k|  TypeNode *node;
 3059|  2.65k|  GTypeClass *class = g_class;
 3060|       |  
 3061|  2.65k|  g_return_if_fail (g_class != NULL);
  ------------------
  |  |  650|  2.65k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.65k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  2.65k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.65k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.65k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.65k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.65k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.65k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.65k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.65k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.65k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.65k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.65k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.65k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.65k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.65k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.65k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.65k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.65k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.65k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  2.65k|      { } \
  |  |  653|  2.65k|    else \
  |  |  654|  2.65k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  2.65k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.65k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.65k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3062|       |  
 3063|  2.65k|  node = lookup_type_node_I (class->g_type);
 3064|  2.65k|  if (node && node->is_classed && NODE_REFCOUNT (node))
  ------------------
  |  |  231|  2.65k|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|  2.65k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  2.65k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|  2.65k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  2.65k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|  2.65k|    gint gaig_temp;                                                          \
  |  |  |  |  113|  2.65k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 2.65k]
  |  |  |  |  ------------------
  |  |  |  |  114|  2.65k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|  2.65k|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|  2.65k|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 2.65k, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3064:7): [True: 2.65k, False: 0]
  |  Branch (3064:15): [True: 2.65k, False: 0]
  ------------------
 3065|  2.65k|    type_data_unref_U (node, FALSE);
  ------------------
  |  |  925|  2.65k|#define	FALSE	(0)
  ------------------
 3066|      0|  else
 3067|      0|    g_critical ("cannot unreference class of invalid (unclassed) type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 3068|  2.65k|	        type_descriptive_name_I (class->g_type));
 3069|  2.65k|}
g_type_class_peek:
 3112|    567|{
 3113|    567|  TypeNode *node;
 3114|    567|  gpointer class;
 3115|       |  
 3116|    567|  node = lookup_type_node_I (type);
 3117|    567|  if (node && node->is_classed && NODE_REFCOUNT (node) &&
  ------------------
  |  |  231|  1.13k|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    567|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    567|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    567|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    567|    gint gaig_temp;                                                          \
  |  |  |  |  113|    567|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  |  |  114|    567|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    567|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    567|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 567, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3117:7): [True: 567, False: 0]
  |  Branch (3117:15): [True: 567, False: 0]
  ------------------
 3118|    567|      g_atomic_int_get (&node->data->class.init_state) == INITIALIZED)
  ------------------
  |  |  110|    567|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    567|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    567|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    567|    gint gaig_temp;                                                          \
  |  |  113|    567|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 567]
  |  |  ------------------
  |  |  114|    567|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    567|    (gint) gaig_temp;                                                        \
  |  |  116|    567|  }))
  ------------------
  |  Branch (3118:7): [True: 567, False: 0]
  ------------------
 3119|       |    /* ref_count _may_ be 0 */
 3120|    567|    class = node->data->class.class;
 3121|      0|  else
 3122|      0|    class = NULL;
 3123|       |  
 3124|    567|  return class;
 3125|    567|}
g_type_class_peek_static:
 3142|  2.56k|{
 3143|  2.56k|  TypeNode *node;
 3144|  2.56k|  gpointer class;
 3145|       |  
 3146|  2.56k|  node = lookup_type_node_I (type);
 3147|  2.56k|  if (node && node->is_classed && NODE_REFCOUNT (node) &&
  ------------------
  |  |  231|  5.12k|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|  2.56k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|  2.56k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  2.56k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|  2.56k|    gint gaig_temp;                                                          \
  |  |  |  |  113|  2.56k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 2.56k]
  |  |  |  |  ------------------
  |  |  |  |  114|  2.56k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|  2.56k|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|  2.56k|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 2.56k, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3147:7): [True: 2.56k, False: 0]
  |  Branch (3147:15): [True: 2.56k, False: 0]
  ------------------
 3148|  2.56k|      /* peek only static types: */ node->plugin == NULL &&
  ------------------
  |  Branch (3148:37): [True: 2.56k, False: 0]
  ------------------
 3149|  2.56k|      g_atomic_int_get (&node->data->class.init_state) == INITIALIZED)
  ------------------
  |  |  110|  2.56k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  2.56k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.56k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  2.56k|    gint gaig_temp;                                                          \
  |  |  113|  2.56k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 2.56k]
  |  |  ------------------
  |  |  114|  2.56k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  2.56k|    (gint) gaig_temp;                                                        \
  |  |  116|  2.56k|  }))
  ------------------
  |  Branch (3149:7): [True: 2.55k, False: 3]
  ------------------
 3150|       |    /* ref_count _may_ be 0 */
 3151|  2.55k|    class = node->data->class.class;
 3152|      3|  else
 3153|      3|    class = NULL;
 3154|       |  
 3155|  2.56k|  return class;
 3156|  2.56k|}
g_type_class_peek_parent:
 3177|     13|{
 3178|     13|  TypeNode *node;
 3179|     13|  gpointer class = NULL;
 3180|       |  
 3181|     13|  g_return_val_if_fail (g_class != NULL, NULL);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     13|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3182|       |  
 3183|     13|  node = lookup_type_node_I (G_TYPE_FROM_CLASS (g_class));
  ------------------
  |  |  657|     13|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  ------------------
 3184|       |
 3185|     13|  g_return_val_if_fail (node != NULL, NULL);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     13|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3186|       |
 3187|       |  /* We used to acquire a read lock here. That is not necessary, since 
 3188|       |   * parent->data->class.class is constant as long as the derived class
 3189|       |   * exists. 
 3190|       |   */
 3191|     13|  if (node->is_classed && node->data && NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|     13|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 12, False: 1]
  |  |  ------------------
  ------------------
  |  Branch (3191:7): [True: 13, False: 0]
  |  Branch (3191:27): [True: 13, False: 0]
  ------------------
 3192|     12|    {
 3193|     12|      node = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     12|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 3194|     12|      class = node->data->class.class;
 3195|     12|    }
 3196|      1|  else if (NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|      1|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 0, False: 1]
  |  |  ------------------
  ------------------
 3197|      0|    g_critical (G_STRLOC ": invalid class pointer '%p'", g_class);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 3198|       |  
 3199|     13|  return class;
 3200|     13|}
g_type_interface_peek:
 3217|  16.2k|{
 3218|  16.2k|  TypeNode *node;
 3219|  16.2k|  TypeNode *iface;
 3220|  16.2k|  gpointer vtable = NULL;
 3221|  16.2k|  GTypeClass *class = instance_class;
 3222|       |  
 3223|  16.2k|  g_return_val_if_fail (instance_class != NULL, NULL);
  ------------------
  |  |  663|  16.2k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  16.2k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  16.2k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  16.2k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  16.2k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  16.2k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  16.2k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  16.2k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  16.2k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 16.2k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  16.2k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  16.2k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  16.2k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  16.2k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  16.2k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  16.2k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  16.2k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  16.2k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  16.2k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 16.2k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  16.2k|      { } \
  |  |  666|  16.2k|    else \
  |  |  667|  16.2k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  16.2k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  16.2k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 16.2k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3224|       |  
 3225|  16.2k|  node = lookup_type_node_I (class->g_type);
 3226|  16.2k|  iface = lookup_type_node_I (iface_type);
 3227|  16.2k|  if (node && node->is_instantiatable && iface)
  ------------------
  |  Branch (3227:7): [True: 16.2k, False: 0]
  |  Branch (3227:15): [True: 16.2k, False: 0]
  |  Branch (3227:42): [True: 16.2k, False: 0]
  ------------------
 3228|  16.2k|    type_lookup_iface_vtable_I (node, iface, &vtable);
 3229|      0|  else
 3230|      0|    g_critical (G_STRLOC ": invalid class pointer '%p'", class);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 3231|       |  
 3232|  16.2k|  return vtable;
 3233|  16.2k|}
g_type_name:
 3400|     46|{
 3401|     46|  TypeNode *node;
 3402|       |  
 3403|     46|  g_assert_type_system_initialized ();
  ------------------
  |  |   97|     46|  g_assert (static_quark_type_flags)
  |  |  ------------------
  |  |  |  |  275|     46|#define g_assert(expr)                  G_STMT_START { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     46|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  276|     46|                                             if G_LIKELY (expr) ; else \
  |  |  |  |  ------------------
  |  |  |  |  |  | 1244|     46|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1243|     46|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1235|     46| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   62|     46|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1236|     46|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  |  |  | 1237|     46|   if (expr)                                    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 46, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1238|     46|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1239|     46|   else                                         \
  |  |  |  |  |  |  |  |  |  | 1240|     46|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1241|     46|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1242|     46|})
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1244:25): [True: 46, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  277|     46|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  |  |  ------------------
  |  |  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  |  |  ------------------
  |  |  |  |  278|      0|                                                                         #expr); \
  |  |  |  |  279|     46|                                        } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     46|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 46]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3404|       |  
 3405|     46|  node = lookup_type_node_I (type);
 3406|       |  
 3407|     46|  return node ? NODE_NAME (node) : NULL;
  ------------------
  |  |  230|     46|#define NODE_NAME(node)				(g_quark_to_string (node->qname))
  ------------------
  |  Branch (3407:10): [True: 46, False: 0]
  ------------------
 3408|     46|}
g_type_from_name:
 3441|    152|{
 3442|    152|  GType type = 0;
 3443|       |  
 3444|    152|  g_return_val_if_fail (name != NULL, 0);
  ------------------
  |  |  663|    152|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    152|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    152|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    152|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    152|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    152| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    152|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    152|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    152|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 152, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    152|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    152|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    152|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    152|   else                                         \
  |  |  |  |  |  |  |  | 1240|    152|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    152|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    152|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    152|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    152|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 152, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    152|      { } \
  |  |  666|    152|    else \
  |  |  667|    152|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    152|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    152|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 152]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3445|       |  
 3446|    152|  G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|    152|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 3447|    152|  type = GPOINTER_TO_TYPE (g_hash_table_lookup (static_type_nodes_ht, name));
  ------------------
  |  | 2722|    152|#define GPOINTER_TO_TYPE(p) ((GType) (guintptr) (p)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
 3448|    152|  G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|    152|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 3449|       |  
 3450|    152|  return type;
 3451|    152|}
g_type_parent:
 3464|      6|{
 3465|      6|  TypeNode *node;
 3466|       |  
 3467|      6|  node = lookup_type_node_I (type);
 3468|       |  
 3469|      6|  return node ? NODE_PARENT_TYPE (node) : 0;
  ------------------
  |  |  228|      6|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
  |  Branch (3469:10): [True: 6, False: 0]
  ------------------
 3470|      6|}
g_type_depth:
 3483|      2|{
 3484|      2|  TypeNode *node;
 3485|       |  
 3486|      2|  node = lookup_type_node_I (type);
 3487|       |  
 3488|      2|  return node ? node->n_supers + 1 : 0;
  ------------------
  |  Branch (3488:10): [True: 2, False: 0]
  ------------------
 3489|      2|}
g_type_is_a:
 3604|    915|{
 3605|    915|  TypeNode *node, *iface_node;
 3606|    915|  gboolean is_a;
 3607|       |
 3608|    915|  if (type == iface_type)
  ------------------
  |  Branch (3608:7): [True: 0, False: 915]
  ------------------
 3609|      0|    return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3610|       |  
 3611|    915|  node = lookup_type_node_I (type);
 3612|    915|  iface_node = lookup_type_node_I (iface_type);
 3613|    915|  is_a = node && iface_node && type_node_conforms_to_U (node, iface_node, TRUE, TRUE);
  ------------------
  |  |  929|    915|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    915|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                is_a = node && iface_node && type_node_conforms_to_U (node, iface_node, TRUE, TRUE);
  ------------------
  |  |  929|    915|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    915|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (3613:10): [True: 915, False: 0]
  |  Branch (3613:18): [True: 915, False: 0]
  |  Branch (3613:32): [True: 897, False: 18]
  ------------------
 3614|       |  
 3615|    915|  return is_a;
 3616|    915|}
g_type_interfaces:
 3677|      1|{
 3678|      1|  TypeNode *node;
 3679|       |  
 3680|      1|  node = lookup_type_node_I (type);
 3681|      1|  if (node && node->is_instantiatable)
  ------------------
  |  Branch (3681:7): [True: 1, False: 0]
  |  Branch (3681:15): [True: 1, False: 0]
  ------------------
 3682|      1|    {
 3683|      1|      IFaceEntries *entries;
 3684|      1|      GType *ifaces;
 3685|      1|      guint i;
 3686|       |      
 3687|      1|      G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|      1|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 3688|      1|      entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node);
  ------------------
  |  |  235|      1|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|      1|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
 3689|      1|      if (entries)
  ------------------
  |  Branch (3689:11): [True: 0, False: 1]
  ------------------
 3690|      0|	{
 3691|      0|	  ifaces = g_new (GType, IFACE_ENTRIES_N_ENTRIES (entries) + 1);
  ------------------
  |  |  315|      0|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      0|	  gpointer __p;						\
  |  |  |  |  264|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|      0|	    __p = g_##func (__n);				\
  |  |  |  |  266|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      0|	  __p;							\
  |  |  |  |  272|      0|	}))
  |  |  ------------------
  ------------------
 3692|      0|	  for (i = 0; i < IFACE_ENTRIES_N_ENTRIES (entries); i++)
  ------------------
  |  |  269|      0|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      0|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      0|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (3692:16): [True: 0, False: 0]
  ------------------
 3693|      0|	    ifaces[i] = entries->entry[i].iface_type;
 3694|      0|	}
 3695|      1|      else
 3696|      1|	{
 3697|      1|	  ifaces = g_new (GType, 1);
  ------------------
  |  |  315|      1|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|      1|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      1|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      1|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      1|	  gpointer __p;						\
  |  |  |  |  264|      1|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  265|      1|	    __p = g_##func (__n);				\
  |  |  |  |  266|      1|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      1|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      1|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      1|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 1]
  |  |  |  |  |  Branch (267:26): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      1|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      1|	  else							\
  |  |  |  |  270|      1|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      1|	  __p;							\
  |  |  |  |  272|      1|	}))
  |  |  ------------------
  ------------------
 3698|      1|	  i = 0;
 3699|      1|	}
 3700|      1|      ifaces[i] = 0;
 3701|       |      
 3702|      1|      if (n_interfaces)
  ------------------
  |  Branch (3702:11): [True: 1, False: 0]
  ------------------
 3703|      1|	*n_interfaces = i;
 3704|      1|      G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|      1|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 3705|       |      
 3706|      1|      return ifaces;
 3707|      1|    }
 3708|      0|  else
 3709|      0|    {
 3710|      0|      if (n_interfaces)
  ------------------
  |  Branch (3710:11): [True: 0, False: 0]
  ------------------
 3711|      0|	*n_interfaces = 0;
 3712|       |      
 3713|       |      return NULL;
 3714|      0|    }
 3715|      1|}
g_type_test_flags:
 4014|      2|{
 4015|      2|  return _g_type_test_flags (type, flags);
 4016|      2|}
g_type_fundamental:
 4120|  2.56k|{
 4121|  2.56k|  TypeNode *node = lookup_type_node_I (type_id);
 4122|       |  
 4123|  2.56k|  return node ? NODE_FUNDAMENTAL_TYPE (node) : 0;
  ------------------
  |  |  229|  2.56k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (4123:10): [True: 2.56k, False: 0]
  ------------------
 4124|  2.56k|}
g_type_check_instance_is_a:
 4129|  44.8k|{
 4130|  44.8k|  TypeNode *node, *iface;
 4131|  44.8k|  gboolean check;
 4132|       |  
 4133|  44.8k|  if (!type_instance || !type_instance->g_class)
  ------------------
  |  Branch (4133:7): [True: 0, False: 44.8k]
  |  Branch (4133:25): [True: 0, False: 44.8k]
  ------------------
 4134|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4135|       |
 4136|  44.8k|  iface = lookup_type_node_I (iface_type);
 4137|  44.8k|  if (iface && iface->is_final)
  ------------------
  |  Branch (4137:7): [True: 44.8k, False: 0]
  |  Branch (4137:16): [True: 0, False: 44.8k]
  ------------------
 4138|      0|    return type_instance->g_class->g_type == iface_type;
 4139|       |
 4140|  44.8k|  node = lookup_type_node_I (type_instance->g_class->g_type);
 4141|  44.8k|  check = node && node->is_instantiatable && iface && type_node_conforms_to_U (node, iface, TRUE, FALSE);
  ------------------
  |  |  929|  44.8k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  44.8k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                check = node && node->is_instantiatable && iface && type_node_conforms_to_U (node, iface, TRUE, FALSE);
  ------------------
  |  |  925|  44.8k|#define	FALSE	(0)
  ------------------
  |  Branch (4141:11): [True: 44.8k, False: 0]
  |  Branch (4141:19): [True: 44.8k, False: 0]
  |  Branch (4141:46): [True: 44.8k, False: 0]
  |  Branch (4141:55): [True: 44.8k, False: 0]
  ------------------
 4142|       |  
 4143|  44.8k|  return check;
 4144|  44.8k|}
g_type_check_instance_is_fundamentally_a:
 4149|  8.51k|{
 4150|  8.51k|  TypeNode *node;
 4151|  8.51k|  if (!type_instance || !type_instance->g_class)
  ------------------
  |  Branch (4151:7): [True: 0, False: 8.51k]
  |  Branch (4151:25): [True: 0, False: 8.51k]
  ------------------
 4152|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4153|  8.51k|  node = lookup_type_node_I (type_instance->g_class->g_type);
 4154|  8.51k|  return node && (NODE_FUNDAMENTAL_TYPE(node) == fundamental_type);
  ------------------
  |  |  229|  8.51k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (4154:10): [True: 8.51k, False: 0]
  |  Branch (4154:18): [True: 8.51k, False: 0]
  ------------------
 4155|  8.51k|}
g_type_check_class_is_a:
 4160|      4|{
 4161|      4|  TypeNode *node, *iface;
 4162|      4|  gboolean check;
 4163|       |  
 4164|      4|  if (!type_class)
  ------------------
  |  Branch (4164:7): [True: 0, False: 4]
  ------------------
 4165|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4166|       |  
 4167|      4|  node = lookup_type_node_I (type_class->g_type);
 4168|      4|  iface = lookup_type_node_I (is_a_type);
 4169|      4|  check = node && node->is_classed && iface && type_node_conforms_to_U (node, iface, FALSE, FALSE);
  ------------------
  |  |  925|      4|#define	FALSE	(0)
  ------------------
                check = node && node->is_classed && iface && type_node_conforms_to_U (node, iface, FALSE, FALSE);
  ------------------
  |  |  925|      4|#define	FALSE	(0)
  ------------------
  |  Branch (4169:11): [True: 4, False: 0]
  |  Branch (4169:19): [True: 4, False: 0]
  |  Branch (4169:39): [True: 4, False: 0]
  |  Branch (4169:48): [True: 4, False: 0]
  ------------------
 4170|       |  
 4171|      4|  return check;
 4172|      4|}
g_type_check_instance:
 4251|  5.12k|{
 4252|       |  /* this function is just here to make the signal system
 4253|       |   * conveniently elaborated on instance checks
 4254|       |   */
 4255|  5.12k|  if (type_instance)
  ------------------
  |  Branch (4255:7): [True: 5.12k, False: 0]
  ------------------
 4256|  5.12k|    {
 4257|  5.12k|      if (type_instance->g_class)
  ------------------
  |  Branch (4257:11): [True: 5.12k, False: 0]
  ------------------
 4258|  5.12k|	{
 4259|  5.12k|	  TypeNode *node = lookup_type_node_I (type_instance->g_class->g_type);
 4260|       |	  
 4261|  5.12k|	  if (node && node->is_instantiatable)
  ------------------
  |  Branch (4261:8): [True: 5.12k, False: 0]
  |  Branch (4261:16): [True: 5.12k, False: 0]
  ------------------
 4262|  5.12k|	    return TRUE;
  ------------------
  |  |  929|  5.12k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  5.12k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4263|       |	  
 4264|      0|	  g_critical ("instance of invalid non-instantiatable type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4265|      0|		      type_descriptive_name_I (type_instance->g_class->g_type));
 4266|      0|	}
 4267|      0|      else
 4268|      0|	g_critical ("instance with invalid (NULL) class pointer");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4269|  5.12k|    }
 4270|      0|  else
 4271|      0|    g_critical ("invalid (NULL) pointer instance");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4272|       |  
 4273|      0|  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4274|  5.12k|}
g_type_check_is_value_type:
 4319|      1|{
 4320|      1|  return type_check_is_value_type_U (type);
 4321|      1|}
g_type_check_value:
 4325|    897|{
 4326|    897|  return value && type_check_is_value_type_U (value->g_type);
  ------------------
  |  Branch (4326:10): [True: 897, False: 0]
  |  Branch (4326:19): [True: 897, False: 0]
  ------------------
 4327|    897|}
g_type_check_value_holds:
 4332|    896|{
 4333|    896|  return value && type_check_is_value_type_U (value->g_type) && g_type_is_a (value->g_type, type);
  ------------------
  |  |  760|    896|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  ------------------
  |  |  |  Branch (760:27): [True: 0, False: 896]
  |  |  |  Branch (760:41): [True: 896, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (4333:10): [True: 896, False: 0]
  |  Branch (4333:19): [True: 896, False: 0]
  ------------------
 4334|    896|}
g_type_value_table_peek:
 4351|  2.69k|{
 4352|  2.69k|  GTypeValueTable *vtable = NULL;
 4353|  2.69k|  TypeNode *node = lookup_type_node_I (type);
 4354|  2.69k|  gboolean has_refed_data, has_table;
 4355|       |
 4356|  2.69k|  if (node && NODE_REFCOUNT (node) && node->mutatable_check_cache)
  ------------------
  |  |  231|  5.38k|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|  2.69k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  2.69k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|  2.69k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  2.69k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|  2.69k|    gint gaig_temp;                                                          \
  |  |  |  |  113|  2.69k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 2.69k]
  |  |  |  |  ------------------
  |  |  |  |  114|  2.69k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|  2.69k|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|  2.69k|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 2.69k, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (4356:7): [True: 2.69k, False: 0]
  |  Branch (4356:39): [True: 2.69k, False: 0]
  ------------------
 4357|  2.69k|    return node->data->common.value_table;
 4358|       |
 4359|      0|  G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|      0|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 4360|       |  
 4361|      0| restart_table_peek:
 4362|      0|  has_refed_data = node && node->data && NODE_REFCOUNT (node) > 0;
  ------------------
  |  |  231|      0|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|      0|    gint gaig_temp;                                                          \
  |  |  |  |  113|      0|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  114|      0|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|      0|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|      0|  }))
  |  |  ------------------
  ------------------
  |  Branch (4362:20): [True: 0, False: 0]
  |  Branch (4362:28): [True: 0, False: 0]
  |  Branch (4362:42): [True: 0, False: 0]
  ------------------
 4363|      0|  has_table = has_refed_data && node->data->common.value_table->value_init;
  ------------------
  |  Branch (4363:15): [True: 0, False: 0]
  |  Branch (4363:33): [True: 0, False: 0]
  ------------------
 4364|      0|  if (has_refed_data)
  ------------------
  |  Branch (4364:7): [True: 0, False: 0]
  ------------------
 4365|      0|    {
 4366|      0|      if (has_table)
  ------------------
  |  Branch (4366:11): [True: 0, False: 0]
  ------------------
 4367|      0|	vtable = node->data->common.value_table;
 4368|      0|      else if (NODE_IS_IFACE (node))
  ------------------
  |  |  233|      0|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      0|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      0|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      0|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      0|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4369|      0|	{
 4370|      0|	  guint i;
 4371|       |	  
 4372|      0|	  for (i = 0; i < IFACE_NODE_N_PREREQUISITES (node); i++)
  ------------------
  |  |  236|      0|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (4372:16): [True: 0, False: 0]
  ------------------
 4373|      0|	    {
 4374|      0|	      GType prtype = IFACE_NODE_PREREQUISITES (node)[i];
  ------------------
  |  |  237|      0|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 4375|      0|	      TypeNode *prnode = lookup_type_node_I (prtype);
 4376|       |	      
 4377|      0|	      if (prnode->is_instantiatable)
  ------------------
  |  Branch (4377:12): [True: 0, False: 0]
  ------------------
 4378|      0|		{
 4379|      0|		  type = prtype;
 4380|      0|		  node = lookup_type_node_I (type);
 4381|      0|		  goto restart_table_peek;
 4382|      0|		}
 4383|      0|	    }
 4384|      0|	}
 4385|      0|    }
 4386|       |  
 4387|      0|  G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|      0|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 4388|       |  
 4389|      0|  if (vtable)
  ------------------
  |  Branch (4389:7): [True: 0, False: 0]
  ------------------
 4390|      0|    return vtable;
 4391|       |  
 4392|      0|  if (!node)
  ------------------
  |  Branch (4392:7): [True: 0, False: 0]
  ------------------
 4393|      0|    g_critical (G_STRLOC ": type id '%" G_GUINTPTR_FORMAT "' is invalid", (guintptr) type);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4394|      0|  if (!has_refed_data)
  ------------------
  |  Branch (4394:7): [True: 0, False: 0]
  ------------------
 4395|      0|    g_critical ("can't peek value table for type '%s' which is not currently referenced",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4396|      0|	        type_descriptive_name_I (type));
 4397|       |  
 4398|       |  return NULL;
 4399|      0|}
_g_type_boxed_init:
 4441|      2|{
 4442|      2|  TypeNode *node = lookup_type_node_I (type);
 4443|       |
 4444|      2|  node->data->boxed.copy_func = copy_func;
 4445|      2|  node->data->boxed.free_func = free_func;
 4446|      2|}
gtype.c:gobject_init_ctor:
 4667|      2|{
 4668|      2|  gobject_init ();
 4669|      2|}
g_type_add_instance_private:
 4788|      6|{
 4789|      6|  TypeNode *node = lookup_type_node_I (class_gtype);
 4790|       |
 4791|      6|  g_return_val_if_fail (private_size > 0, 0);
  ------------------
  |  |  663|      6|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      6|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      6|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      6|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      6|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      6| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      6|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      6|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      6|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      6|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      6|   else                                         \
  |  |  |  |  |  |  |  | 1240|      6|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      6|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      6|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      6|      { } \
  |  |  666|      6|    else \
  |  |  667|      6|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      6|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      6|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4792|      6|  g_return_val_if_fail (private_size <= 0xffff, 0);
  ------------------
  |  |  663|      6|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      6|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      6|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      6|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      6|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      6| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      6|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      6|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      6|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      6|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      6|   else                                         \
  |  |  |  |  |  |  |  | 1240|      6|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      6|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      6|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      6|      { } \
  |  |  666|      6|    else \
  |  |  667|      6|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      6|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      6|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4793|       |
 4794|      6|  if (!node || !node->is_classed || !node->is_instantiatable || !node->data)
  ------------------
  |  Branch (4794:7): [True: 0, False: 6]
  |  Branch (4794:16): [True: 0, False: 6]
  |  Branch (4794:37): [True: 0, False: 6]
  |  Branch (4794:65): [True: 0, False: 6]
  ------------------
 4795|      0|    {
 4796|      0|      g_critical ("cannot add private field to invalid (non-instantiatable) type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4797|      0|		  type_descriptive_name_I (class_gtype));
 4798|      0|      return 0;
 4799|      0|    }
 4800|       |
 4801|      6|  if (node->plugin != NULL)
  ------------------
  |  Branch (4801:7): [True: 0, False: 6]
  ------------------
 4802|      0|    {
 4803|      0|      g_critical ("cannot use g_type_add_instance_private() with dynamic type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4804|      0|                  type_descriptive_name_I (class_gtype));
 4805|      0|      return 0;
 4806|      0|    }
 4807|       |
 4808|       |  /* in the future, we want to register the private data size of a type
 4809|       |   * directly from the get_type() implementation so that we can take full
 4810|       |   * advantage of the type definition macros that we already have.
 4811|       |   *
 4812|       |   * unfortunately, this does not behave correctly if a class in the middle
 4813|       |   * of the type hierarchy uses the "old style" of private data registration
 4814|       |   * from the class_init() implementation, as the private data offset is not
 4815|       |   * going to be known until the full class hierarchy is initialized.
 4816|       |   *
 4817|       |   * in order to transition our code to the Glorious New Future™, we proceed
 4818|       |   * with a two-step implementation: first, we provide this new function to
 4819|       |   * register the private data size in the get_type() implementation and we
 4820|       |   * hide it behind a macro. the function will return the private size, instead
 4821|       |   * of the offset, which will be stored inside a static variable defined by
 4822|       |   * the G_DEFINE_TYPE_EXTENDED() macro. the G_DEFINE_TYPE_EXTENDED() macro will
 4823|       |   * check the variable and call g_type_class_adjust_private_offset(), which
 4824|       |   * will use the data size and actually register the private data, then
 4825|       |   * return the computed offset of the private data, which will be stored
 4826|       |   * inside the static variable, so we can use it to retrieve the pointer
 4827|       |   * to the private data structure.
 4828|       |   *
 4829|       |   * once all our code has been migrated to the new idiomatic form of private
 4830|       |   * data registration, we will change the g_type_add_instance_private()
 4831|       |   * function to actually perform the registration and return the offset
 4832|       |   * of the private data; g_type_class_adjust_private_offset() already checks
 4833|       |   * if the passed argument is negative (meaning that it's an offset in the
 4834|       |   * GTypeInstance allocation) and becomes a no-op if that's the case. this
 4835|       |   * should make the migration fully transparent even if we're effectively
 4836|       |   * copying this macro into everybody's code.
 4837|       |   */
 4838|      6|  return private_size;
 4839|      6|}
g_type_class_adjust_private_offset:
 4845|      4|{
 4846|      4|  GType class_gtype = ((GTypeClass *) g_class)->g_type;
 4847|      4|  TypeNode *node = lookup_type_node_I (class_gtype);
 4848|      4|  gssize private_size;
 4849|       |
 4850|      4|  g_return_if_fail (private_size_or_offset != NULL);
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4851|       |
 4852|       |  /* if we have been passed the offset instead of the private data size,
 4853|       |   * then we consider this as a no-op, and just return the value. see the
 4854|       |   * comment in g_type_add_instance_private() for the full explanation.
 4855|       |   */
 4856|      4|  if (*private_size_or_offset > 0)
  ------------------
  |  Branch (4856:7): [True: 4, False: 0]
  ------------------
 4857|      4|    g_return_if_fail (*private_size_or_offset <= 0xffff);
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4858|      0|  else
 4859|      0|    return;
 4860|       |
 4861|      4|  if (!node || !node->is_classed || !node->is_instantiatable || !node->data)
  ------------------
  |  Branch (4861:7): [True: 0, False: 4]
  |  Branch (4861:16): [True: 0, False: 4]
  |  Branch (4861:37): [True: 0, False: 4]
  |  Branch (4861:65): [True: 0, False: 4]
  ------------------
 4862|      0|    {
 4863|      0|      g_critical ("cannot add private field to invalid (non-instantiatable) type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4864|      0|		  type_descriptive_name_I (class_gtype));
 4865|      0|      *private_size_or_offset = 0;
 4866|      0|      return;
 4867|      0|    }
 4868|       |
 4869|      4|  if (NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|      4|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 2, False: 2]
  |  |  ------------------
  ------------------
 4870|      2|    {
 4871|      2|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      2|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 4872|      2|      if (node->data->instance.private_size != pnode->data->instance.private_size)
  ------------------
  |  Branch (4872:11): [True: 0, False: 2]
  ------------------
 4873|      0|	{
 4874|      0|	  g_critical ("g_type_add_instance_private() called multiple times for the same type");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4875|      0|          *private_size_or_offset = 0;
 4876|      0|	  return;
 4877|      0|	}
 4878|      2|    }
 4879|       |
 4880|      4|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      4|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 4881|       |
 4882|      4|  private_size = ALIGN_STRUCT (node->data->instance.private_size + *private_size_or_offset);
  ------------------
  |  |  130|      4|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      4|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      4|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 4883|      4|  g_assert (private_size <= 0xffff);
  ------------------
  |  |  275|      4|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      4|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      4|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      4|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4884|      4|  node->data->instance.private_size = private_size;
 4885|       |
 4886|      4|  *private_size_or_offset = -(gint) node->data->instance.private_size;
 4887|       |
 4888|      4|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      4|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 4889|      4|}
g_type_add_class_private:
 4979|      2|{
 4980|      2|  TypeNode *node = lookup_type_node_I (class_type);
 4981|      2|  gsize offset;
 4982|       |
 4983|      2|  g_return_if_fail (private_size > 0);
  ------------------
  |  |  650|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      2|      { } \
  |  |  653|      2|    else \
  |  |  654|      2|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4984|       |
 4985|      2|  if (!node || !node->is_classed || !node->data)
  ------------------
  |  Branch (4985:7): [True: 0, False: 2]
  |  Branch (4985:16): [True: 0, False: 2]
  |  Branch (4985:37): [True: 0, False: 2]
  ------------------
 4986|      0|    {
 4987|      0|      g_critical ("cannot add class private field to invalid type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4988|      0|		  type_descriptive_name_I (class_type));
 4989|      0|      return;
 4990|      0|    }
 4991|       |
 4992|      2|  if (NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|      2|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 2, False: 0]
  |  |  ------------------
  ------------------
 4993|      2|    {
 4994|      2|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      2|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 4995|      2|      if (node->data->class.class_private_size != pnode->data->class.class_private_size)
  ------------------
  |  Branch (4995:11): [True: 0, False: 2]
  ------------------
 4996|      0|	{
 4997|      0|	  g_critical ("g_type_add_class_private() called multiple times for the same type");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 4998|      0|	  return;
 4999|      0|	}
 5000|      2|    }
 5001|       |  
 5002|      2|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      2|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 5003|       |
 5004|      2|  offset = ALIGN_STRUCT (node->data->class.class_private_size);
  ------------------
  |  |  130|      2|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      2|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      2|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 5005|      2|  node->data->class.class_private_size = offset + private_size;
 5006|       |
 5007|      2|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      2|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 5008|      2|}
g_type_class_get_private:
 5013|    760|{
 5014|    760|  TypeNode *class_node;
 5015|    760|  TypeNode *private_node;
 5016|    760|  TypeNode *parent_node;
 5017|    760|  gsize offset;
 5018|       |
 5019|    760|  g_return_val_if_fail (klass != NULL, NULL);
  ------------------
  |  |  663|    760|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    760|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    760|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    760|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    760|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    760| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    760|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    760|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    760|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 760, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    760|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    760|   else                                         \
  |  |  |  |  |  |  |  | 1240|    760|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    760|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    760|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 760, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    760|      { } \
  |  |  666|    760|    else \
  |  |  667|    760|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    760|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    760|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 760]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5020|       |
 5021|    760|  class_node = lookup_type_node_I (klass->g_type);
 5022|    760|  if (G_UNLIKELY (!class_node || !class_node->is_classed))
  ------------------
  |  | 1245|    760|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    760|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    760| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    760|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    760|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.28k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 760]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 760]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    760|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    760|   else                                         \
  |  |  |  |  |  | 1240|    760|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    760|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    760|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 760]
  |  |  ------------------
  ------------------
 5023|      0|    {
 5024|      0|      g_critical ("class of invalid type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 5025|      0|		  type_descriptive_name_I (klass->g_type));
 5026|      0|      return NULL;
 5027|      0|    }
 5028|       |
 5029|    760|  private_node = lookup_type_node_I (private_type);
 5030|    760|  if (G_UNLIKELY (!private_node || !NODE_IS_ANCESTOR (private_node, class_node)))
  ------------------
  |  | 1245|    760|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    760|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    760| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    760|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    760|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  3.80k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 760, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 760, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 760]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    760|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    760|   else                                         \
  |  |  |  |  |  | 1240|    760|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    760|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    760|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 760]
  |  |  ------------------
  ------------------
 5031|      0|    {
 5032|      0|      g_critical ("attempt to retrieve private data for invalid type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 5033|      0|		  type_descriptive_name_I (private_type));
 5034|      0|      return NULL;
 5035|      0|    }
 5036|       |
 5037|    760|  offset = ALIGN_STRUCT (class_node->data->class.class_size);
  ------------------
  |  |  130|    760|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    760|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    760|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 5038|       |
 5039|    760|  if (NODE_PARENT_TYPE (private_node))
  ------------------
  |  |  228|    760|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 760, False: 0]
  |  |  ------------------
  ------------------
 5040|    760|    {
 5041|    760|      parent_node = lookup_type_node_I (NODE_PARENT_TYPE (private_node));
  ------------------
  |  |  228|    760|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 5042|    760|      g_assert (parent_node->data && NODE_REFCOUNT (parent_node) > 0);
  ------------------
  |  |  275|    760|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    760|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    760|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    760|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    760|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    760| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    760|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    760|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.80k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 760]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 760, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 760, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    760|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    760|   else                                         \
  |  |  |  |  |  |  |  | 1240|    760|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    760|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    760|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 760, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    760|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    760|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    760|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 760]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5043|       |
 5044|    760|      if (G_UNLIKELY (private_node->data->class.class_private_size == parent_node->data->class.class_private_size))
  ------------------
  |  | 1245|    760|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    760|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    760| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    760|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    760|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    760|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 760]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    760|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    760|   else                                         \
  |  |  |  |  |  | 1240|    760|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    760|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    760|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    760|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    760|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 760]
  |  |  ------------------
  ------------------
 5045|      0|	{
 5046|      0|	  g_critical ("g_type_instance_get_class_private() requires a prior call to g_type_add_class_private()");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 5047|      0|	  return NULL;
 5048|      0|	}
 5049|       |
 5050|    760|      offset += ALIGN_STRUCT (parent_node->data->class.class_private_size);
  ------------------
  |  |  130|    760|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    760|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    760|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 5051|    760|    }
 5052|       |
 5053|    760|  return G_STRUCT_MEMBER_P (klass, offset);
  ------------------
  |  |  971|    760|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 5054|    760|}
g_type_ensure:
 5077|      5|{
 5078|       |  /* In theory, @type has already been resolved and so there's nothing
 5079|       |   * to do here. But this protects us in the case where the function
 5080|       |   * gets inlined (as it might in gobject_init_ctor() above).
 5081|       |   */
 5082|      5|  if (G_UNLIKELY (type == (GType)-1))
  ------------------
  |  | 1245|      5|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      5|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      5| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      5|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      5|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      5|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 5]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      5|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      5|   else                                         \
  |  |  |  |  |  | 1240|      5|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      5|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      5|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 5]
  |  |  ------------------
  ------------------
 5083|      5|    g_error ("can't happen");
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5084|      5|}
gtype.c:lookup_type_node_I:
  369|   167k|{
  370|   167k|  if (utype > G_TYPE_FUNDAMENTAL_MAX)
  ------------------
  |  |   55|   167k|#define	G_TYPE_FUNDAMENTAL_MAX		(255 << G_TYPE_FUNDAMENTAL_SHIFT)
  |  |  ------------------
  |  |  |  |   48|   167k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  |  Branch (370:7): [True: 162k, False: 4.98k]
  ------------------
  371|   162k|    return (TypeNode*) (utype & ~TYPE_ID_MASK);
  ------------------
  |  |  242|   162k|#define	TYPE_ID_MASK				((GType) ((1 << G_TYPE_FUNDAMENTAL_SHIFT) - 1))
  |  |  ------------------
  |  |  |  |   48|   162k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  372|  4.98k|  else
  373|  4.98k|    return static_fundamental_type_nodes[utype >> G_TYPE_FUNDAMENTAL_SHIFT];
  ------------------
  |  |   48|  4.98k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  ------------------
  374|   167k|}
gtype.c:type_iface_add_prerequisite_W:
 1493|      3|{
 1494|      3|  GType prerequisite_type = NODE_TYPE (prerequisite_node);
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1495|      3|  GType *prerequisites, *dependants;
 1496|      3|  guint n_dependants, i;
 1497|       |  
 1498|      3|  g_assert (NODE_IS_IFACE (iface) &&
  ------------------
  |  |  275|      3|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      3|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     18|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      3|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      3|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1499|      3|	    IFACE_NODE_N_PREREQUISITES (iface) < MAX_N_PREREQUISITES &&
 1500|      3|	    (prerequisite_node->is_instantiatable || NODE_IS_IFACE (prerequisite_node)));
 1501|       |  
 1502|      3|  prerequisites = IFACE_NODE_PREREQUISITES (iface);
  ------------------
  |  |  237|      3|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 1503|      3|  for (i = 0; i < IFACE_NODE_N_PREREQUISITES (iface); i++)
  ------------------
  |  |  236|      3|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (1503:15): [True: 0, False: 3]
  ------------------
 1504|      0|    if (prerequisites[i] == prerequisite_type)
  ------------------
  |  Branch (1504:9): [True: 0, False: 0]
  ------------------
 1505|      0|      return;			/* we already have that prerequisiste */
 1506|      0|    else if (prerequisites[i] > prerequisite_type)
  ------------------
  |  Branch (1506:14): [True: 0, False: 0]
  ------------------
 1507|      0|      break;
 1508|      3|  IFACE_NODE_N_PREREQUISITES (iface) += 1;
  ------------------
  |  |  236|      3|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
 1509|      3|  IFACE_NODE_PREREQUISITES (iface) = g_renew (GType,
  ------------------
  |  |  237|      3|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
                IFACE_NODE_PREREQUISITES (iface) = g_renew (GType,
  ------------------
  |  |  346|      3|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|      3|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|      3|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|      3|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|      3|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|      3|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  279|      3|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|      3|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  281|      3|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|      3|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|      3|	  else							\
  |  |  |  |  284|      3|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|      3|	  __p;							\
  |  |  |  |  286|      3|	}))
  |  |  ------------------
  ------------------
 1510|      3|					      IFACE_NODE_PREREQUISITES (iface),
 1511|      3|					      IFACE_NODE_N_PREREQUISITES (iface));
 1512|      3|  prerequisites = IFACE_NODE_PREREQUISITES (iface);
  ------------------
  |  |  237|      3|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 1513|      3|  memmove (prerequisites + i + 1, prerequisites + i,
 1514|      3|           sizeof (prerequisites[0]) * (IFACE_NODE_N_PREREQUISITES (iface) - i - 1));
  ------------------
  |  |  236|      3|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
 1515|      3|  prerequisites[i] = prerequisite_type;
 1516|       |  
 1517|       |  /* we want to get notified when prerequisites get added to prerequisite_node */
 1518|      3|  if (NODE_IS_IFACE (prerequisite_node))
  ------------------
  |  |  233|      3|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      3|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      3|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      3|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      3|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 0, False: 3]
  |  |  ------------------
  ------------------
 1519|      0|    {
 1520|      0|      dependants = iface_node_get_dependants_array_L (prerequisite_node);
  ------------------
  |  |  240|      0|#define	iface_node_get_dependants_array_L(n)	((GType*) type_get_qdata_L ((n), static_quark_dependants_array))
  ------------------
 1521|      0|      n_dependants = dependants ? dependants[0] : 0;
  ------------------
  |  Branch (1521:22): [True: 0, False: 0]
  ------------------
 1522|      0|      n_dependants += 1;
 1523|      0|      dependants = g_renew (GType, dependants, n_dependants + 1);
  ------------------
  |  |  346|      0|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|      0|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  279|      0|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  281|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|      0|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|      0|	  else							\
  |  |  |  |  284|      0|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|      0|	  __p;							\
  |  |  |  |  286|      0|	}))
  |  |  ------------------
  ------------------
 1524|      0|      dependants[n_dependants] = NODE_TYPE (iface);
  ------------------
  |  |  227|      0|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1525|      0|      dependants[0] = n_dependants;
 1526|      0|      iface_node_set_dependants_array_W (prerequisite_node, dependants);
  ------------------
  |  |  241|      0|#define	iface_node_set_dependants_array_W(n,d)	(type_set_qdata_W ((n), static_quark_dependants_array, (d)))
  ------------------
 1527|      0|    }
 1528|       |  
 1529|       |  /* we need to notify all dependants */
 1530|      3|  dependants = iface_node_get_dependants_array_L (iface);
  ------------------
  |  |  240|      3|#define	iface_node_get_dependants_array_L(n)	((GType*) type_get_qdata_L ((n), static_quark_dependants_array))
  ------------------
 1531|      3|  n_dependants = dependants ? dependants[0] : 0;
  ------------------
  |  Branch (1531:18): [True: 0, False: 3]
  ------------------
 1532|      3|  for (i = 1; i <= n_dependants; i++)
  ------------------
  |  Branch (1532:15): [True: 0, False: 3]
  ------------------
 1533|      0|    type_iface_add_prerequisite_W (lookup_type_node_I (dependants[i]), prerequisite_node);
 1534|      3|}
gtype.c:check_type_name_I:
  721|    102|{
  722|    102|  static const gchar extra_chars[] = "-_+";
  723|    102|  const gchar *p = type_name;
  724|    102|  gboolean name_valid;
  725|       |  
  726|    102|  if (!type_name[0] || !type_name[1] || !type_name[2])
  ------------------
  |  Branch (726:7): [True: 0, False: 102]
  |  Branch (726:24): [True: 0, False: 102]
  |  Branch (726:41): [True: 0, False: 102]
  ------------------
  727|      0|    {
  728|      0|      g_critical ("type name '%s' is too short", type_name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  729|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  730|      0|    }
  731|       |  /* check the first letter */
  732|    102|  name_valid = (p[0] >= 'A' && p[0] <= 'Z') || (p[0] >= 'a' && p[0] <= 'z') || p[0] == '_';
  ------------------
  |  Branch (732:17): [True: 102, False: 0]
  |  Branch (732:32): [True: 76, False: 26]
  |  Branch (732:49): [True: 26, False: 0]
  |  Branch (732:64): [True: 26, False: 0]
  |  Branch (732:80): [True: 0, False: 0]
  ------------------
  733|    970|  for (p = type_name + 1; *p; p++)
  ------------------
  |  Branch (733:27): [True: 868, False: 102]
  ------------------
  734|    868|    name_valid &= ((p[0] >= 'A' && p[0] <= 'Z') ||
  ------------------
  |  Branch (734:21): [True: 852, False: 16]
  |  Branch (734:36): [True: 145, False: 707]
  ------------------
  735|    723|		   (p[0] >= 'a' && p[0] <= 'z') ||
  ------------------
  |  Branch (735:7): [True: 707, False: 16]
  |  Branch (735:22): [True: 707, False: 0]
  ------------------
  736|     16|		   (p[0] >= '0' && p[0] <= '9') ||
  ------------------
  |  Branch (736:7): [True: 16, False: 0]
  |  Branch (736:22): [True: 16, False: 0]
  ------------------
  737|      0|		   strchr (extra_chars, p[0]));
  ------------------
  |  Branch (737:6): [True: 0, False: 0]
  ------------------
  738|    102|  if (!name_valid)
  ------------------
  |  Branch (738:7): [True: 0, False: 102]
  ------------------
  739|      0|    {
  740|      0|      g_critical ("type name '%s' contains invalid characters", type_name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  741|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  742|      0|    }
  743|    102|  if (g_type_from_name (type_name))
  ------------------
  |  Branch (743:7): [True: 0, False: 102]
  ------------------
  744|      0|    {
  745|      0|      g_critical ("cannot register existing type '%s'", type_name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  746|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  747|      0|    }
  748|       |  
  749|    102|  return TRUE;
  ------------------
  |  |  929|    102|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    102|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  750|    102|}
gtype.c:type_node_fundamental_new_W:
  522|     42|{
  523|     42|  GTypeFundamentalInfo *finfo;
  524|     42|  TypeNode *node;
  525|       |
  526|     42|  g_assert ((ftype & TYPE_ID_MASK) == 0);
  ------------------
  |  |  275|     42|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     42|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     42|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     42|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     42|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     42| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     42|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     42|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     42|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 42, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     42|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     42|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     42|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     42|   else                                         \
  |  |  |  |  |  |  |  | 1240|     42|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     42|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     42|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     42|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     42|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 42, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     42|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     42|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     42|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 42]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  527|     42|  g_assert (ftype <= G_TYPE_FUNDAMENTAL_MAX);
  ------------------
  |  |  275|     42|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     42|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     42|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     42|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     42|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     42| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     42|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     42|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     42|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 42, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     42|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     42|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     42|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     42|   else                                         \
  |  |  |  |  |  |  |  | 1240|     42|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     42|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     42|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     42|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     42|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 42, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     42|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     42|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     42|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 42]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  528|       |
  529|     42|  if (ftype >> G_TYPE_FUNDAMENTAL_SHIFT == static_fundamental_next)
  ------------------
  |  |   48|     42|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  ------------------
  |  Branch (529:7): [True: 0, False: 42]
  ------------------
  530|      0|    static_fundamental_next++;
  531|       |
  532|     42|  node = type_node_any_new_W (NULL, ftype, name, NULL, type_flags);
  533|       |
  534|     42|  finfo = type_node_fundamental_info_I (node);
  535|     42|  finfo->type_flags = type_flags & TYPE_FUNDAMENTAL_FLAG_MASK;
  ------------------
  |  |  102|     42|#define TYPE_FUNDAMENTAL_FLAG_MASK (G_TYPE_FLAG_CLASSED | \
  |  |  103|     42|				    G_TYPE_FLAG_INSTANTIATABLE | \
  |  |  104|     42|				    G_TYPE_FLAG_DERIVABLE | \
  |  |  105|     42|				    G_TYPE_FLAG_DEEP_DERIVABLE)
  ------------------
  536|       |
  537|     42|  return node;
  538|     42|}
gtype.c:type_node_any_new_W:
  401|    106|{
  402|    106|  guint n_supers;
  403|    106|  GType type;
  404|    106|  TypeNode *node;
  405|    106|  guint i, node_size = 0;
  406|       |
  407|    106|  n_supers = pnode ? pnode->n_supers + 1 : 0;
  ------------------
  |  Branch (407:14): [True: 64, False: 42]
  ------------------
  408|       |  
  409|    106|  if (!pnode)
  ------------------
  |  Branch (409:7): [True: 42, False: 64]
  ------------------
  410|     42|    node_size += SIZEOF_FUNDAMENTAL_INFO;	      /* fundamental type info */
  ------------------
  |  |  116|     42|#define	SIZEOF_FUNDAMENTAL_INFO	   ((gssize) MAX (MAX (sizeof (GTypeFundamentalInfo), \
  |  |  ------------------
  |  |  |  |  933|     84|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (933:21): [Folded, False: 42]
  |  |  |  |  |  Branch (933:23): [Folded, False: 42]
  |  |  |  |  |  Branch (933:36): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|     42|						       sizeof (gpointer)), \
  |  |  118|     42|                                                  sizeof (glong)))
  ------------------
  411|    106|  node_size += SIZEOF_BASE_TYPE_NODE ();	      /* TypeNode structure */
  ------------------
  |  |  222|    106|#define SIZEOF_BASE_TYPE_NODE()			(G_STRUCT_OFFSET (TypeNode, supers))
  |  |  ------------------
  |  |  |  |  964|    106|      ((glong) offsetof (struct_type, member))
  |  |  ------------------
  ------------------
  412|    106|  node_size += (sizeof (GType) * (1 + n_supers + 1)); /* self + ancestors + (0) for ->supers[] */
  413|    106|  node = g_malloc0 (node_size);
  414|    106|  if (!pnode)					      /* offset fundamental types */
  ------------------
  |  Branch (414:7): [True: 42, False: 64]
  ------------------
  415|     42|    {
  416|     42|      node = G_STRUCT_MEMBER_P (node, SIZEOF_FUNDAMENTAL_INFO);
  ------------------
  |  |  971|    168|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  |  |  |  Branch (971:50): [Folded, False: 42]
  |  |  |  Branch (971:50): [Folded, False: 0]
  |  |  |  Branch (971:50): [Folded, False: 42]
  |  |  ------------------
  ------------------
  417|     42|      static_fundamental_type_nodes[ftype >> G_TYPE_FUNDAMENTAL_SHIFT] = node;
  ------------------
  |  |   48|     42|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  ------------------
  418|     42|      type = ftype;
  419|       |
  420|     42|#if ENABLE_VALGRIND
  421|     42|      VALGRIND_MALLOCLIKE_BLOCK (node, node_size - SIZEOF_FUNDAMENTAL_INFO, FALSE, TRUE);
  ------------------
  |  | 6480|     42|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|     42|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|     42|    __extension__                                                 \
  |  |  |  |  |  |  415|     42|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|     42|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|     42|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|     42|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|    168|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (419:32): [Folded, False: 42]
  |  |  |  |  |  |  |  Branch (419:32): [Folded, False: 0]
  |  |  |  |  |  |  |  Branch (419:32): [Folded, False: 42]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  420|     42|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|     42|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|     42|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|     42|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|     42|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|     42|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|     42|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|     42|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|     42|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|     42|                    );                                            \
  |  |  |  |  |  |  430|     42|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|     42|    })
  |  |  |  |  ------------------
  |  |  |  |  205|     42|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|     42|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 42]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|     42|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
  422|     42|#endif
  423|     42|    }
  424|     64|  else
  425|     64|    type = GPOINTER_TO_TYPE (node);
  ------------------
  |  | 2722|     64|#define GPOINTER_TO_TYPE(p) ((GType) (guintptr) (p)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
  426|       |  
  427|    106|  g_assert ((type & TYPE_ID_MASK) == 0);
  ------------------
  |  |  275|    106|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    106|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    106|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    106|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    106|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    106| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    106|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    106|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    106|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 106, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    106|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    106|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    106|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    106|   else                                         \
  |  |  |  |  |  |  |  | 1240|    106|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    106|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    106|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    106|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    106|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 106, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    106|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    106|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    106|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 106]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  428|       |  
  429|    106|  node->n_supers = n_supers;
  430|    106|  if (!pnode)
  ------------------
  |  Branch (430:7): [True: 42, False: 64]
  ------------------
  431|     42|    {
  432|     42|      node->supers[0] = type;
  433|     42|      node->supers[1] = 0;
  434|       |      
  435|     42|      node->is_abstract = (type_flags & G_TYPE_FLAG_ABSTRACT) != 0;
  436|     42|      node->is_classed = (type_flags & G_TYPE_FLAG_CLASSED) != 0;
  437|     42|      node->is_deprecated = (type_flags & G_TYPE_FLAG_DEPRECATED) != 0;
  438|     42|      node->is_instantiatable = (type_flags & G_TYPE_FLAG_INSTANTIATABLE) != 0;
  439|       |      
  440|     42|      if (NODE_IS_IFACE (node))
  ------------------
  |  |  233|     42|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     42|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     42|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     42|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     42|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 2, False: 40]
  |  |  ------------------
  ------------------
  441|      2|	{
  442|      2|          IFACE_NODE_N_PREREQUISITES (node) = 0;
  ------------------
  |  |  236|      2|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  443|      2|	  IFACE_NODE_PREREQUISITES (node) = NULL;
  ------------------
  |  |  237|      2|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
  444|      2|	}
  445|     40|      else
  446|     40|	_g_atomic_array_init (CLASSED_NODE_IFACES_ENTRIES (node));
  ------------------
  |  |  234|     40|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
  447|     42|    }
  448|     64|  else
  449|     64|    {
  450|     64|      node->supers[0] = type;
  451|     64|      memcpy (node->supers + 1, pnode->supers, sizeof (GType) * (1 + pnode->n_supers + 1));
  452|       |      
  453|     64|      node->is_abstract = (type_flags & G_TYPE_FLAG_ABSTRACT) != 0;
  454|     64|      node->is_classed = pnode->is_classed;
  455|     64|      node->is_deprecated = (type_flags & G_TYPE_FLAG_DEPRECATED) != 0;
  456|     64|      node->is_instantiatable = pnode->is_instantiatable;
  457|       |
  458|     64|      node->is_deprecated |= pnode->is_deprecated;
  459|       |
  460|     64|      if (NODE_IS_IFACE (node))
  ------------------
  |  |  233|     64|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     64|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     64|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     64|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     64|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 5, False: 59]
  |  |  ------------------
  ------------------
  461|      5|	{
  462|      5|	  IFACE_NODE_N_PREREQUISITES (node) = 0;
  ------------------
  |  |  236|      5|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  463|      5|	  IFACE_NODE_PREREQUISITES (node) = NULL;
  ------------------
  |  |  237|      5|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
  464|      5|	}
  465|     59|      else
  466|     59|	{
  467|     59|	  guint j;
  468|     59|	  IFaceEntries *entries;
  469|       |
  470|     59|	  entries = _g_atomic_array_copy (CLASSED_NODE_IFACES_ENTRIES (pnode),
  ------------------
  |  |  234|     59|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
  471|     59|					  IFACE_ENTRIES_HEADER_SIZE,
  ------------------
  |  |  268|     59|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  ------------------
  472|     59|					  0);
  473|     59|	  if (entries)
  ------------------
  |  Branch (473:8): [True: 5, False: 54]
  ------------------
  474|      5|	    {
  475|     10|	      for (j = 0; j < IFACE_ENTRIES_N_ENTRIES (entries); j++)
  ------------------
  |  |  269|     10|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|     10|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|     10|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (475:20): [True: 5, False: 5]
  ------------------
  476|      5|		{
  477|      5|		  entries->entry[j].vtable = NULL;
  478|      5|		  entries->entry[j].init_state = UNINITIALIZED;
  479|      5|		}
  480|      5|	      _g_atomic_array_update (CLASSED_NODE_IFACES_ENTRIES (node),
  ------------------
  |  |  234|      5|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
  481|      5|				      entries);
  482|      5|	    }
  483|     59|	}
  484|       |
  485|     64|      i = pnode->n_children++;
  486|     64|      pnode->children = g_renew (GType, pnode->children, pnode->n_children);
  ------------------
  |  |  346|     64|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|     64|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|     64|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|     64|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|     64|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|     64|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 64]
  |  |  |  |  ------------------
  |  |  |  |  279|     64|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|     64|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 64]
  |  |  |  |  ------------------
  |  |  |  |  281|     64|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|     64|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|     64|	  else							\
  |  |  |  |  284|     64|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|     64|	  __p;							\
  |  |  |  |  286|     64|	}))
  |  |  ------------------
  ------------------
  487|     64|      pnode->children[i] = type;
  488|     64|    }
  489|       |
  490|    106|  TRACE(GOBJECT_TYPE_NEW(name, node->supers[1], type));
  491|       |
  492|    106|  node->plugin = plugin;
  493|    106|  node->n_children = 0;
  494|    106|  node->children = NULL;
  495|    106|  node->data = NULL;
  496|    106|  node->qname = g_quark_from_string (name);
  497|    106|  node->global_gdata = NULL;
  498|    106|  g_hash_table_insert (static_type_nodes_ht,
  499|    106|		       (gpointer) g_quark_to_string (node->qname),
  500|    106|		       GTYPE_TO_POINTER (type));
  ------------------
  |  | 2732|    106|#define GTYPE_TO_POINTER(t) ((gpointer) (guintptr) (t)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
  501|       |
  502|    106|  g_atomic_int_inc ((gint *)&type_registration_serial);
  ------------------
  |  |  162|    106|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    106|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|    106|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    106|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|    106|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 106]
  |  |  ------------------
  |  |  165|    106|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|    106|  }))
  ------------------
  503|       |
  504|    106|  return node;
  505|    106|}
gtype.c:type_node_fundamental_info_I:
  509|    208|{
  510|    208|  GType ftype = NODE_FUNDAMENTAL_TYPE (node);
  ------------------
  |  |  229|    208|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  511|       |  
  512|    208|  if (ftype != NODE_TYPE (node))
  ------------------
  |  |  227|    208|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
  |  Branch (512:7): [True: 5, False: 203]
  ------------------
  513|      5|    node = lookup_type_node_I (ftype);
  514|       |  
  515|    208|  return node ? G_STRUCT_MEMBER_P (node, -SIZEOF_FUNDAMENTAL_INFO) : NULL;
  ------------------
  |  |  971|    832|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  |  |  |  Branch (971:50): [Folded, False: 208]
  |  |  |  Branch (971:50): [Folded, False: 0]
  |  |  |  Branch (971:50): [Folded, False: 208]
  |  |  ------------------
  ------------------
  |  Branch (515:10): [True: 208, False: 0]
  ------------------
  516|    208|}
gtype.c:check_type_info_I:
  877|    102|{
  878|    102|  GTypeFundamentalInfo *finfo = type_node_fundamental_info_I (lookup_type_node_I (ftype));
  879|    102|  gboolean is_interface = ftype == G_TYPE_INTERFACE;
  ------------------
  |  |   78|    102|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  ------------------
  |  |  |  |  227|    102|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|    102|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  880|       |  
  881|    102|  g_assert (ftype <= G_TYPE_FUNDAMENTAL_MAX && !(ftype & TYPE_ID_MASK));
  ------------------
  |  |  275|    102|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    102|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    306|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    102|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    102|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  882|       |  
  883|       |  /* check instance members */
  884|    102|  if (!(finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE) &&
  ------------------
  |  Branch (884:7): [True: 43, False: 59]
  ------------------
  885|     43|      (info->instance_size || info->instance_init))
  ------------------
  |  Branch (885:8): [True: 0, False: 43]
  |  Branch (885:31): [True: 0, False: 43]
  ------------------
  886|      0|    {
  887|      0|      if (pnode)
  ------------------
  |  Branch (887:11): [True: 0, False: 0]
  ------------------
  888|      0|	g_critical ("cannot instantiate '%s', derived from non-instantiatable parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  889|      0|		    type_name,
  890|      0|		    NODE_NAME (pnode));
  891|      0|      else
  892|      0|	g_critical ("cannot instantiate '%s' as non-instantiatable fundamental",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  893|      0|		    type_name);
  894|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  895|      0|    }
  896|       |  /* check class & interface members */
  897|    102|  if (!((finfo->type_flags & G_TYPE_FLAG_CLASSED) || is_interface) &&
  ------------------
  |  Branch (897:9): [True: 63, False: 39]
  |  Branch (897:54): [True: 5, False: 34]
  ------------------
  898|     34|      (info->class_init || info->class_finalize || info->class_data ||
  ------------------
  |  Branch (898:8): [True: 0, False: 34]
  |  Branch (898:28): [True: 0, False: 34]
  |  Branch (898:52): [True: 0, False: 34]
  ------------------
  899|     34|       info->class_size || info->base_init || info->base_finalize))
  ------------------
  |  Branch (899:8): [True: 0, False: 34]
  |  Branch (899:28): [True: 0, False: 34]
  |  Branch (899:47): [True: 0, False: 34]
  ------------------
  900|      0|    {
  901|      0|      if (pnode)
  ------------------
  |  Branch (901:11): [True: 0, False: 0]
  ------------------
  902|      0|	g_critical ("cannot create class for '%s', derived from non-classed parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  903|      0|		    type_name,
  904|      0|                    NODE_NAME (pnode));
  905|      0|      else
  906|      0|	g_critical ("cannot create class for '%s' as non-classed fundamental",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  907|      0|		    type_name);
  908|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  909|      0|    }
  910|       |  /* check interface size */
  911|    102|  if (is_interface && info->class_size < sizeof (GTypeInterface))
  ------------------
  |  Branch (911:7): [True: 5, False: 97]
  |  Branch (911:23): [True: 0, False: 5]
  ------------------
  912|      0|    {
  913|      0|      g_critical ("specified interface size for type '%s' is smaller than 'GTypeInterface' size",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  914|      0|		  type_name);
  915|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  916|      0|    }
  917|       |  /* check class size */
  918|    102|  if (finfo->type_flags & G_TYPE_FLAG_CLASSED)
  ------------------
  |  Branch (918:7): [True: 63, False: 39]
  ------------------
  919|     63|    {
  920|     63|      if (info->class_size < sizeof (GTypeClass))
  ------------------
  |  Branch (920:11): [True: 0, False: 63]
  ------------------
  921|      0|	{
  922|      0|	  g_critical ("specified class size for type '%s' is smaller than 'GTypeClass' size",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  923|      0|		      type_name);
  924|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  925|      0|	}
  926|     63|      if (pnode && info->class_size < pnode->data->class.class_size)
  ------------------
  |  Branch (926:11): [True: 55, False: 8]
  |  Branch (926:20): [True: 0, False: 55]
  ------------------
  927|      0|	{
  928|      0|	  g_critical ("specified class size for type '%s' is smaller "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  929|      0|		      "than the parent type's '%s' class size",
  930|      0|		      type_name,
  931|      0|		      NODE_NAME (pnode));
  932|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  933|      0|	}
  934|     63|    }
  935|       |  /* check instance size */
  936|    102|  if (finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE)
  ------------------
  |  Branch (936:7): [True: 59, False: 43]
  ------------------
  937|     59|    {
  938|     59|      if (info->instance_size < sizeof (GTypeInstance))
  ------------------
  |  Branch (938:11): [True: 0, False: 59]
  ------------------
  939|      0|	{
  940|      0|	  g_critical ("specified instance size for type '%s' is smaller than 'GTypeInstance' size",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  941|      0|		      type_name);
  942|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  943|      0|	}
  944|     59|      if (pnode && info->instance_size < pnode->data->instance.instance_size)
  ------------------
  |  Branch (944:11): [True: 55, False: 4]
  |  Branch (944:20): [True: 0, False: 55]
  ------------------
  945|      0|	{
  946|      0|	  g_critical ("specified instance size for type '%s' is smaller "
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  947|      0|		      "than the parent type's '%s' instance size",
  948|      0|		      type_name,
  949|      0|		      NODE_NAME (pnode));
  950|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  951|      0|	}
  952|     59|    }
  953|       |  
  954|    102|  return TRUE;
  ------------------
  |  |  929|    102|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    102|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  955|    102|}
gtype.c:type_data_make_W:
 1073|    104|{
 1074|    104|  TypeData *data;
 1075|    104|  GTypeValueTable *vtable = NULL;
 1076|    104|  guint vtable_size = 0;
 1077|       |  
 1078|    104|  g_assert (node->data == NULL && info != NULL);
  ------------------
  |  |  275|    104|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    104|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    104|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    104|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    104|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    104| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    104|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    104|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    312|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 104, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 104, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    104|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    104|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    104|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    104|   else                                         \
  |  |  |  |  |  |  |  | 1240|    104|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    104|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    104|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    104|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    104|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 104, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    104|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    104|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    104|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 104]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1079|       |  
 1080|    104|  if (!value_table)
  ------------------
  |  Branch (1080:7): [True: 66, False: 38]
  ------------------
 1081|     66|    {
 1082|     66|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     66|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1083|       |      
 1084|     66|      if (pnode)
  ------------------
  |  Branch (1084:11): [True: 62, False: 4]
  ------------------
 1085|     62|	vtable = pnode->data->common.value_table;
 1086|      4|      else
 1087|      4|	{
 1088|      4|          static const GTypeValueTable zero_vtable =
 1089|      4|            { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
 1090|       |	  
 1091|      4|	  value_table = &zero_vtable;
 1092|      4|	}
 1093|     66|    }
 1094|    104|  if (value_table)
  ------------------
  |  Branch (1094:7): [True: 42, False: 62]
  ------------------
 1095|     42|    {
 1096|       |      /* need to setup vtable_size since we have to allocate it with data in one chunk */
 1097|     42|      vtable_size = sizeof (GTypeValueTable);
 1098|     42|      if (value_table->collect_format)
  ------------------
  |  Branch (1098:11): [True: 38, False: 4]
  ------------------
 1099|     38|	vtable_size += strlen (value_table->collect_format);
 1100|     42|      if (value_table->lcopy_format)
  ------------------
  |  Branch (1100:11): [True: 38, False: 4]
  ------------------
 1101|     38|	vtable_size += strlen (value_table->lcopy_format);
 1102|     42|      vtable_size += 2;
 1103|     42|    }
 1104|       |   
 1105|    104|  if (node->is_instantiatable) /* careful, is_instantiatable is also is_classed */
  ------------------
  |  Branch (1105:7): [True: 59, False: 45]
  ------------------
 1106|     59|    {
 1107|     59|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     59|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1108|       |
 1109|     59|      data = g_malloc0 (sizeof (InstanceData) + vtable_size);
 1110|     59|      if (vtable_size)
  ------------------
  |  Branch (1110:11): [True: 4, False: 55]
  ------------------
 1111|      4|	vtable = G_STRUCT_MEMBER_P (data, sizeof (InstanceData));
  ------------------
  |  |  971|      4|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1112|     59|      data->instance.class_size = info->class_size;
 1113|     59|      data->instance.class_init_base = info->base_init;
 1114|     59|      data->instance.class_finalize_base = info->base_finalize;
 1115|     59|      data->instance.class_init = info->class_init;
 1116|     59|      data->instance.class_finalize = info->class_finalize;
 1117|     59|      data->instance.class_data = info->class_data;
 1118|     59|      data->instance.class = NULL;
 1119|     59|      data->instance.init_state = UNINITIALIZED;
 1120|     59|      data->instance.instance_size = info->instance_size;
 1121|       |      /* We'll set the final value for data->instance.private size
 1122|       |       * after the parent class has been initialized
 1123|       |       */
 1124|     59|      data->instance.private_size = 0;
 1125|     59|      data->instance.class_private_size = 0;
 1126|     59|      if (pnode)
  ------------------
  |  Branch (1126:11): [True: 55, False: 4]
  ------------------
 1127|     55|        data->instance.class_private_size = pnode->data->instance.class_private_size;
 1128|     59|      data->instance.instance_init = info->instance_init;
 1129|     59|    }
 1130|     45|  else if (node->is_classed) /* only classed */
  ------------------
  |  Branch (1130:12): [True: 4, False: 41]
  ------------------
 1131|      4|    {
 1132|      4|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      4|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1133|       |
 1134|      4|      data = g_malloc0 (sizeof (ClassData) + vtable_size);
 1135|      4|      if (vtable_size)
  ------------------
  |  Branch (1135:11): [True: 4, False: 0]
  ------------------
 1136|      4|	vtable = G_STRUCT_MEMBER_P (data, sizeof (ClassData));
  ------------------
  |  |  971|      4|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1137|      4|      data->class.class_size = info->class_size;
 1138|      4|      data->class.class_init_base = info->base_init;
 1139|      4|      data->class.class_finalize_base = info->base_finalize;
 1140|      4|      data->class.class_init = info->class_init;
 1141|      4|      data->class.class_finalize = info->class_finalize;
 1142|      4|      data->class.class_data = info->class_data;
 1143|      4|      data->class.class = NULL;
 1144|      4|      data->class.class_private_size = 0;
 1145|      4|      if (pnode)
  ------------------
  |  Branch (1145:11): [True: 0, False: 4]
  ------------------
 1146|      0|        data->class.class_private_size = pnode->data->class.class_private_size;
 1147|      4|      data->class.init_state = UNINITIALIZED;
 1148|      4|    }
 1149|     41|  else if (NODE_IS_IFACE (node))
  ------------------
  |  |  233|     41|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     41|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     41|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     41|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     41|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 7, False: 34]
  |  |  ------------------
  ------------------
 1150|      7|    {
 1151|      7|      data = g_malloc0 (sizeof (IFaceData) + vtable_size);
 1152|      7|      if (vtable_size)
  ------------------
  |  Branch (1152:11): [True: 2, False: 5]
  ------------------
 1153|      2|	vtable = G_STRUCT_MEMBER_P (data, sizeof (IFaceData));
  ------------------
  |  |  971|      2|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1154|      7|      data->iface.vtable_size = info->class_size;
 1155|      7|      data->iface.vtable_init_base = info->base_init;
 1156|      7|      data->iface.vtable_finalize_base = info->base_finalize;
 1157|      7|      data->iface.dflt_init = info->class_init;
 1158|      7|      data->iface.dflt_finalize = info->class_finalize;
 1159|      7|      data->iface.dflt_data = info->class_data;
 1160|      7|      data->iface.dflt_vtable = NULL;
 1161|      7|    }
 1162|     34|  else if (NODE_IS_BOXED (node))
  ------------------
  |  |  232|     34|#define	NODE_IS_BOXED(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_BOXED)
  |  |  ------------------
  |  |  |  |  229|     34|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_BOXED(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_BOXED)
  |  |  ------------------
  |  |  |  |  177|     34|#define G_TYPE_BOXED			G_TYPE_MAKE_FUNDAMENTAL (18)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     34|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     34|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (232:31): [True: 4, False: 30]
  |  |  ------------------
  ------------------
 1163|      4|    {
 1164|      4|      data = g_malloc0 (sizeof (BoxedData) + vtable_size);
 1165|      4|      if (vtable_size)
  ------------------
  |  Branch (1165:11): [True: 4, False: 0]
  ------------------
 1166|      4|	vtable = G_STRUCT_MEMBER_P (data, sizeof (BoxedData));
  ------------------
  |  |  971|      4|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1167|      4|    }
 1168|     30|  else
 1169|     30|    {
 1170|     30|      data = g_malloc0 (sizeof (CommonData) + vtable_size);
 1171|     30|      if (vtable_size)
  ------------------
  |  Branch (1171:11): [True: 28, False: 2]
  ------------------
 1172|     28|	vtable = G_STRUCT_MEMBER_P (data, sizeof (CommonData));
  ------------------
  |  |  971|     28|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1173|     30|    }
 1174|       |  
 1175|    104|  node->data = data;
 1176|       |  
 1177|    104|  if (vtable_size)
  ------------------
  |  Branch (1177:7): [True: 42, False: 62]
  ------------------
 1178|     42|    {
 1179|     42|      gchar *p;
 1180|       |      
 1181|       |      /* we allocate the vtable and its strings together with the type data, so
 1182|       |       * children can take over their parent's vtable pointer, and we don't
 1183|       |       * need to worry freeing it or not when the child data is destroyed
 1184|       |       */
 1185|     42|      *vtable = *value_table;
 1186|     42|      p = G_STRUCT_MEMBER_P (vtable, sizeof (*vtable));
  ------------------
  |  |  971|     42|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1187|     42|      p[0] = 0;
 1188|     42|      vtable->collect_format = p;
 1189|     42|      if (value_table->collect_format)
  ------------------
  |  Branch (1189:11): [True: 38, False: 4]
  ------------------
 1190|     38|	{
 1191|     38|	  strcat (p, value_table->collect_format);
 1192|     38|	  p += strlen (value_table->collect_format);
 1193|     38|	}
 1194|     42|      p++;
 1195|     42|      p[0] = 0;
 1196|     42|      vtable->lcopy_format = p;
 1197|     42|      if (value_table->lcopy_format)
  ------------------
  |  Branch (1197:11): [True: 38, False: 4]
  ------------------
 1198|     38|	strcat  (p, value_table->lcopy_format);
 1199|     42|    }
 1200|    104|  node->data->common.value_table = vtable;
 1201|    104|  node->mutatable_check_cache = (node->data->common.value_table->value_init != NULL &&
  ------------------
  |  Branch (1201:34): [True: 95, False: 9]
  ------------------
 1202|     95|				 !((G_TYPE_FLAG_VALUE_ABSTRACT | G_TYPE_FLAG_ABSTRACT) &
  ------------------
  |  Branch (1202:6): [True: 89, False: 6]
  ------------------
 1203|     95|				   GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags))));
  ------------------
  |  |  104|     95|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 1204|       |  
 1205|    104|  g_assert (node->data->common.value_table != NULL); /* paranoid */
  ------------------
  |  |  275|    104|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    104|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    104|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    104|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    104|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    104| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    104|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    104|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    104|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 104, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    104|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    104|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    104|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    104|   else                                         \
  |  |  |  |  |  |  |  | 1240|    104|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    104|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    104|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    104|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    104|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 104, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    104|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    104|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    104|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 104]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1206|       |
 1207|    104|  g_atomic_int_set ((int *) &node->ref_count, 1);
  ------------------
  |  |  118|    104|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    104|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|    104|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    104|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|    104|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|    104|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 104]
  |  |  ------------------
  |  |  122|    104|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|    104|  }))
  ------------------
 1208|    104|}
gtype.c:check_value_table_I:
  813|    102|{
  814|    102|  if (!value_table)
  ------------------
  |  Branch (814:7): [True: 64, False: 38]
  ------------------
  815|     64|    return FALSE;
  ------------------
  |  |  925|     64|#define	FALSE	(0)
  ------------------
  816|     38|  else if (value_table->value_init == NULL)
  ------------------
  |  Branch (816:12): [True: 0, False: 38]
  ------------------
  817|      0|    {
  818|      0|      if (value_table->value_free || value_table->value_copy ||
  ------------------
  |  Branch (818:11): [True: 0, False: 0]
  |  Branch (818:38): [True: 0, False: 0]
  ------------------
  819|      0|	  value_table->value_peek_pointer ||
  ------------------
  |  Branch (819:4): [True: 0, False: 0]
  ------------------
  820|      0|	  value_table->collect_format || value_table->collect_value ||
  ------------------
  |  Branch (820:4): [True: 0, False: 0]
  |  Branch (820:35): [True: 0, False: 0]
  ------------------
  821|      0|	  value_table->lcopy_format || value_table->lcopy_value)
  ------------------
  |  Branch (821:4): [True: 0, False: 0]
  |  Branch (821:33): [True: 0, False: 0]
  ------------------
  822|      0|	g_critical ("cannot handle uninitializable values of type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  823|      0|		    type_name);
  824|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  825|      0|    }
  826|     38|  else /* value_table->value_init != NULL */
  827|     38|    {
  828|     38|      if (!value_table->value_free)
  ------------------
  |  Branch (828:11): [True: 28, False: 10]
  ------------------
  829|     28|	{
  830|       |	  /* +++ optional +++
  831|       |	   * g_critical ("missing 'value_free()' for type '%s'", type_name);
  832|       |	   * return FALSE;
  833|       |	   */
  834|     28|	}
  835|     38|      if (!value_table->value_copy)
  ------------------
  |  Branch (835:11): [True: 0, False: 38]
  ------------------
  836|      0|	{
  837|      0|	  g_critical ("missing 'value_copy()' for type '%s'", type_name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  838|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  839|      0|	}
  840|     38|      if ((value_table->collect_format || value_table->collect_value) &&
  ------------------
  |  Branch (840:12): [True: 38, False: 0]
  |  Branch (840:43): [True: 0, False: 0]
  ------------------
  841|     38|	  (!value_table->collect_format || !value_table->collect_value))
  ------------------
  |  Branch (841:5): [True: 0, False: 38]
  |  Branch (841:37): [True: 0, False: 38]
  ------------------
  842|      0|	{
  843|      0|	  g_critical ("one of 'collect_format' and 'collect_value()' is unspecified for type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  844|      0|		      type_name);
  845|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  846|      0|	}
  847|     38|      if (value_table->collect_format && !check_collect_format_I (value_table->collect_format))
  ------------------
  |  Branch (847:11): [True: 38, False: 0]
  |  Branch (847:42): [True: 0, False: 38]
  ------------------
  848|      0|	{
  849|      0|	  g_critical ("the '%s' specification for type '%s' is too long or invalid",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  850|      0|		      "collect_format",
  851|      0|		      type_name);
  852|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  853|      0|	}
  854|     38|      if ((value_table->lcopy_format || value_table->lcopy_value) &&
  ------------------
  |  Branch (854:12): [True: 38, False: 0]
  |  Branch (854:41): [True: 0, False: 0]
  ------------------
  855|     38|	  (!value_table->lcopy_format || !value_table->lcopy_value))
  ------------------
  |  Branch (855:5): [True: 0, False: 38]
  |  Branch (855:35): [True: 0, False: 38]
  ------------------
  856|      0|	{
  857|      0|	  g_critical ("one of 'lcopy_format' and 'lcopy_value()' is unspecified for type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  858|      0|		      type_name);
  859|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  860|      0|	}
  861|     38|      if (value_table->lcopy_format && !check_collect_format_I (value_table->lcopy_format))
  ------------------
  |  Branch (861:11): [True: 38, False: 0]
  |  Branch (861:40): [True: 0, False: 38]
  ------------------
  862|      0|	{
  863|      0|	  g_critical ("the '%s' specification for type '%s' is too long or invalid",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  864|      0|		      "lcopy_format",
  865|      0|		      type_name);
  866|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  867|      0|	}
  868|     38|    }
  869|     38|  return TRUE;
  ------------------
  |  |  929|     38|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     38|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  870|    102|}
gtype.c:check_collect_format_I:
  798|     76|{
  799|     76|  const gchar *p = collect_format;
  800|     76|  gchar valid_format[] = { G_VALUE_COLLECT_INT, G_VALUE_COLLECT_LONG,
  801|     76|			   G_VALUE_COLLECT_INT64, G_VALUE_COLLECT_DOUBLE,
  802|     76|			   G_VALUE_COLLECT_POINTER, 0 };
  803|       |  
  804|    152|  while (*p)
  ------------------
  |  Branch (804:10): [True: 76, False: 76]
  ------------------
  805|     76|    if (!strchr (valid_format, *p++))
  ------------------
  |  Branch (805:9): [True: 0, False: 76]
  ------------------
  806|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  807|     76|  return p - collect_format <= G_VALUE_COLLECT_FORMAT_MAX_LENGTH;
  ------------------
  |  |  276|     76|#define	G_VALUE_COLLECT_FORMAT_MAX_LENGTH	(8)
  ------------------
  808|     76|}
gtype.c:check_derivation_I:
  755|     64|{
  756|     64|  TypeNode *pnode;
  757|     64|  GTypeFundamentalInfo* finfo;
  758|       |  
  759|     64|  pnode = lookup_type_node_I (parent_type);
  760|     64|  if (!pnode)
  ------------------
  |  Branch (760:7): [True: 0, False: 64]
  ------------------
  761|      0|    {
  762|      0|      g_critical ("cannot derive type '%s' from invalid parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  763|      0|		  type_name,
  764|      0|		  type_descriptive_name_I (parent_type));
  765|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  766|      0|    }
  767|     64|  if (pnode->is_final)
  ------------------
  |  Branch (767:7): [True: 0, False: 64]
  ------------------
  768|      0|    {
  769|      0|      g_critical ("cannot derive '%s' from final parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  770|      0|                  type_name,
  771|      0|                  NODE_NAME (pnode));
  772|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  773|      0|    }
  774|     64|  finfo = type_node_fundamental_info_I (pnode);
  775|       |  /* ensure flat derivability */
  776|     64|  if (!(finfo->type_flags & G_TYPE_FLAG_DERIVABLE))
  ------------------
  |  Branch (776:7): [True: 0, False: 64]
  ------------------
  777|      0|    {
  778|      0|      g_critical ("cannot derive '%s' from non-derivable parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  779|      0|		  type_name,
  780|      0|		  NODE_NAME (pnode));
  781|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  782|      0|    }
  783|       |  /* ensure deep derivability */
  784|     64|  if (parent_type != NODE_FUNDAMENTAL_TYPE (pnode) &&
  ------------------
  |  |  229|    128|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (784:7): [True: 5, False: 59]
  ------------------
  785|      5|      !(finfo->type_flags & G_TYPE_FLAG_DEEP_DERIVABLE))
  ------------------
  |  Branch (785:7): [True: 0, False: 5]
  ------------------
  786|      0|    {
  787|      0|      g_critical ("cannot derive '%s' from non-fundamental parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  788|      0|		  type_name,
  789|      0|		  NODE_NAME (pnode));
  790|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  791|      0|    }
  792|       |  
  793|     64|  return TRUE;
  ------------------
  |  |  929|     64|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     64|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  794|     64|}
gtype.c:type_data_ref_Wm:
 1212|     64|{
 1213|     64|  if (!node->data)
  ------------------
  |  Branch (1213:7): [True: 0, False: 64]
  ------------------
 1214|      0|    {
 1215|      0|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      0|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1216|      0|      GTypeInfo tmp_info;
 1217|      0|      GTypeValueTable tmp_value_table;
 1218|       |      
 1219|      0|      g_assert (node->plugin != NULL);
  ------------------
  |  |  275|      0|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      0|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      0|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      0|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1220|       |      
 1221|      0|      if (pnode)
  ------------------
  |  Branch (1221:11): [True: 0, False: 0]
  ------------------
 1222|      0|	{
 1223|      0|	  type_data_ref_Wm (pnode);
 1224|      0|	  if (node->data)
  ------------------
  |  Branch (1224:8): [True: 0, False: 0]
  ------------------
 1225|      0|	    INVALID_RECURSION ("g_type_plugin_*", node->plugin, NODE_NAME (node));
  ------------------
  |  |   88|      0|#define	INVALID_RECURSION(func, arg, type_name) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |   89|      0|    static const gchar _action[] = " invalidly modified type ";  \
  |  |   90|      0|    gpointer _arg = (gpointer) (arg); const gchar *_tname = (type_name), *_fname = (func); \
  |  |   91|      0|    if (_arg) \
  |  |  ------------------
  |  |  |  Branch (91:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   92|      0|      g_error ("%s(%p)%s'%s'", _fname, _arg, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   93|      0|    else \
  |  |   94|      0|      g_error ("%s()%s'%s'", _fname, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   95|      0|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1226|      0|	}
 1227|       |      
 1228|      0|      memset (&tmp_info, 0, sizeof (tmp_info));
 1229|      0|      memset (&tmp_value_table, 0, sizeof (tmp_value_table));
 1230|       |      
 1231|      0|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1232|      0|      g_type_plugin_use (node->plugin);
 1233|      0|      g_type_plugin_complete_type_info (node->plugin, NODE_TYPE (node), &tmp_info, &tmp_value_table);
  ------------------
  |  |  227|      0|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1234|      0|      G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      0|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 1235|      0|      if (node->data)
  ------------------
  |  Branch (1235:11): [True: 0, False: 0]
  ------------------
 1236|      0|	INVALID_RECURSION ("g_type_plugin_*", node->plugin, NODE_NAME (node));
  ------------------
  |  |   88|      0|#define	INVALID_RECURSION(func, arg, type_name) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |   89|      0|    static const gchar _action[] = " invalidly modified type ";  \
  |  |   90|      0|    gpointer _arg = (gpointer) (arg); const gchar *_tname = (type_name), *_fname = (func); \
  |  |   91|      0|    if (_arg) \
  |  |  ------------------
  |  |  |  Branch (91:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   92|      0|      g_error ("%s(%p)%s'%s'", _fname, _arg, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   93|      0|    else \
  |  |   94|      0|      g_error ("%s()%s'%s'", _fname, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   95|      0|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1237|       |      
 1238|      0|      check_type_info_I (pnode, NODE_FUNDAMENTAL_TYPE (node), NODE_NAME (node), &tmp_info);
  ------------------
  |  |  229|      0|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
                    check_type_info_I (pnode, NODE_FUNDAMENTAL_TYPE (node), NODE_NAME (node), &tmp_info);
  ------------------
  |  |  230|      0|#define NODE_NAME(node)				(g_quark_to_string (node->qname))
  ------------------
 1239|      0|      type_data_make_W (node, &tmp_info,
 1240|      0|			check_value_table_I (NODE_NAME (node),
  ------------------
  |  |  230|      0|#define NODE_NAME(node)				(g_quark_to_string (node->qname))
  ------------------
  |  Branch (1240:4): [True: 0, False: 0]
  ------------------
 1241|      0|					     &tmp_value_table) ? &tmp_value_table : NULL);
 1242|      0|    }
 1243|     64|  else
 1244|     64|    {
 1245|     64|      g_assert (NODE_REFCOUNT (node) > 0);
  ------------------
  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    192|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 64]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     64|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1246|       |      
 1247|     64|      g_atomic_int_inc ((int *) &node->ref_count);
  ------------------
  |  |  162|     64|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|     64|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     64|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|     64|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 64]
  |  |  ------------------
  |  |  165|     64|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|     64|  }))
  ------------------
 1248|     64|    }
 1249|     64|}
gtype.c:type_node_new_W:
  545|     64|{
  546|     64|  g_assert (pnode);
  ------------------
  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     64|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  547|     64|  g_assert (pnode->n_supers < MAX_N_SUPERS);
  ------------------
  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     64|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  548|     64|  g_assert (pnode->n_children < MAX_N_CHILDREN);
  ------------------
  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     64|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  549|       |  
  550|     64|  return type_node_any_new_W (pnode, NODE_FUNDAMENTAL_TYPE (pnode), name, plugin, 0);
  ------------------
  |  |  229|     64|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  551|     64|}
gtype.c:check_add_interface_L:
  976|      3|{
  977|      3|  TypeNode *node = lookup_type_node_I (instance_type);
  978|      3|  TypeNode *iface = lookup_type_node_I (iface_type);
  979|      3|  IFaceEntry *entry;
  980|      3|  TypeNode *tnode;
  981|      3|  GType *prerequisites;
  982|      3|  guint i;
  983|       |
  984|       |  
  985|      3|  if (!node || !node->is_instantiatable)
  ------------------
  |  Branch (985:7): [True: 0, False: 3]
  |  Branch (985:16): [True: 0, False: 3]
  ------------------
  986|      0|    {
  987|      0|      g_critical ("cannot add interfaces to invalid (non-instantiatable) type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  988|      0|		  type_descriptive_name_I (instance_type));
  989|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  990|      0|    }
  991|      3|  if (!iface || !NODE_IS_IFACE (iface))
  ------------------
  |  |  233|      3|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      3|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      3|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      3|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      3|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (991:7): [True: 0, False: 3]
  |  Branch (991:17): [True: 0, False: 3]
  ------------------
  992|      0|    {
  993|      0|      g_critical ("cannot add invalid (non-interface) type '%s' to type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  994|      0|		  type_descriptive_name_I (iface_type),
  995|      0|		  NODE_NAME (node));
  996|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  997|      0|    }
  998|      3|  if (node->data && node->data->class.class)
  ------------------
  |  Branch (998:7): [True: 3, False: 0]
  |  Branch (998:21): [True: 0, False: 3]
  ------------------
  999|      0|    {
 1000|      0|      g_critical ("attempting to add an interface (%s) to class (%s) after class_init",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1001|      0|                  NODE_NAME (iface), NODE_NAME (node));
 1002|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1003|      0|    }
 1004|      3|  tnode = lookup_type_node_I (NODE_PARENT_TYPE (iface));
  ------------------
  |  |  228|      3|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1005|      3|  if (NODE_PARENT_TYPE (tnode) && !type_lookup_iface_entry_L (node, tnode))
  ------------------
  |  |  228|      6|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 0, False: 3]
  |  |  ------------------
  ------------------
  |  Branch (1005:35): [True: 0, False: 0]
  ------------------
 1006|      0|    {
 1007|       |      /* 2001/7/31:timj: erk, i guess this warning is junk as interface derivation is flat */
 1008|      0|      g_critical ("cannot add sub-interface '%s' to type '%s' which does not conform to super-interface '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1009|      0|		  NODE_NAME (iface),
 1010|      0|		  NODE_NAME (node),
 1011|      0|		  NODE_NAME (tnode));
 1012|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1013|      0|    }
 1014|       |  /* allow overriding of interface type introduced for parent type */
 1015|      3|  entry = type_lookup_iface_entry_L (node, iface);
 1016|      3|  if (entry && entry->vtable == NULL && !type_iface_peek_holder_L (iface, NODE_TYPE (node)))
  ------------------
  |  |  227|      0|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
  |  Branch (1016:7): [True: 0, False: 3]
  |  Branch (1016:16): [True: 0, False: 0]
  |  Branch (1016:41): [True: 0, False: 0]
  ------------------
 1017|      0|    {
 1018|       |      /* ok, we do conform to this interface already, but the interface vtable was not
 1019|       |       * yet initialized, and we just conform to the interface because it got added to
 1020|       |       * one of our parents. so we allow overriding of holder info here.
 1021|       |       */
 1022|      0|      return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1023|      0|    }
 1024|       |  /* check whether one of our children already conforms (or whether the interface
 1025|       |   * got added to this node already)
 1026|       |   */
 1027|      3|  tnode = find_conforming_child_type_L (node, iface);  /* tnode is_a node */
 1028|      3|  if (tnode)
  ------------------
  |  Branch (1028:7): [True: 0, False: 3]
  ------------------
 1029|      0|    {
 1030|      0|      g_critical ("cannot add interface type '%s' to type '%s', since type '%s' already conforms to interface",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1031|      0|		  NODE_NAME (iface),
 1032|      0|		  NODE_NAME (node),
 1033|      0|		  NODE_NAME (tnode));
 1034|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1035|      0|    }
 1036|      3|  prerequisites = IFACE_NODE_PREREQUISITES (iface);
  ------------------
  |  |  237|      3|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 1037|      6|  for (i = 0; i < IFACE_NODE_N_PREREQUISITES (iface); i++)
  ------------------
  |  |  236|      6|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (1037:15): [True: 3, False: 3]
  ------------------
 1038|      3|    {
 1039|      3|      tnode = lookup_type_node_I (prerequisites[i]);
 1040|      3|      if (!type_node_is_a_L (node, tnode))
  ------------------
  |  Branch (1040:11): [True: 0, False: 3]
  ------------------
 1041|      0|	{
 1042|      0|	  g_critical ("cannot add interface type '%s' to type '%s' which does not conform to prerequisite '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1043|      0|		      NODE_NAME (iface),
 1044|      0|		      NODE_NAME (node),
 1045|      0|		      NODE_NAME (tnode));
 1046|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1047|      0|	}
 1048|      3|    }
 1049|      3|  return TRUE;
  ------------------
  |  |  929|      3|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      3|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1050|      3|}
gtype.c:type_lookup_iface_entry_L:
  597|     15|{
  598|     15|  if (!NODE_IS_IFACE (iface_node))
  ------------------
  |  |  233|     15|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     15|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     15|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     15|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     15|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (598:7): [True: 0, False: 15]
  ------------------
  599|      0|    return NULL;
  600|       |
  601|     15|  return lookup_iface_entry_I (CLASSED_NODE_IFACES_ENTRIES_LOCKED (node),
  ------------------
  |  |  235|     15|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|     15|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
  602|     15|			       iface_node);
  603|     15|}
gtype.c:lookup_iface_entry_I:
  556|  38.4k|{
  557|  38.4k|  guint8 *offsets;
  558|  38.4k|  gsize offset_index;
  559|  38.4k|  IFaceEntry *check;
  560|  38.4k|  gsize index;
  561|  38.4k|  IFaceEntry *entry;
  562|       |
  563|  38.4k|  if (entries == NULL)
  ------------------
  |  Branch (563:7): [True: 11, False: 38.4k]
  ------------------
  564|     11|    return NULL;
  565|       |
  566|  38.4k|  G_ATOMIC_ARRAY_DO_TRANSACTION
  ------------------
  |  |   55|  38.4k|#define G_ATOMIC_ARRAY_DO_TRANSACTION(_array, _type, _C_) G_STMT_START {	\
  |  |  ------------------
  |  |  |  |  985|  38.4k|#define G_STMT_START  do
  |  |  ------------------
  |  |   56|  38.4k|    gpointer *_datap  = &(_array)->data;				\
  |  |   57|  38.4k|    _type *transaction_data, *__check;						\
  |  |   58|  38.4k|										\
  |  |   59|  38.4k|    __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  38.4k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  38.4k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  38.4k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  38.4k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  38.4k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  38.4k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  38.4k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  38.4k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  38.4k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  38.4k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  38.4k|  }))
  |  |  ------------------
  |  |   60|  38.4k|    do {									\
  |  |   61|  38.4k|      transaction_data = __check;						\
  |  |   62|   384k|      {_C_;}									\
  |  |  ------------------
  |  |  |  Branch (62:8): [True: 38.4k, False: 0]
  |  |  |  Branch (62:8): [True: 38.4k, False: 0]
  |  |  |  Branch (62:8): [True: 38.4k, False: 0]
  |  |  |  Branch (62:8): [True: 38.4k, False: 0]
  |  |  |  Branch (62:8): [True: 38.4k, False: 0]
  |  |  ------------------
  |  |   63|  38.4k|      __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  38.4k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  38.4k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  38.4k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  38.4k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  38.4k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  38.4k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  38.4k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  38.4k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  38.4k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  38.4k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  38.4k|  }))
  |  |  ------------------
  |  |   64|  38.4k|    } while (transaction_data != __check);					\
  |  |  ------------------
  |  |  |  Branch (64:14): [True: 0, False: 38.4k]
  |  |  ------------------
  |  |   65|  38.4k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  38.4k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38.4k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  567|  38.4k|    (&iface_node->_prot.offsets, guint8,
  568|       |
  569|  38.4k|     entry = NULL;
  570|  38.4k|     offsets = transaction_data;
  571|  38.4k|     offset_index = entries->offset_index;
  572|  38.4k|     if (offsets != NULL &&
  573|  38.4k|	 offset_index < G_ATOMIC_ARRAY_DATA_SIZE(offsets))
  574|  38.4k|       {
  575|  38.4k|	 index = offsets[offset_index];
  576|  38.4k|	 if (index > 0)
  577|  38.4k|	   {
  578|       |	     /* zero means unset, subtract one to get real index */
  579|  38.4k|	     index -= 1;
  580|       |
  581|  38.4k|	     if (index < IFACE_ENTRIES_N_ENTRIES (entries))
  582|  38.4k|	       {
  583|  38.4k|		 check = (IFaceEntry *)&entries->entry[index];
  584|  38.4k|		 if (check->iface_type == NODE_TYPE (iface_node))
  585|  38.4k|		   entry = check;
  586|  38.4k|	       }
  587|  38.4k|	   }
  588|  38.4k|       }
  589|  38.4k|     );
  590|       |
  591|  38.4k| return entry;
  592|  38.4k|}
gtype.c:type_iface_peek_holder_L:
 1735|      7|{
 1736|      7|  IFaceHolder *iholder;
 1737|       |  
 1738|      7|  g_assert (NODE_IS_IFACE (iface));
  ------------------
  |  |  275|      7|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      7|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      7|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      7|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      7|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      7| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      7|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      7|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      7|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      7|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      7|   else                                         \
  |  |  |  |  |  |  |  | 1240|      7|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      7|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      7|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      7|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      7|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      7|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1739|       |  
 1740|      7|  iholder = iface_node_get_holders_L (iface);
  ------------------
  |  |  238|      7|#define	iface_node_get_holders_L(node)		((IFaceHolder*) type_get_qdata_L ((node), static_quark_iface_holder))
  ------------------
 1741|     10|  while (iholder && iholder->instance_type != instance_type)
  ------------------
  |  Branch (1741:10): [True: 7, False: 3]
  |  Branch (1741:21): [True: 3, False: 4]
  ------------------
 1742|      3|    iholder = iholder->next;
 1743|      7|  return iholder;
 1744|      7|}
gtype.c:find_conforming_child_type_L:
  960|      3|{
  961|      3|  TypeNode *node = NULL;
  962|      3|  guint i;
  963|       |  
  964|      3|  if (type_lookup_iface_entry_L (pnode, iface))
  ------------------
  |  Branch (964:7): [True: 0, False: 3]
  ------------------
  965|      0|    return pnode;
  966|       |  
  967|      3|  for (i = 0; i < pnode->n_children && !node; i++)
  ------------------
  |  Branch (967:15): [True: 0, False: 3]
  |  Branch (967:40): [True: 0, False: 0]
  ------------------
  968|      0|    node = find_conforming_child_type_L (lookup_type_node_I (pnode->children[i]), iface);
  969|       |  
  970|      3|  return node;
  971|      3|}
gtype.c:check_interface_info_I:
 1056|      3|{
 1057|      3|  if ((info->interface_finalize || info->interface_data) && !info->interface_init)
  ------------------
  |  Branch (1057:8): [True: 0, False: 3]
  |  Branch (1057:36): [True: 0, False: 3]
  |  Branch (1057:61): [True: 0, False: 0]
  ------------------
 1058|      0|    {
 1059|      0|      g_critical ("interface type '%s' for type '%s' comes without initializer",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1060|      0|		  NODE_NAME (iface),
 1061|      0|		  type_descriptive_name_I (instance_type));
 1062|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1063|      0|    }
 1064|       |  
 1065|      3|  return TRUE;
  ------------------
  |  |  929|      3|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      3|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1066|      3|}
gtype.c:type_add_interface_Wm:
 1454|      3|{
 1455|      3|  IFaceHolder *iholder = g_new0 (IFaceHolder, 1);
  ------------------
  |  |  332|      3|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|      3|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      3|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      3|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      3|	  gpointer __p;						\
  |  |  |  |  264|      3|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  265|      3|	    __p = g_##func (__n);				\
  |  |  |  |  266|      3|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      3|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      3|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      3|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 3]
  |  |  |  |  |  Branch (267:26): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      3|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      3|	  else							\
  |  |  |  |  270|      3|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      3|	  __p;							\
  |  |  |  |  272|      3|	}))
  |  |  ------------------
  ------------------
 1456|      3|  IFaceEntry *entry;
 1457|      3|  guint i;
 1458|       |
 1459|      3|  g_assert (node->is_instantiatable && NODE_IS_IFACE (iface) && ((info && !plugin) || (!info && plugin)));
  ------------------
  |  |  275|      3|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      3|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     24|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      3|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      3|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1460|       |  
 1461|      3|  iholder->next = iface_node_get_holders_L (iface);
  ------------------
  |  |  238|      3|#define	iface_node_get_holders_L(node)		((IFaceHolder*) type_get_qdata_L ((node), static_quark_iface_holder))
  ------------------
 1462|      3|  iface_node_set_holders_W (iface, iholder);
  ------------------
  |  |  239|      3|#define	iface_node_set_holders_W(node, holders)	(type_set_qdata_W ((node), static_quark_iface_holder, (holders)))
  ------------------
 1463|      3|  iholder->instance_type = NODE_TYPE (node);
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1464|      3|  iholder->info = info ? g_memdup2 (info, sizeof (*info)) : NULL;
  ------------------
  |  Branch (1464:19): [True: 3, False: 0]
  ------------------
 1465|      3|  iholder->plugin = plugin;
 1466|       |
 1467|       |  /* create an iface entry for this type */
 1468|      3|  type_node_add_iface_entry_W (node, NODE_TYPE (iface), NULL);
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1469|       |  
 1470|       |  /* if the class is already (partly) initialized, we may need to base
 1471|       |   * initialize and/or initialize the new interface.
 1472|       |   */
 1473|      3|  if (node->data)
  ------------------
  |  Branch (1473:7): [True: 3, False: 0]
  ------------------
 1474|      3|    {
 1475|      3|      InitState class_state = g_atomic_int_get (&node->data->class.init_state);
  ------------------
  |  |  110|      3|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|      3|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      3|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|      3|    gint gaig_temp;                                                          \
  |  |  113|      3|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 3]
  |  |  ------------------
  |  |  114|      3|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|      3|    (gint) gaig_temp;                                                        \
  |  |  116|      3|  }))
  ------------------
 1476|       |      
 1477|      3|      if (class_state >= BASE_IFACE_INIT)
  ------------------
  |  Branch (1477:11): [True: 0, False: 3]
  ------------------
 1478|      0|        type_iface_vtable_base_init_Wm (iface, node);
 1479|       |      
 1480|      3|      if (class_state >= IFACE_INIT)
  ------------------
  |  Branch (1480:11): [True: 0, False: 3]
  ------------------
 1481|      0|        type_iface_vtable_iface_init_Wm (iface, node);
 1482|      3|    }
 1483|       |  
 1484|       |  /* create iface entries for children of this type */
 1485|      3|  entry = type_lookup_iface_entry_L (node, iface);
 1486|      3|  for (i = 0; i < node->n_children; i++)
  ------------------
  |  Branch (1486:15): [True: 0, False: 3]
  ------------------
 1487|      0|    type_node_add_iface_entry_W (lookup_type_node_I (node->children[i]), NODE_TYPE (iface), entry);
  ------------------
  |  |  227|      0|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1488|      3|}
gtype.c:type_node_add_iface_entry_W:
 1354|      3|{
 1355|      3|  IFaceEntries *entries;
 1356|      3|  IFaceEntry *entry;
 1357|      3|  TypeNode *iface_node;
 1358|      3|  guint i, j;
 1359|      3|  guint num_entries;
 1360|       |
 1361|      3|  g_assert (node->is_instantiatable);
  ------------------
  |  |  275|      3|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      3|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      3|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      3|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1362|       |
 1363|      3|  entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node);
  ------------------
  |  |  235|      3|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|      3|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
 1364|      3|  if (entries != NULL)
  ------------------
  |  Branch (1364:7): [True: 0, False: 3]
  ------------------
 1365|      0|    {
 1366|      0|      num_entries = IFACE_ENTRIES_N_ENTRIES (entries);
  ------------------
  |  |  269|      0|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      0|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      0|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
 1367|       |
 1368|      0|      g_assert (num_entries < MAX_N_INTERFACES);
  ------------------
  |  |  275|      0|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      0|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      0|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      0|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1369|       |
 1370|      0|      for (i = 0; i < num_entries; i++)
  ------------------
  |  Branch (1370:19): [True: 0, False: 0]
  ------------------
 1371|      0|	{
 1372|      0|	  entry = &entries->entry[i];
 1373|      0|	  if (entry->iface_type == iface_type)
  ------------------
  |  Branch (1373:8): [True: 0, False: 0]
  ------------------
 1374|      0|	    {
 1375|       |	      /* this can happen in two cases:
 1376|       |	       * - our parent type already conformed to iface_type and node
 1377|       |	       *   got its own holder info. here, our children already have
 1378|       |	       *   entries and NULL vtables, since this will only work for
 1379|       |	       *   uninitialized classes.
 1380|       |	       * - an interface type is added to an ancestor after it was
 1381|       |	       *   added to a child type.
 1382|       |	       */
 1383|      0|	      if (!parent_entry)
  ------------------
  |  Branch (1383:12): [True: 0, False: 0]
  ------------------
 1384|      0|		g_assert (entry->vtable == NULL && entry->init_state == UNINITIALIZED);
  ------------------
  |  |  275|      0|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      0|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      0|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      0|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1385|      0|	      else
 1386|      0|		{
 1387|       |		  /* sick, interface is added to ancestor *after* child type;
 1388|       |		   * nothing todo, the entry and our children were already setup correctly
 1389|       |		   */
 1390|      0|		}
 1391|      0|	      return;
 1392|      0|	    }
 1393|      0|	}
 1394|      0|    }
 1395|       |
 1396|      3|  entries = _g_atomic_array_copy (CLASSED_NODE_IFACES_ENTRIES (node),
  ------------------
  |  |  234|      3|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
 1397|      3|				  IFACE_ENTRIES_HEADER_SIZE,
  ------------------
  |  |  268|      3|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  ------------------
 1398|      3|				  sizeof (IFaceEntry));
 1399|      3|  num_entries = IFACE_ENTRIES_N_ENTRIES (entries);
  ------------------
  |  |  269|      3|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      3|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      3|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
 1400|      3|  i = num_entries - 1;
 1401|      3|  if (i == 0)
  ------------------
  |  Branch (1401:7): [True: 3, False: 0]
  ------------------
 1402|      3|    entries->offset_index = 0;
 1403|      3|  entries->entry[i].iface_type = iface_type;
 1404|      3|  entries->entry[i].vtable = NULL;
 1405|      3|  entries->entry[i].init_state = UNINITIALIZED;
 1406|       |
 1407|      3|  if (parent_entry)
  ------------------
  |  Branch (1407:7): [True: 0, False: 3]
  ------------------
 1408|      0|    {
 1409|      0|      if (node->data && g_atomic_int_get (&node->data->class.init_state) >= BASE_IFACE_INIT)
  ------------------
  |  |  110|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|      0|    gint gaig_temp;                                                          \
  |  |  113|      0|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 0]
  |  |  ------------------
  |  |  114|      0|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|      0|    (gint) gaig_temp;                                                        \
  |  |  116|      0|  }))
  ------------------
  |  Branch (1409:11): [True: 0, False: 0]
  |  Branch (1409:25): [True: 0, False: 0]
  ------------------
 1410|      0|        {
 1411|      0|          entries->entry[i].init_state = INITIALIZED;
 1412|      0|          entries->entry[i].vtable = parent_entry->vtable;
 1413|      0|        }
 1414|      0|    }
 1415|       |
 1416|       |  /* Update offsets in iface */
 1417|      3|  iface_node = lookup_type_node_I (iface_type);
 1418|       |
 1419|      3|  if (iface_node_has_available_offset_L (iface_node,
  ------------------
  |  Branch (1419:7): [True: 3, False: 0]
  ------------------
 1420|      3|					 entries->offset_index,
 1421|      3|					 i))
 1422|      3|    {
 1423|      3|      iface_node_set_offset_L (iface_node,
 1424|      3|			       entries->offset_index, i);
 1425|      3|    }
 1426|      0|  else
 1427|      0|   {
 1428|      0|      entries->offset_index =
 1429|      0|	find_free_iface_offset_L (entries);
 1430|      0|      for (j = 0; j < IFACE_ENTRIES_N_ENTRIES (entries); j++)
  ------------------
  |  |  269|      0|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      0|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      0|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (1430:19): [True: 0, False: 0]
  ------------------
 1431|      0|	{
 1432|      0|	  entry = &entries->entry[j];
 1433|      0|	  iface_node =
 1434|      0|	    lookup_type_node_I (entry->iface_type);
 1435|      0|	  iface_node_set_offset_L (iface_node,
 1436|      0|				   entries->offset_index, j);
 1437|      0|	}
 1438|      0|    }
 1439|       |
 1440|      3|  _g_atomic_array_update (CLASSED_NODE_IFACES_ENTRIES (node), entries);
  ------------------
  |  |  234|      3|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
 1441|       |
 1442|      3|  if (parent_entry)
  ------------------
  |  Branch (1442:7): [True: 0, False: 3]
  ------------------
 1443|      0|    {
 1444|      0|      for (i = 0; i < node->n_children; i++)
  ------------------
  |  Branch (1444:19): [True: 0, False: 0]
  ------------------
 1445|      0|        type_node_add_iface_entry_W (lookup_type_node_I (node->children[i]), iface_type, &entries->entry[i]);
 1446|      0|    }
 1447|      3|}
gtype.c:iface_node_has_available_offset_L:
 1270|      3|{
 1271|      3|  guint8 *offsets;
 1272|       |
 1273|      3|  offsets = G_ATOMIC_ARRAY_GET_LOCKED (&iface_node->_prot.offsets, guint8);
  ------------------
  |  |   53|      3|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  ------------------
 1274|      3|  if (offsets == NULL)
  ------------------
  |  Branch (1274:7): [True: 3, False: 0]
  ------------------
 1275|      3|    return TRUE;
  ------------------
  |  |  929|      3|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      3|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1276|       |
 1277|      0|  if (G_ATOMIC_ARRAY_DATA_SIZE (offsets) <= offset)
  ------------------
  |  |   39|      0|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
  |  Branch (1277:7): [True: 0, False: 0]
  ------------------
 1278|      0|    return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1279|       |
 1280|      0|  if (offsets[offset] == 0 ||
  ------------------
  |  Branch (1280:7): [True: 0, False: 0]
  ------------------
 1281|      0|      offsets[offset] == for_index+1)
  ------------------
  |  Branch (1281:7): [True: 0, False: 0]
  ------------------
 1282|      0|    return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1283|       |
 1284|      0|  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1285|      0|}
gtype.c:iface_node_set_offset_L:
 1321|      3|{
 1322|      3|  guint8 *offsets, *old_offsets;
 1323|      3|  gsize new_size, old_size;
 1324|      3|  gsize i;
 1325|       |
 1326|      3|  old_offsets = G_ATOMIC_ARRAY_GET_LOCKED (&iface_node->_prot.offsets, guint8);
  ------------------
  |  |   53|      3|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  ------------------
 1327|      3|  if (old_offsets == NULL)
  ------------------
  |  Branch (1327:7): [True: 3, False: 0]
  ------------------
 1328|      3|    old_size = 0;
 1329|      0|  else
 1330|      0|    {
 1331|      0|      old_size = G_ATOMIC_ARRAY_DATA_SIZE (old_offsets);
  ------------------
  |  |   39|      0|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
 1332|      0|      if (offset < old_size &&
  ------------------
  |  Branch (1332:11): [True: 0, False: 0]
  ------------------
 1333|      0|	  old_offsets[offset] == index + 1)
  ------------------
  |  Branch (1333:4): [True: 0, False: 0]
  ------------------
 1334|      0|	return; /* Already set to this index, return */
 1335|      0|    }
 1336|      3|  new_size = MAX (old_size, offset + 1);
  ------------------
  |  |  933|      3|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 0, False: 3]
  |  |  ------------------
  ------------------
 1337|       |
 1338|      3|  offsets = _g_atomic_array_copy (&iface_node->_prot.offsets,
 1339|      3|				  0, new_size - old_size);
 1340|       |
 1341|       |  /* Mark new area as unused */
 1342|      6|  for (i = old_size; i < new_size; i++)
  ------------------
  |  Branch (1342:22): [True: 3, False: 3]
  ------------------
 1343|      3|    offsets[i] = 0;
 1344|       |
 1345|      3|  offsets[offset] = index + 1;
 1346|       |
 1347|      3|  _g_atomic_array_update (&iface_node->_prot.offsets, offsets);
 1348|      3|}
gtype.c:type_iface_vtable_base_init_Wm:
 2078|      5|{
 2079|      5|  IFaceEntry *entry;
 2080|      5|  IFaceHolder *iholder;
 2081|      5|  GTypeInterface *vtable = NULL;
 2082|      5|  TypeNode *pnode;
 2083|       |  
 2084|       |  /* type_iface_retrieve_holder_info_Wm() doesn't modify write lock for returning NULL */
 2085|      5|  iholder = type_iface_retrieve_holder_info_Wm (iface, NODE_TYPE (node), TRUE);
  ------------------
  |  |  227|      5|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
                iholder = type_iface_retrieve_holder_info_Wm (iface, NODE_TYPE (node), TRUE);
  ------------------
  |  |  929|      5|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      5|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2086|      5|  if (!iholder)
  ------------------
  |  Branch (2086:7): [True: 3, False: 2]
  ------------------
 2087|      3|    return FALSE;	/* we don't modify write lock upon FALSE */
  ------------------
  |  |  925|      3|#define	FALSE	(0)
  ------------------
 2088|       |
 2089|      2|  type_iface_ensure_dflt_vtable_Wm (iface);
 2090|       |
 2091|      2|  entry = type_lookup_iface_entry_L (node, iface);
 2092|       |
 2093|      2|  g_assert (iface->data && entry && entry->vtable == NULL && iholder && iholder->info);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     18|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2094|       |  
 2095|      2|  entry->init_state = IFACE_INIT;
 2096|       |
 2097|      2|  pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      2|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 2098|      2|  if (pnode)	/* want to copy over parent iface contents */
  ------------------
  |  Branch (2098:7): [True: 2, False: 0]
  ------------------
 2099|      2|    {
 2100|      2|      IFaceEntry *pentry = type_lookup_iface_entry_L (pnode, iface);
 2101|       |      
 2102|      2|      if (pentry)
  ------------------
  |  Branch (2102:11): [True: 0, False: 2]
  ------------------
 2103|      0|	vtable = g_memdup2 (pentry->vtable, iface->data->iface.vtable_size);
 2104|      2|    }
 2105|      2|  if (!vtable)
  ------------------
  |  Branch (2105:7): [True: 2, False: 0]
  ------------------
 2106|      2|    vtable = g_memdup2 (iface->data->iface.dflt_vtable, iface->data->iface.vtable_size);
 2107|      2|  entry->vtable = vtable;
 2108|      2|  vtable->g_type = NODE_TYPE (iface);
  ------------------
  |  |  227|      2|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2109|      2|  vtable->g_instance_type = NODE_TYPE (node);
  ------------------
  |  |  227|      2|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2110|       |  
 2111|      2|  if (iface->data->iface.vtable_init_base)
  ------------------
  |  Branch (2111:7): [True: 0, False: 2]
  ------------------
 2112|      0|    {
 2113|      0|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2114|      0|      iface->data->iface.vtable_init_base (vtable);
 2115|      0|      G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      0|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2116|      0|    }
 2117|      2|  return TRUE;	/* initialized the vtable */
  ------------------
  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2118|      2|}
gtype.c:type_iface_retrieve_holder_info_Wm:
 1750|      5|{
 1751|      5|  IFaceHolder *iholder = type_iface_peek_holder_L (iface, instance_type);
 1752|       |  
 1753|      5|  if (iholder && !iholder->info && need_info)
  ------------------
  |  Branch (1753:7): [True: 2, False: 3]
  |  Branch (1753:18): [True: 0, False: 2]
  |  Branch (1753:36): [True: 0, False: 0]
  ------------------
 1754|      0|    {
 1755|      0|      GInterfaceInfo tmp_info;
 1756|       |      
 1757|      0|      g_assert (iholder->plugin != NULL);
  ------------------
  |  |  275|      0|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      0|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      0|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      0|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1758|       |      
 1759|      0|      type_data_ref_Wm (iface);
 1760|      0|      if (iholder->info)
  ------------------
  |  Branch (1760:11): [True: 0, False: 0]
  ------------------
 1761|      0|	INVALID_RECURSION ("g_type_plugin_*", iface->plugin, NODE_NAME (iface));
  ------------------
  |  |   88|      0|#define	INVALID_RECURSION(func, arg, type_name) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |   89|      0|    static const gchar _action[] = " invalidly modified type ";  \
  |  |   90|      0|    gpointer _arg = (gpointer) (arg); const gchar *_tname = (type_name), *_fname = (func); \
  |  |   91|      0|    if (_arg) \
  |  |  ------------------
  |  |  |  Branch (91:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   92|      0|      g_error ("%s(%p)%s'%s'", _fname, _arg, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   93|      0|    else \
  |  |   94|      0|      g_error ("%s()%s'%s'", _fname, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   95|      0|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1762|       |      
 1763|      0|      memset (&tmp_info, 0, sizeof (tmp_info));
 1764|       |      
 1765|      0|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1766|      0|      g_type_plugin_use (iholder->plugin);
 1767|      0|      g_type_plugin_complete_interface_info (iholder->plugin, instance_type, NODE_TYPE (iface), &tmp_info);
  ------------------
  |  |  227|      0|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1768|      0|      G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      0|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 1769|      0|      if (iholder->info)
  ------------------
  |  Branch (1769:11): [True: 0, False: 0]
  ------------------
 1770|      0|        INVALID_RECURSION ("g_type_plugin_*", iholder->plugin, NODE_NAME (iface));
  ------------------
  |  |   88|      0|#define	INVALID_RECURSION(func, arg, type_name) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |   89|      0|    static const gchar _action[] = " invalidly modified type ";  \
  |  |   90|      0|    gpointer _arg = (gpointer) (arg); const gchar *_tname = (type_name), *_fname = (func); \
  |  |   91|      0|    if (_arg) \
  |  |  ------------------
  |  |  |  Branch (91:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   92|      0|      g_error ("%s(%p)%s'%s'", _fname, _arg, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   93|      0|    else \
  |  |   94|      0|      g_error ("%s()%s'%s'", _fname, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   95|      0|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1771|       |      
 1772|      0|      check_interface_info_I (iface, instance_type, &tmp_info);
 1773|      0|      iholder->info = g_memdup2 (&tmp_info, sizeof (tmp_info));
 1774|      0|    }
 1775|       |  
 1776|      5|  return iholder;	/* we don't modify write lock upon returning NULL */
 1777|      5|}
gtype.c:type_iface_vtable_iface_init_Wm:
 2129|      2|{
 2130|      2|  IFaceEntry *entry = type_lookup_iface_entry_L (node, iface);
 2131|      2|  IFaceHolder *iholder = type_iface_peek_holder_L (iface, NODE_TYPE (node));
  ------------------
  |  |  227|      2|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2132|      2|  GTypeInterface *vtable = NULL;
 2133|      2|  guint i;
 2134|       |  
 2135|       |  /* iholder->info should have been filled in by type_iface_vtable_base_init_Wm() */
 2136|      2|  g_assert (iface->data && entry && iholder && iholder->info);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     14|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2137|      2|  g_assert (entry->init_state == IFACE_INIT); /* assert prior base_init() */
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2138|       |  
 2139|      2|  entry->init_state = INITIALIZED;
 2140|       |      
 2141|      2|  vtable = entry->vtable;
 2142|       |
 2143|      2|  if (iholder->info->interface_init)
  ------------------
  |  Branch (2143:7): [True: 2, False: 0]
  ------------------
 2144|      2|    {
 2145|      2|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      2|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2146|      2|      if (iholder->info->interface_init)
  ------------------
  |  Branch (2146:11): [True: 2, False: 0]
  ------------------
 2147|      2|	iholder->info->interface_init (vtable, iholder->info->interface_data);
 2148|      2|      G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      2|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2149|      2|    }
 2150|       |  
 2151|      4|  for (i = 0; i < static_n_iface_check_funcs; i++)
  ------------------
  |  Branch (2151:15): [True: 2, False: 2]
  ------------------
 2152|      2|    {
 2153|      2|      GTypeInterfaceCheckFunc check_func = static_iface_check_funcs[i].check_func;
 2154|      2|      gpointer check_data = static_iface_check_funcs[i].check_data;
 2155|       |
 2156|      2|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      2|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2157|      2|      check_func (check_data, (gpointer)vtable);
 2158|      2|      G_WRITE_LOCK (&type_rw_lock);      
  ------------------
  |  |   85|      2|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2159|      2|    }
 2160|      2|}
gtype.c:type_data_ref_U:
 1253|  2.65k|{
 1254|  2.65k|  guint current;
 1255|       |
 1256|  2.65k|  do {
 1257|  2.65k|    current = NODE_REFCOUNT (node);
  ------------------
  |  |  231|  2.65k|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|  2.65k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  2.65k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|  2.65k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  2.65k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|  2.65k|    gint gaig_temp;                                                          \
  |  |  |  |  113|  2.65k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 2.65k]
  |  |  |  |  ------------------
  |  |  |  |  114|  2.65k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|  2.65k|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|  2.65k|  }))
  |  |  ------------------
  ------------------
 1258|       |
 1259|  2.65k|    if (current < 1)
  ------------------
  |  Branch (1259:9): [True: 0, False: 2.65k]
  ------------------
 1260|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1261|  2.65k|  } while (!g_atomic_int_compare_and_exchange ((int *) &node->ref_count, current, current + 1));
  ------------------
  |  |  185|  2.65k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.65k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|  2.65k|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|  2.65k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.65k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|  2.65k|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 2.65k]
  |  |  ------------------
  |  |  189|  2.65k|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|  2.65k|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|  2.65k|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|  2.65k|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (189:5): [True: 2.65k, False: 0]
  |  |  ------------------
  |  |  190|  2.65k|  }))
  ------------------
  |  Branch (1261:12): [True: 0, False: 2.65k]
  ------------------
 1262|       |
 1263|  2.65k|  return TRUE;
  ------------------
  |  |  929|  2.65k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  2.65k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1264|  2.65k|}
gtype.c:type_class_init_Wm:
 2200|     49|{
 2201|     49|  GSList *slist, *init_slist = NULL;
 2202|     49|  GTypeClass *class;
 2203|     49|  IFaceEntries *entries;
 2204|     49|  IFaceEntry *entry;
 2205|     49|  TypeNode *bnode, *pnode;
 2206|     49|  guint i;
 2207|       |  
 2208|       |  /* Accessing data->class will work for instantiatable types
 2209|       |   * too because ClassData is a subset of InstanceData
 2210|       |   */
 2211|     49|  g_assert (node->is_classed && node->data &&
  ------------------
  |  |  275|     49|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     49|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     49|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     49|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     49|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     49| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     49|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    539|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 49]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     49|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     49|   else                                         \
  |  |  |  |  |  |  |  | 1240|     49|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     49|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     49|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 49, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     49|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     49|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     49|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 49]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2212|     49|	    node->data->class.class_size &&
 2213|     49|	    !node->data->class.class &&
 2214|     49|	    g_atomic_int_get (&node->data->class.init_state) == UNINITIALIZED);
 2215|     49|  if (node->data->class.class_private_size)
  ------------------
  |  Branch (2215:7): [True: 3, False: 46]
  ------------------
 2216|      3|    class = g_malloc0 (ALIGN_STRUCT (node->data->class.class_size) + node->data->class.class_private_size);
  ------------------
  |  |  130|      3|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      3|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      3|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 2217|     46|  else
 2218|     46|    class = g_malloc0 (node->data->class.class_size);
 2219|     49|  node->data->class.class = class;
 2220|     49|  g_atomic_int_set (&node->data->class.init_state, BASE_CLASS_INIT);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2221|       |  
 2222|     49|  if (pclass)
  ------------------
  |  Branch (2222:7): [True: 46, False: 3]
  ------------------
 2223|     46|    {
 2224|     46|      pnode = lookup_type_node_I (pclass->g_type);
 2225|       |
 2226|     46|      memcpy (class, pclass, pnode->data->class.class_size);
 2227|     46|      memcpy (G_STRUCT_MEMBER_P (class, ALIGN_STRUCT (node->data->class.class_size)), G_STRUCT_MEMBER_P (pclass, ALIGN_STRUCT (pnode->data->class.class_size)), pnode->data->class.class_private_size);
  ------------------
  |  |  971|     46|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
                    memcpy (G_STRUCT_MEMBER_P (class, ALIGN_STRUCT (node->data->class.class_size)), G_STRUCT_MEMBER_P (pclass, ALIGN_STRUCT (pnode->data->class.class_size)), pnode->data->class.class_private_size);
  ------------------
  |  |  971|     46|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2228|       |
 2229|     46|      if (node->is_instantiatable)
  ------------------
  |  Branch (2229:11): [True: 46, False: 0]
  ------------------
 2230|     46|	{
 2231|       |	  /* We need to initialize the private_size here rather than in
 2232|       |	   * type_data_make_W() since the class init for the parent
 2233|       |	   * class may have changed pnode->data->instance.private_size.
 2234|       |	   */
 2235|     46|	  node->data->instance.private_size = pnode->data->instance.private_size;
 2236|     46|	}
 2237|     46|    }
 2238|     49|  class->g_type = NODE_TYPE (node);
  ------------------
  |  |  227|     49|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2239|       |  
 2240|     49|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     49|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2241|       |  
 2242|       |  /* stack all base class initialization functions, so we
 2243|       |   * call them in ascending order.
 2244|       |   */
 2245|    148|  for (bnode = node; bnode; bnode = lookup_type_node_I (NODE_PARENT_TYPE (bnode)))
  ------------------
  |  |  228|     99|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
  |  Branch (2245:22): [True: 99, False: 49]
  ------------------
 2246|     99|    if (bnode->data->class.class_init_base)
  ------------------
  |  Branch (2246:9): [True: 49, False: 50]
  ------------------
 2247|     49|      init_slist = g_slist_prepend (init_slist, (gpointer) bnode->data->class.class_init_base);
 2248|     98|  for (slist = init_slist; slist; slist = slist->next)
  ------------------
  |  Branch (2248:28): [True: 49, False: 49]
  ------------------
 2249|     49|    {
 2250|     49|      GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data;
 2251|       |      
 2252|     49|      class_init_base (class);
 2253|     49|    }
 2254|     49|  g_slist_free (init_slist);
 2255|       |  
 2256|     49|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     49|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2257|       |
 2258|     49|  g_atomic_int_set (&node->data->class.init_state, BASE_IFACE_INIT);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2259|       |  
 2260|       |  /* Before we initialize the class, base initialize all interfaces, either
 2261|       |   * from parent, or through our holder info
 2262|       |   */
 2263|     49|  pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     49|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 2264|       |
 2265|     49|  i = 0;
 2266|     54|  while ((entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node)) != NULL &&
  ------------------
  |  |  235|     54|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|     54|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
  |  Branch (2266:10): [True: 10, False: 44]
  ------------------
 2267|     10|	  i < IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|     10|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|     10|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|     10|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2267:4): [True: 5, False: 5]
  ------------------
 2268|      5|    {
 2269|      5|      entry = &entries->entry[i];
 2270|      5|      while (i < IFACE_ENTRIES_N_ENTRIES (entries) &&
  ------------------
  |  |  269|     10|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      5|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      5|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2270:14): [True: 5, False: 0]
  ------------------
 2271|      5|	     entry->init_state == IFACE_INIT)
  ------------------
  |  Branch (2271:7): [True: 0, False: 5]
  ------------------
 2272|      0|	{
 2273|      0|	  entry++;
 2274|      0|	  i++;
 2275|      0|	}
 2276|       |
 2277|      5|      if (i == IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|      5|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      5|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      5|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2277:11): [True: 0, False: 5]
  ------------------
 2278|      0|	break;
 2279|       |
 2280|      5|      if (!type_iface_vtable_base_init_Wm (lookup_type_node_I (entry->iface_type), node))
  ------------------
  |  Branch (2280:11): [True: 3, False: 2]
  ------------------
 2281|      3|	{
 2282|      3|	  guint j;
 2283|      3|	  IFaceEntries *pentries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (pnode);
  ------------------
  |  |  235|      3|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|      3|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
 2284|       |	  
 2285|       |	  /* need to get this interface from parent, type_iface_vtable_base_init_Wm()
 2286|       |	   * doesn't modify write lock upon FALSE, so entry is still valid; 
 2287|       |	   */
 2288|      3|	  g_assert (pnode != NULL);
  ------------------
  |  |  275|      3|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      3|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      3|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      3|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2289|       |
 2290|      3|	  if (pentries)
  ------------------
  |  Branch (2290:8): [True: 3, False: 0]
  ------------------
 2291|      3|	    for (j = 0; j < IFACE_ENTRIES_N_ENTRIES (pentries); j++)
  ------------------
  |  |  269|      3|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      3|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      3|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2291:18): [True: 3, False: 0]
  ------------------
 2292|      3|	      {
 2293|      3|		IFaceEntry *pentry = &pentries->entry[j];
 2294|       |
 2295|      3|		if (pentry->iface_type == entry->iface_type)
  ------------------
  |  Branch (2295:7): [True: 3, False: 0]
  ------------------
 2296|      3|		  {
 2297|      3|		    entry->vtable = pentry->vtable;
 2298|      3|		    entry->init_state = INITIALIZED;
 2299|      3|		    break;
 2300|      3|		  }
 2301|      3|	      }
 2302|      3|	  g_assert (entry->vtable != NULL);
  ------------------
  |  |  275|      3|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      3|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      3|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      3|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      3|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      3| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      3|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      3|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      3|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      3|   else                                         \
  |  |  |  |  |  |  |  | 1240|      3|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      3|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      3|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      3|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      3|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      3|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2303|      3|	}
 2304|       |
 2305|       |      /* If the write lock was released, additional interface entries might
 2306|       |       * have been inserted into CLASSED_NODE_IFACES_ENTRIES (node); they'll
 2307|       |       * be base-initialized when inserted, so we don't have to worry that
 2308|       |       * we might miss them. Uninitialized entries can only be moved higher
 2309|       |       * when new ones are inserted.
 2310|       |       */
 2311|      5|      i++;
 2312|      5|    }
 2313|       |  
 2314|     49|  g_atomic_int_set (&node->data->class.init_state, CLASS_INIT);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2315|       |  
 2316|     49|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     49|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2317|       |
 2318|     49|  if (node->data->class.class_init)
  ------------------
  |  Branch (2318:7): [True: 49, False: 0]
  ------------------
 2319|     49|    node->data->class.class_init (class, (gpointer) node->data->class.class_data);
 2320|       |  
 2321|     49|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     49|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2322|       |  
 2323|     49|  g_atomic_int_set (&node->data->class.init_state, IFACE_INIT);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2324|       |  
 2325|       |  /* finish initializing the interfaces through our holder info.
 2326|       |   * inherited interfaces are already init_state == INITIALIZED, because
 2327|       |   * they either got setup in the above base_init loop, or during
 2328|       |   * class_init from within type_add_interface_Wm() for this or
 2329|       |   * an ancestor type.
 2330|       |   */
 2331|     49|  i = 0;
 2332|     51|  while ((entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node)) != NULL)
  ------------------
  |  |  235|     51|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|     51|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
  |  Branch (2332:10): [True: 7, False: 44]
  ------------------
 2333|      7|    {
 2334|      7|      entry = &entries->entry[i];
 2335|     10|      while (i < IFACE_ENTRIES_N_ENTRIES (entries) &&
  ------------------
  |  |  269|     20|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|     10|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|     10|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2335:14): [True: 5, False: 5]
  ------------------
 2336|      5|	     entry->init_state == INITIALIZED)
  ------------------
  |  Branch (2336:7): [True: 3, False: 2]
  ------------------
 2337|      3|	{
 2338|      3|	  entry++;
 2339|      3|	  i++;
 2340|      3|	}
 2341|       |
 2342|      7|      if (i == IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|      7|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      7|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      7|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2342:11): [True: 5, False: 2]
  ------------------
 2343|      5|	break;
 2344|       |
 2345|      2|      type_iface_vtable_iface_init_Wm (lookup_type_node_I (entry->iface_type), node);
 2346|       |      
 2347|       |      /* As in the loop above, additional initialized entries might be inserted
 2348|       |       * if the write lock is released, but that's harmless because the entries
 2349|       |       * we need to initialize only move higher in the list.
 2350|       |       */
 2351|      2|      i++;
 2352|      2|    }
 2353|       |  
 2354|       |  g_atomic_int_set (&node->data->class.init_state, INITIALIZED);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2355|     49|}
gtype.c:type_data_unref_U:
 2509|  2.65k|{
 2510|  2.65k|  guint current;
 2511|       |
 2512|  2.65k|  do {
 2513|  2.65k|    current = NODE_REFCOUNT (node);
  ------------------
  |  |  231|  2.65k|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|  2.65k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  2.65k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|  2.65k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  2.65k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|  2.65k|    gint gaig_temp;                                                          \
  |  |  |  |  113|  2.65k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 2.65k]
  |  |  |  |  ------------------
  |  |  |  |  114|  2.65k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|  2.65k|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|  2.65k|  }))
  |  |  ------------------
  ------------------
 2514|       |
 2515|  2.65k|    if (current <= 1)
  ------------------
  |  Branch (2515:9): [True: 0, False: 2.65k]
  ------------------
 2516|      0|    {
 2517|      0|      if (!node->plugin)
  ------------------
  |  Branch (2517:11): [True: 0, False: 0]
  ------------------
 2518|      0|	{
 2519|      0|	  g_critical ("static type '%s' unreferenced too often",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2520|      0|		      NODE_NAME (node));
 2521|      0|	  return;
 2522|      0|	}
 2523|      0|      else
 2524|      0|        {
 2525|       |          /* This is the last reference of a type from a plugin.  We are
 2526|       |           * experimentally disabling support for unloading type
 2527|       |           * plugins, so don't allow the last ref to drop.
 2528|       |           */
 2529|      0|          return;
 2530|      0|        }
 2531|       |
 2532|      0|      g_assert (current > 0);
  ------------------
  |  |  275|      0|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      0|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      0|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      0|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2533|       |
 2534|      0|      g_rec_mutex_lock (&class_init_rec_mutex); /* required locking order: 1) class_init_rec_mutex, 2) type_rw_lock */
 2535|      0|      G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      0|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2536|      0|      type_data_last_unref_Wm (node, uncached);
 2537|      0|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2538|      0|      g_rec_mutex_unlock (&class_init_rec_mutex);
 2539|      0|      return;
 2540|      0|    }
 2541|  2.65k|  } while (!g_atomic_int_compare_and_exchange ((int *) &node->ref_count, current, current - 1));
  ------------------
  |  |  185|  2.65k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  2.65k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|  2.65k|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|  2.65k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  2.65k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|  2.65k|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 2.65k]
  |  |  ------------------
  |  |  189|  2.65k|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|  2.65k|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|  2.65k|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|  2.65k|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (189:5): [True: 2.65k, False: 0]
  |  |  ------------------
  |  |  190|  2.65k|  }))
  ------------------
  |  Branch (2541:12): [True: 0, False: 2.65k]
  ------------------
 2542|  2.65k|}
gtype.c:type_lookup_iface_vtable_I:
  610|  38.4k|{
  611|  38.4k|  IFaceEntry *entry;
  612|  38.4k|  gboolean res;
  613|       |
  614|  38.4k|  if (!NODE_IS_IFACE (iface_node))
  ------------------
  |  |  233|  38.4k|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|  38.4k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|  38.4k|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|  38.4k|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|  38.4k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (614:7): [True: 0, False: 38.4k]
  ------------------
  615|      0|    {
  616|      0|      if (vtable_ptr)
  ------------------
  |  Branch (616:11): [True: 0, False: 0]
  ------------------
  617|      0|	*vtable_ptr = NULL;
  618|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  619|      0|    }
  620|       |
  621|  38.4k|  G_ATOMIC_ARRAY_DO_TRANSACTION
  ------------------
  |  |   55|  38.4k|#define G_ATOMIC_ARRAY_DO_TRANSACTION(_array, _type, _C_) G_STMT_START {	\
  |  |  ------------------
  |  |  |  |  985|  38.4k|#define G_STMT_START  do
  |  |  ------------------
  |  |   56|  38.4k|    gpointer *_datap  = &(_array)->data;				\
  |  |   57|  38.4k|    _type *transaction_data, *__check;						\
  |  |   58|  38.4k|										\
  |  |   59|  38.4k|    __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  38.4k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  38.4k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  38.4k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  38.4k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  38.4k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  38.4k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  38.4k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  38.4k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  38.4k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  38.4k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  38.4k|  }))
  |  |  ------------------
  |  |   60|  38.4k|    do {									\
  |  |   61|  38.4k|      transaction_data = __check;						\
  |  |   62|  87.0k|      {_C_;}									\
  |  |  ------------------
  |  |  |  Branch (62:8): [True: 16.2k, False: 0]
  |  |  |  Branch (62:8): [True: 16.2k, False: 22.2k]
  |  |  ------------------
  |  |   63|  38.4k|      __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  38.4k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  38.4k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  38.4k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  38.4k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  38.4k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  38.4k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  38.4k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  38.4k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  38.4k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  38.4k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  38.4k|  }))
  |  |  ------------------
  |  |   64|  38.4k|    } while (transaction_data != __check);					\
  |  |  ------------------
  |  |  |  Branch (64:14): [True: 0, False: 38.4k]
  |  |  ------------------
  |  |   65|  38.4k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  38.4k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38.4k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  622|  38.4k|    (CLASSED_NODE_IFACES_ENTRIES (node), IFaceEntries,
  623|       |
  624|  38.4k|     entry = lookup_iface_entry_I (transaction_data, iface_node);
  625|  38.4k|     res = entry != NULL;
  626|  38.4k|     if (vtable_ptr)
  627|  38.4k|       {
  628|  38.4k|	 if (entry)
  629|  38.4k|	   *vtable_ptr = entry->vtable;
  630|  38.4k|	 else
  631|  38.4k|	   *vtable_ptr = NULL;
  632|  38.4k|       }
  633|  38.4k|     );
  634|       |
  635|  38.4k|  return res;
  636|  38.4k|}
gtype.c:type_iface_ensure_dflt_vtable_Wm:
 2044|      2|{
 2045|      2|  g_assert (iface->data);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2046|       |
 2047|      2|  if (!iface->data->iface.dflt_vtable)
  ------------------
  |  Branch (2047:7): [True: 2, False: 0]
  ------------------
 2048|      2|    {
 2049|      2|      GTypeInterface *vtable = g_malloc0 (iface->data->iface.vtable_size);
 2050|      2|      iface->data->iface.dflt_vtable = vtable;
 2051|      2|      vtable->g_type = NODE_TYPE (iface);
  ------------------
  |  |  227|      2|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2052|      2|      vtable->g_instance_type = 0;
 2053|      2|      if (iface->data->iface.vtable_init_base ||
  ------------------
  |  Branch (2053:11): [True: 0, False: 2]
  ------------------
 2054|      2|          iface->data->iface.dflt_init)
  ------------------
  |  Branch (2054:11): [True: 2, False: 0]
  ------------------
 2055|      2|        {
 2056|      2|          G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      2|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2057|      2|          if (iface->data->iface.vtable_init_base)
  ------------------
  |  Branch (2057:15): [True: 0, False: 2]
  ------------------
 2058|      0|            iface->data->iface.vtable_init_base (vtable);
 2059|      2|          if (iface->data->iface.dflt_init)
  ------------------
  |  Branch (2059:15): [True: 2, False: 0]
  ------------------
 2060|      2|            iface->data->iface.dflt_init (vtable, (gpointer) iface->data->iface.dflt_data);
 2061|      2|          G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      2|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2062|      2|        }
 2063|      2|    }
 2064|      2|}
gtype.c:type_node_is_a_L:
 3576|      3|{
 3577|      3|  return type_node_check_conformities_UorL (node, iface_node, TRUE, TRUE, TRUE);
  ------------------
  |  |  929|      3|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      3|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                return type_node_check_conformities_UorL (node, iface_node, TRUE, TRUE, TRUE);
  ------------------
  |  |  929|      3|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      3|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                return type_node_check_conformities_UorL (node, iface_node, TRUE, TRUE, TRUE);
  ------------------
  |  |  929|      3|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      3|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3578|      3|}
gtype.c:type_node_check_conformities_UorL:
 3537|  45.7k|{
 3538|  45.7k|  gboolean match;
 3539|       |
 3540|  45.7k|  if (/* support_inheritance && */
 3541|  45.7k|      NODE_IS_ANCESTOR (iface_node, node))
  ------------------
  |  |  245|  45.7k|        ((ancestor)->n_supers <= (node)->n_supers &&                                        \
  |  |  ------------------
  |  |  |  Branch (245:10): [True: 45.7k, False: 3]
  |  |  ------------------
  |  |  246|  45.7k|	 (node)->supers[(node)->n_supers - (ancestor)->n_supers] == NODE_TYPE (ancestor))
  |  |  ------------------
  |  |  |  |  227|  45.7k|#define NODE_TYPE(node)				(node->supers[0])
  |  |  ------------------
  |  |  |  Branch (246:3): [True: 23.4k, False: 22.2k]
  |  |  ------------------
  ------------------
 3542|  23.4k|    return TRUE;
  ------------------
  |  |  929|  23.4k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  23.4k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3543|       |
 3544|  22.2k|  support_interfaces = support_interfaces && node->is_instantiatable && NODE_IS_IFACE (iface_node);
  ------------------
  |  |  233|  44.5k|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|  22.2k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|  22.2k|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|  22.2k|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|  22.2k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 22.2k, False: 12]
  |  |  ------------------
  ------------------
  |  Branch (3544:24): [True: 22.2k, False: 0]
  |  Branch (3544:46): [True: 22.2k, False: 3]
  ------------------
 3545|  22.2k|  support_prerequisites = support_prerequisites && NODE_IS_IFACE (node);
  ------------------
  |  |  233|  22.2k|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     18|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     18|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     18|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     18|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 3, False: 15]
  |  |  ------------------
  ------------------
  |  Branch (3545:27): [True: 18, False: 22.2k]
  ------------------
 3546|  22.2k|  match = FALSE;
  ------------------
  |  |  925|  22.2k|#define	FALSE	(0)
  ------------------
 3547|  22.2k|  if (support_interfaces)
  ------------------
  |  Branch (3547:7): [True: 22.2k, False: 15]
  ------------------
 3548|  22.2k|    {
 3549|  22.2k|      if (have_lock)
  ------------------
  |  Branch (3549:11): [True: 0, False: 22.2k]
  ------------------
 3550|      0|	{
 3551|      0|	  if (type_lookup_iface_entry_L (node, iface_node))
  ------------------
  |  Branch (3551:8): [True: 0, False: 0]
  ------------------
 3552|      0|	    match = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3553|      0|	}
 3554|  22.2k|      else
 3555|  22.2k|	{
 3556|  22.2k|	  if (type_lookup_iface_vtable_I (node, iface_node, NULL))
  ------------------
  |  Branch (3556:8): [True: 22.2k, False: 3]
  ------------------
 3557|  22.2k|	    match = TRUE;
  ------------------
  |  |  929|  22.2k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  22.2k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3558|  22.2k|	}
 3559|  22.2k|    }
 3560|  22.2k|  if (!match &&
  ------------------
  |  Branch (3560:7): [True: 18, False: 22.2k]
  ------------------
 3561|     18|      support_prerequisites)
  ------------------
  |  Branch (3561:7): [True: 3, False: 15]
  ------------------
 3562|      3|    {
 3563|      3|      if (!have_lock)
  ------------------
  |  Branch (3563:11): [True: 3, False: 0]
  ------------------
 3564|      3|	G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|      3|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 3565|      3|      if (support_prerequisites && type_lookup_prerequisite_L (node, NODE_TYPE (iface_node)))
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
  |  Branch (3565:11): [True: 3, False: 0]
  |  Branch (3565:36): [True: 0, False: 3]
  ------------------
 3566|      0|	match = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3567|      3|      if (!have_lock)
  ------------------
  |  Branch (3567:11): [True: 3, False: 0]
  ------------------
 3568|      3|	G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|      3|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 3569|      3|    }
 3570|  22.2k|  return match;
 3571|  45.7k|}
gtype.c:type_lookup_prerequisite_L:
  641|      3|{
  642|      3|  if (NODE_IS_IFACE (iface) && IFACE_NODE_N_PREREQUISITES (iface))
  ------------------
  |  |  233|      6|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      3|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      3|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      3|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      3|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 3, False: 0]
  |  |  ------------------
  ------------------
                if (NODE_IS_IFACE (iface) && IFACE_NODE_N_PREREQUISITES (iface))
  ------------------
  |  |  236|      3|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  |  |  ------------------
  |  |  |  Branch (236:42): [True: 0, False: 3]
  |  |  ------------------
  ------------------
  643|      0|    {
  644|      0|      GType *prerequisites = IFACE_NODE_PREREQUISITES (iface) - 1;
  ------------------
  |  |  237|      0|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
  645|      0|      guint n_prerequisites = IFACE_NODE_N_PREREQUISITES (iface);
  ------------------
  |  |  236|      0|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  646|       |      
  647|      0|      do
  648|      0|	{
  649|      0|	  guint i;
  650|      0|	  GType *check;
  651|       |	  
  652|      0|	  i = (n_prerequisites + 1) >> 1;
  653|      0|	  check = prerequisites + i;
  654|      0|	  if (prerequisite_type == *check)
  ------------------
  |  Branch (654:8): [True: 0, False: 0]
  ------------------
  655|      0|	    return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  656|      0|	  else if (prerequisite_type > *check)
  ------------------
  |  Branch (656:13): [True: 0, False: 0]
  ------------------
  657|      0|	    {
  658|      0|	      n_prerequisites -= i;
  659|      0|	      prerequisites = check;
  660|      0|	    }
  661|      0|	  else /* if (prerequisite_type < *check) */
  662|      0|	    n_prerequisites = i - 1;
  663|      0|	}
  664|      0|      while (n_prerequisites);
  ------------------
  |  Branch (664:14): [True: 0, False: 0]
  ------------------
  665|      0|    }
  666|      3|  return FALSE;
  ------------------
  |  |  925|      3|#define	FALSE	(0)
  ------------------
  667|      3|}
gtype.c:type_node_conforms_to_U:
 3585|  45.7k|{
 3586|  45.7k|  return type_node_check_conformities_UorL (node, iface_node, support_interfaces, support_prerequisites, FALSE);
  ------------------
  |  |  925|  45.7k|#define	FALSE	(0)
  ------------------
 3587|  45.7k|}
gtype.c:type_get_qdata_L:
 3732|    214|{
 3733|    214|  GData *gdata = node->global_gdata;
 3734|       |  
 3735|    214|  if (quark && gdata && gdata->n_qdatas)
  ------------------
  |  Branch (3735:7): [True: 214, False: 0]
  |  Branch (3735:16): [True: 112, False: 102]
  |  Branch (3735:25): [True: 112, False: 0]
  ------------------
 3736|    112|    {
 3737|    112|      QData *qdatas = gdata->qdatas - 1;
 3738|    112|      guint n_qdatas = gdata->n_qdatas;
 3739|       |      
 3740|    112|      do
 3741|    119|	{
 3742|    119|	  guint i;
 3743|    119|	  QData *check;
 3744|       |	  
 3745|    119|	  i = (n_qdatas + 1) / 2;
 3746|    119|	  check = qdatas + i;
 3747|    119|	  if (quark == check->quark)
  ------------------
  |  Branch (3747:8): [True: 103, False: 16]
  ------------------
 3748|    103|	    return check->data;
 3749|     16|	  else if (quark > check->quark)
  ------------------
  |  Branch (3749:13): [True: 16, False: 0]
  ------------------
 3750|     16|	    {
 3751|     16|	      n_qdatas -= i;
 3752|     16|	      qdatas = check;
 3753|     16|	    }
 3754|      0|	  else /* if (quark < check->quark) */
 3755|      0|	    n_qdatas = i - 1;
 3756|    119|	}
 3757|    112|      while (n_qdatas);
  ------------------
  |  Branch (3757:14): [True: 7, False: 9]
  ------------------
 3758|    112|    }
 3759|    111|  return NULL;
 3760|    214|}
gtype.c:type_set_qdata_W:
 3802|    105|{
 3803|    105|  GData *gdata;
 3804|    105|  QData *qdata;
 3805|    105|  guint i;
 3806|       |  
 3807|       |  /* setup qdata list if necessary */
 3808|    105|  if (!node->global_gdata)
  ------------------
  |  Branch (3808:7): [True: 102, False: 3]
  ------------------
 3809|    102|    node->global_gdata = g_new0 (GData, 1);
  ------------------
  |  |  332|    102|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    102|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    102|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    102|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    102|	  gpointer __p;						\
  |  |  |  |  264|    102|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 102]
  |  |  |  |  ------------------
  |  |  |  |  265|    102|	    __p = g_##func (__n);				\
  |  |  |  |  266|    102|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    102|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    102|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    102|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 102]
  |  |  |  |  |  Branch (267:26): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    102|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    102|	  else							\
  |  |  |  |  270|    102|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    102|	  __p;							\
  |  |  |  |  272|    102|	}))
  |  |  ------------------
  ------------------
 3810|    105|  gdata = node->global_gdata;
 3811|       |  
 3812|       |  /* try resetting old data */
 3813|    105|  qdata = gdata->qdatas;
 3814|    108|  for (i = 0; i < gdata->n_qdatas; i++)
  ------------------
  |  Branch (3814:15): [True: 3, False: 105]
  ------------------
 3815|      3|    if (qdata[i].quark == quark)
  ------------------
  |  Branch (3815:9): [True: 0, False: 3]
  ------------------
 3816|      0|      {
 3817|      0|	qdata[i].data = data;
 3818|      0|	return;
 3819|      0|      }
 3820|       |  
 3821|       |  /* add new entry */
 3822|    105|  gdata->n_qdatas++;
 3823|    105|  gdata->qdatas = g_renew (QData, gdata->qdatas, gdata->n_qdatas);
  ------------------
  |  |  346|    105|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|    105|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    105|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|    105|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|    105|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|    105|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|    105|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 105]
  |  |  |  |  ------------------
  |  |  |  |  279|    105|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|    105|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 105]
  |  |  |  |  ------------------
  |  |  |  |  281|    105|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|    105|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|    105|	  else							\
  |  |  |  |  284|    105|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|    105|	  __p;							\
  |  |  |  |  286|    105|	}))
  |  |  ------------------
  ------------------
 3824|    105|  qdata = gdata->qdatas;
 3825|    108|  for (i = 0; i < gdata->n_qdatas - 1; i++)
  ------------------
  |  Branch (3825:15): [True: 3, False: 105]
  ------------------
 3826|      3|    if (qdata[i].quark > quark)
  ------------------
  |  Branch (3826:9): [True: 0, False: 3]
  ------------------
 3827|      0|      break;
 3828|    105|  memmove (qdata + i + 1, qdata + i, sizeof (qdata[0]) * (gdata->n_qdatas - i - 1));
 3829|    105|  qdata[i].quark = quark;
 3830|    105|  qdata[i].data = data;
 3831|    105|}
gtype.c:type_add_flags_W:
 3864|    102|{
 3865|    102|  guint dflags;
 3866|       |  
 3867|    102|  g_return_if_fail ((flags & ~TYPE_FLAG_MASK) == 0);
  ------------------
  |  |  650|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    102|      { } \
  |  |  653|    102|    else \
  |  |  654|    102|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3868|    102|  g_return_if_fail (node != NULL);
  ------------------
  |  |  650|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    102|      { } \
  |  |  653|    102|    else \
  |  |  654|    102|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3869|       |  
 3870|    102|  if ((flags & TYPE_FLAG_MASK) && node->is_classed && node->data && node->data->class.class)
  ------------------
  |  |  106|    102|#define	TYPE_FLAG_MASK		   (G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT | G_TYPE_FLAG_FINAL | G_TYPE_FLAG_DEPRECATED)
  ------------------
  |  Branch (3870:7): [True: 8, False: 94]
  |  Branch (3870:35): [True: 6, False: 2]
  |  Branch (3870:55): [True: 0, False: 6]
  |  Branch (3870:69): [True: 0, False: 0]
  ------------------
 3871|      0|    g_critical ("tagging type '%s' as abstract after class initialization", NODE_NAME (node));
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 3872|    102|  dflags = GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags));
  ------------------
  |  |  104|    102|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 3873|    102|  dflags |= flags;
 3874|    102|  type_set_qdata_W (node, static_quark_type_flags, GUINT_TO_POINTER (dflags));
  ------------------
  |  |  107|    102|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 3875|       |
 3876|    102|  node->is_abstract = (flags & G_TYPE_FLAG_ABSTRACT) != 0;
 3877|    102|  node->is_deprecated |= (flags & G_TYPE_FLAG_DEPRECATED) != 0;
 3878|    102|  node->is_final = (flags & G_TYPE_FLAG_FINAL) != 0;
 3879|    102|}
gtype.c:_g_type_test_flags:
 3957|  2.56k|{
 3958|  2.56k|  TypeNode *node;
 3959|  2.56k|  gboolean result = FALSE;
  ------------------
  |  |  925|  2.56k|#define	FALSE	(0)
  ------------------
 3960|       |  
 3961|  2.56k|  node = lookup_type_node_I (type);
 3962|  2.56k|  if (node)
  ------------------
  |  Branch (3962:7): [True: 2.56k, False: 0]
  ------------------
 3963|  2.56k|    {
 3964|  2.56k|      if ((flags & ~NODE_FLAG_MASK) == 0)
  ------------------
  |  |  109|  2.56k|#define	NODE_FLAG_MASK ( \
  |  |  110|  2.56k|  G_TYPE_FLAG_ABSTRACT | \
  |  |  111|  2.56k|  G_TYPE_FLAG_CLASSED | \
  |  |  112|  2.56k|  G_TYPE_FLAG_DEPRECATED | \
  |  |  113|  2.56k|  G_TYPE_FLAG_INSTANTIATABLE | \
  |  |  114|  2.56k|  G_TYPE_FLAG_FINAL)
  ------------------
  |  Branch (3964:11): [True: 2.56k, False: 0]
  ------------------
 3965|  2.56k|        {
 3966|  2.56k|          if ((flags & G_TYPE_FLAG_CLASSED) && !node->is_classed)
  ------------------
  |  Branch (3966:15): [True: 1, False: 2.56k]
  |  Branch (3966:48): [True: 0, False: 1]
  ------------------
 3967|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3968|       |
 3969|  2.56k|          if ((flags & G_TYPE_FLAG_INSTANTIATABLE) && !node->is_instantiatable)
  ------------------
  |  Branch (3969:15): [True: 4, False: 2.56k]
  |  Branch (3969:55): [True: 0, False: 4]
  ------------------
 3970|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3971|       |
 3972|  2.56k|          if ((flags & G_TYPE_FLAG_FINAL) && !node->is_final)
  ------------------
  |  Branch (3972:15): [True: 0, False: 2.56k]
  |  Branch (3972:46): [True: 0, False: 0]
  ------------------
 3973|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3974|       |
 3975|  2.56k|          if ((flags & G_TYPE_FLAG_ABSTRACT) && !node->is_abstract)
  ------------------
  |  Branch (3975:15): [True: 0, False: 2.56k]
  |  Branch (3975:49): [True: 0, False: 0]
  ------------------
 3976|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3977|       |
 3978|  2.56k|          if ((flags & G_TYPE_FLAG_DEPRECATED) && !node->is_deprecated)
  ------------------
  |  Branch (3978:15): [True: 2.56k, False: 5]
  |  Branch (3978:51): [True: 2.56k, False: 0]
  ------------------
 3979|  2.56k|            return FALSE;
  ------------------
  |  |  925|  2.56k|#define	FALSE	(0)
  ------------------
 3980|       |
 3981|      5|          return TRUE;
  ------------------
  |  |  929|      5|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      5|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3982|  2.56k|        }
 3983|       |
 3984|      0|      guint fflags = flags & TYPE_FUNDAMENTAL_FLAG_MASK;
  ------------------
  |  |  102|      0|#define TYPE_FUNDAMENTAL_FLAG_MASK (G_TYPE_FLAG_CLASSED | \
  |  |  103|      0|				    G_TYPE_FLAG_INSTANTIATABLE | \
  |  |  104|      0|				    G_TYPE_FLAG_DERIVABLE | \
  |  |  105|      0|				    G_TYPE_FLAG_DEEP_DERIVABLE)
  ------------------
 3985|      0|      guint tflags = flags & TYPE_FLAG_MASK;
  ------------------
  |  |  106|      0|#define	TYPE_FLAG_MASK		   (G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT | G_TYPE_FLAG_FINAL | G_TYPE_FLAG_DEPRECATED)
  ------------------
 3986|       |      
 3987|      0|      if (fflags)
  ------------------
  |  Branch (3987:11): [True: 0, False: 0]
  ------------------
 3988|      0|	{
 3989|      0|	  GTypeFundamentalInfo *finfo = type_node_fundamental_info_I (node);
 3990|       |	  
 3991|      0|	  fflags = (finfo->type_flags & fflags) == fflags;
 3992|      0|	}
 3993|      0|      else
 3994|      0|	fflags = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3995|       |      
 3996|      0|      if (tflags)
  ------------------
  |  Branch (3996:11): [True: 0, False: 0]
  ------------------
 3997|      0|	{
 3998|      0|	  G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|      0|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 3999|      0|	  tflags = (tflags & GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags))) == tflags;
  ------------------
  |  |  104|      0|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 4000|      0|	  G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|      0|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 4001|      0|	}
 4002|      0|      else
 4003|      0|	tflags = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4004|       |      
 4005|      0|      result = tflags && fflags;
  ------------------
  |  Branch (4005:16): [True: 0, False: 0]
  |  Branch (4005:26): [True: 0, False: 0]
  ------------------
 4006|      0|    }
 4007|       |  
 4008|      0|  return result;
 4009|  2.56k|}
gtype.c:type_check_is_value_type_U:
 4278|  1.79k|{
 4279|  1.79k|  GTypeFlags tflags = G_TYPE_FLAG_VALUE_ABSTRACT;
 4280|  1.79k|  TypeNode *node;
 4281|       |  
 4282|       |  /* common path speed up */
 4283|  1.79k|  node = lookup_type_node_I (type);
 4284|  1.79k|  if (node && node->mutatable_check_cache)
  ------------------
  |  Branch (4284:7): [True: 1.79k, False: 0]
  |  Branch (4284:15): [True: 1.79k, False: 1]
  ------------------
 4285|  1.79k|    return TRUE;
  ------------------
  |  |  929|  1.79k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.79k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4286|       |  
 4287|      1|  G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|      1|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 4288|      1| restart_check:
 4289|      1|  if (node)
  ------------------
  |  Branch (4289:7): [True: 1, False: 0]
  ------------------
 4290|      1|    {
 4291|      1|      if (node->data && NODE_REFCOUNT (node) > 0 &&
  ------------------
  |  |  231|      1|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|      1|    gint gaig_temp;                                                          \
  |  |  |  |  113|      1|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  114|      1|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|      1|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|      1|  }))
  |  |  ------------------
  ------------------
  |  Branch (4291:11): [True: 1, False: 0]
  |  Branch (4291:25): [True: 1, False: 0]
  ------------------
 4292|      1|	  node->data->common.value_table->value_init)
  ------------------
  |  Branch (4292:4): [True: 1, False: 0]
  ------------------
 4293|      1|	tflags = GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags));
  ------------------
  |  |  104|      1|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 4294|      0|      else if (NODE_IS_IFACE (node))
  ------------------
  |  |  233|      0|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      0|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      0|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      0|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      0|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 4295|      0|	{
 4296|      0|	  guint i;
 4297|       |	  
 4298|      0|	  for (i = 0; i < IFACE_NODE_N_PREREQUISITES (node); i++)
  ------------------
  |  |  236|      0|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (4298:16): [True: 0, False: 0]
  ------------------
 4299|      0|	    {
 4300|      0|	      GType prtype = IFACE_NODE_PREREQUISITES (node)[i];
  ------------------
  |  |  237|      0|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 4301|      0|	      TypeNode *prnode = lookup_type_node_I (prtype);
 4302|       |	      
 4303|      0|	      if (prnode->is_instantiatable)
  ------------------
  |  Branch (4303:12): [True: 0, False: 0]
  ------------------
 4304|      0|		{
 4305|      0|		  type = prtype;
 4306|      0|		  node = lookup_type_node_I (type);
 4307|      0|		  goto restart_check;
 4308|      0|		}
 4309|      0|	    }
 4310|      0|	}
 4311|      1|    }
 4312|      1|  G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|      1|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 4313|       |  
 4314|      1|  return !(tflags & G_TYPE_FLAG_VALUE_ABSTRACT);
 4315|      1|}
gtype.c:gobject_init:
 4491|      2|{
 4492|      2|  const gchar *env_string;
 4493|      2|  GTypeInfo info;
 4494|      2|  TypeNode *node;
 4495|      2|  GType type G_GNUC_UNUSED  /* when compiling with G_DISABLE_ASSERT */;
 4496|       |
 4497|       |  /* Ensure GLib is initialized first, see
 4498|       |   * https://bugzilla.gnome.org/show_bug.cgi?id=756139
 4499|       |   */
 4500|      2|  GLIB_PRIVATE_CALL (glib_init) ();
  ------------------
  |  |  225|      2|#define GLIB_PRIVATE_CALL(symbol) (glib__private__()->symbol)
  ------------------
 4501|       |
 4502|      2|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      2|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 4503|       |
 4504|       |  /* setup GObject library wide debugging flags */
 4505|      2|  env_string = g_getenv ("GOBJECT_DEBUG");
 4506|      2|  if (env_string != NULL)
  ------------------
  |  Branch (4506:7): [True: 0, False: 2]
  ------------------
 4507|      0|    {
 4508|      0|      GDebugKey debug_keys[] = {
 4509|      0|        { "objects", G_TYPE_DEBUG_OBJECTS },
 4510|      0|        { "instance-count", G_TYPE_DEBUG_INSTANCE_COUNT },
 4511|      0|        { "signals", G_TYPE_DEBUG_SIGNALS },
 4512|      0|      };
 4513|       |
 4514|      0|      _g_type_debug_flags = g_parse_debug_string (env_string, debug_keys, G_N_ELEMENTS (debug_keys));
  ------------------
  |  |  951|      0|#define G_N_ELEMENTS(arr)		(sizeof (arr) / sizeof ((arr)[0]))
  ------------------
 4515|      0|    }
 4516|       |
 4517|       |  /* quarks */
 4518|      2|  static_quark_type_flags = g_quark_from_static_string ("-g-type-private--GTypeFlags");
 4519|      2|  static_quark_iface_holder = g_quark_from_static_string ("-g-type-private--IFaceHolder");
 4520|      2|  static_quark_dependants_array = g_quark_from_static_string ("-g-type-private--dependants-array");
 4521|       |
 4522|       |  /* type qname hash table */
 4523|      2|  static_type_nodes_ht = g_hash_table_new (g_str_hash, g_str_equal);
 4524|       |
 4525|       |  /* invalid type G_TYPE_INVALID (0)
 4526|       |   */
 4527|      2|  static_fundamental_type_nodes[0] = NULL;
 4528|       |
 4529|       |  /* void type G_TYPE_NONE
 4530|       |   */
 4531|      2|  node = type_node_fundamental_new_W (G_TYPE_NONE, g_intern_static_string ("void"), 0);
  ------------------
  |  |   72|      2|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4532|      2|  type = NODE_TYPE (node);
  ------------------
  |  |  227|      2|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 4533|      2|  g_assert (type == G_TYPE_NONE);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4534|       |
 4535|       |  /* interface fundamental type G_TYPE_INTERFACE (!classed)
 4536|       |   */
 4537|      2|  memset (&info, 0, sizeof (info));
 4538|      2|  node = type_node_fundamental_new_W (G_TYPE_INTERFACE, g_intern_static_string ("GInterface"), G_TYPE_FLAG_DERIVABLE);
  ------------------
  |  |   78|      2|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4539|      2|  type = NODE_TYPE (node);
  ------------------
  |  |  227|      2|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 4540|      2|  type_data_make_W (node, &info, NULL);
 4541|      2|  g_assert (type == G_TYPE_INTERFACE);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4542|       |
 4543|      2|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      2|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 4544|       |
 4545|      2|  _g_value_c_init ();
 4546|       |
 4547|       |  /* G_TYPE_TYPE_PLUGIN
 4548|       |   */
 4549|      2|  g_type_ensure (g_type_plugin_get_type ());
 4550|       |
 4551|       |  /* G_TYPE_* value types
 4552|       |   */
 4553|      2|  _g_value_types_init ();
 4554|       |
 4555|       |  /* G_TYPE_ENUM & G_TYPE_FLAGS
 4556|       |   */
 4557|      2|  _g_enum_types_init ();
 4558|       |
 4559|       |  /* G_TYPE_BOXED
 4560|       |   */
 4561|      2|  _g_boxed_type_init ();
 4562|       |
 4563|       |  /* G_TYPE_PARAM
 4564|       |   */
 4565|      2|  _g_param_type_init ();
 4566|       |
 4567|       |  /* G_TYPE_OBJECT
 4568|       |   */
 4569|      2|  _g_object_type_init ();
 4570|       |
 4571|       |  /* G_TYPE_PARAM_* pspec types
 4572|       |   */
 4573|      2|  _g_param_spec_types_init ();
 4574|       |
 4575|       |  /* Value Transformations
 4576|       |   */
 4577|      2|  _g_value_transforms_init ();
 4578|       |
 4579|       |  /* Signal system
 4580|       |   */
 4581|      2|  _g_signal_init ();
 4582|      2|}

gboxed.c:g_value_array_get_type_once:
 2462|      2|#define G_DEFINE_BOXED_TYPE_WITH_CODE(TypeName, type_name, copy_func, free_func, _C_) _G_DEFINE_BOXED_TYPE_BEGIN (TypeName, type_name, copy_func, free_func) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2486|      2|type_name##_get_type_once (void) \
  |  | 2487|      2|{ \
  |  | 2488|      2|  GType (* _g_register_boxed) \
  |  | 2489|      2|    (const gchar *, \
  |  | 2490|      2|     union \
  |  | 2491|      2|       { \
  |  | 2492|      2|         TypeName * (*do_copy_type) (TypeName *); \
  |  | 2493|      2|         TypeName * (*do_const_copy_type) (const TypeName *); \
  |  | 2494|      2|         GBoxedCopyFunc do_copy_boxed; \
  |  | 2495|      2|       } __attribute__((__transparent_union__)), \
  |  | 2496|      2|     union \
  |  | 2497|      2|       { \
  |  | 2498|      2|         void (* do_free_type) (TypeName *); \
  |  | 2499|      2|         GBoxedFreeFunc do_free_boxed; \
  |  | 2500|      2|       } __attribute__((__transparent_union__)) \
  |  | 2501|      2|    ) = g_boxed_type_register_static; \
  |  | 2502|      2|  GType g_define_type_id = \
  |  | 2503|      2|    _g_register_boxed (g_intern_static_string (#TypeName), copy_func, free_func); \
  |  | 2504|      2|  { /* custom code follows */
  ------------------
              #define G_DEFINE_BOXED_TYPE_WITH_CODE(TypeName, type_name, copy_func, free_func, _C_) _G_DEFINE_BOXED_TYPE_BEGIN (TypeName, type_name, copy_func, free_func) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      2|    }					\
  |  | 2330|      2|  return g_define_type_id; \
  |  | 2331|      2|} /* closes type_name##_get_type_once() */
  ------------------
gvaluetypes.c:g_gtype_get_type_once:
 2557|      2|#define G_DEFINE_POINTER_TYPE_WITH_CODE(TypeName, type_name, _C_) _G_DEFINE_POINTER_TYPE_BEGIN (TypeName, type_name) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2576|      2|type_name##_get_type_once (void) \
  |  | 2577|      2|{ \
  |  | 2578|      2|  GType g_define_type_id = \
  |  | 2579|      2|    g_pointer_type_register_static (g_intern_static_string (#TypeName)); \
  |  | 2580|      2|  { /* custom code follows */
  ------------------
              #define G_DEFINE_POINTER_TYPE_WITH_CODE(TypeName, type_name, _C_) _G_DEFINE_POINTER_TYPE_BEGIN (TypeName, type_name) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      2|    }					\
  |  | 2330|      2|  return g_define_type_id; \
  |  | 2331|      2|} /* closes type_name##_get_type_once() */
  ------------------

g_type_plugin_get_type:
   82|      2|{
   83|      2|  static GType type_plugin_type = 0;
   84|       |  
   85|      2|  if (!type_plugin_type)
  ------------------
  |  Branch (85:7): [True: 2, False: 0]
  ------------------
   86|      2|    {
   87|      2|      const GTypeInfo type_plugin_info = {
   88|      2|        sizeof (GTypePluginClass),
   89|      2|        NULL,           /* base_init */
   90|      2|        NULL,           /* base_finalize */
   91|      2|        0,              /* class_init */
   92|      2|        NULL,           /* class_destroy */
   93|      2|        NULL,           /* class_data */
   94|      2|        0,              /* instance_size */
   95|      2|        0,              /* n_preallocs */
   96|      2|        NULL,           /* instance_init */
   97|      2|        NULL,           /* value_table */
   98|      2|      };
   99|       |      
  100|      2|      type_plugin_type = g_type_register_static (G_TYPE_INTERFACE, g_intern_static_string ("GTypePlugin"), &type_plugin_info, 0);
  ------------------
  |  |   78|      2|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|      2|    }
  102|       |  
  103|      2|  return type_plugin_type;
  104|      2|}

_g_value_c_init:
   59|      2|{
   60|      2|  transform_array = g_bsearch_array_create (&transform_bconfig);
   61|      2|}
g_value_init:
   83|    897|{
   84|    897|  GTypeValueTable *value_table;
   85|       |  /* g_return_val_if_fail (G_TYPE_IS_VALUE (g_type), NULL);	be more elaborate below */
   86|    897|  g_return_val_if_fail (value != NULL, NULL);
  ------------------
  |  |  663|    897|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    897|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    897|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    897|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    897|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    897| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    897|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    897|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    897|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 897, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    897|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    897|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    897|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    897|   else                                         \
  |  |  |  |  |  |  |  | 1240|    897|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    897|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    897|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    897|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    897|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 897, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    897|      { } \
  |  |  666|    897|    else \
  |  |  667|    897|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    897|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    897|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 897]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   87|       |  /* g_return_val_if_fail (G_VALUE_TYPE (value) == 0, NULL);	be more elaborate below */
   88|       |
   89|    897|  value_table = g_type_value_table_peek (g_type);
   90|       |
   91|    897|  if (value_table && G_VALUE_TYPE (value) == 0)
  ------------------
  |  |   62|    897|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (91:7): [True: 897, False: 0]
  |  Branch (91:22): [True: 897, False: 0]
  ------------------
   92|    897|    {
   93|       |      /* setup and init */
   94|    897|      value_meminit (value, g_type);
   95|    897|      value_table->value_init (value);
   96|    897|    }
   97|      0|  else if (G_VALUE_TYPE (value))
  ------------------
  |  |   62|      0|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  |  |  ------------------
  |  |  |  Branch (62:30): [True: 0, False: 0]
  |  |  ------------------
  ------------------
   98|      0|    g_critical ("%s: cannot initialize GValue with type '%s', the value has already been initialized as '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
   99|      0|	        G_STRLOC,
  100|      0|	        g_type_name (g_type),
  101|      0|	        g_type_name (G_VALUE_TYPE (value)));
  102|      0|  else /* !G_TYPE_IS_VALUE (g_type) */
  103|      0|    g_critical ("%s: cannot initialize GValue with type '%s', %s",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  |  |  ------------------
  |  |  |  Branch (361:32): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  104|    897|                G_STRLOC,
  105|    897|                g_type_name (g_type),
  106|    897|                value_table ? "this type is abstract with regards to GValue use, use a more specific (derived) type" : "this type has no GTypeValueTable implementation");
  107|    897|  return value;
  108|    897|}
g_value_copy:
  120|    896|{
  121|    896|  g_return_if_fail (src_value);
  ------------------
  |  |  650|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    896|      { } \
  |  |  653|    896|    else \
  |  |  654|    896|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  122|    896|  g_return_if_fail (dest_value);
  ------------------
  |  |  650|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    896|      { } \
  |  |  653|    896|    else \
  |  |  654|    896|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  123|    896|  g_return_if_fail (g_value_type_compatible (G_VALUE_TYPE (src_value), G_VALUE_TYPE (dest_value)));
  ------------------
  |  |  650|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    896|      { } \
  |  |  653|    896|    else \
  |  |  654|    896|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  124|       |  
  125|    896|  if (src_value != dest_value)
  ------------------
  |  Branch (125:7): [True: 896, False: 0]
  ------------------
  126|    896|    {
  127|    896|      GType dest_type = G_VALUE_TYPE (dest_value);
  ------------------
  |  |   62|    896|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  128|    896|      GTypeValueTable *value_table = g_type_value_table_peek (dest_type);
  129|       |
  130|    896|      g_return_if_fail (value_table);
  ------------------
  |  |  650|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    896|      { } \
  |  |  653|    896|    else \
  |  |  654|    896|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  131|       |
  132|       |      /* make sure dest_value's value is free()d */
  133|    896|      if (value_table->value_free)
  ------------------
  |  Branch (133:11): [True: 896, False: 0]
  ------------------
  134|    896|	value_table->value_free (dest_value);
  135|       |
  136|       |      /* setup and copy */
  137|    896|      value_meminit (dest_value, dest_type);
  138|    896|      value_table->value_copy (src_value, dest_value);
  139|    896|    }
  140|    896|}
g_value_reset:
  153|      1|{
  154|      1|  GTypeValueTable *value_table;
  155|      1|  GType g_type;
  156|       |
  157|      1|  g_return_val_if_fail (value, NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  158|      1|  g_type = G_VALUE_TYPE (value);
  ------------------
  |  |   62|      1|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  159|       |
  160|      1|  value_table = g_type_value_table_peek (g_type);
  161|      1|  g_return_val_if_fail (value_table, NULL);
  ------------------
  |  |  663|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      1|      { } \
  |  |  666|      1|    else \
  |  |  667|      1|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  162|       |
  163|       |  /* make sure value's value is free()d */
  164|      1|  if (value_table->value_free)
  ------------------
  |  Branch (164:7): [True: 1, False: 0]
  ------------------
  165|      1|    value_table->value_free (value);
  166|       |
  167|       |  /* setup and init */
  168|      1|  value_meminit (value, g_type);
  169|      1|  value_table->value_init (value);
  170|       |
  171|      1|  return value;
  172|      1|}
g_value_unset:
  185|    896|{
  186|    896|  GTypeValueTable *value_table;
  187|       |  
  188|    896|  if (value->g_type == 0)
  ------------------
  |  Branch (188:7): [True: 0, False: 896]
  ------------------
  189|      0|    return;
  190|       |
  191|    896|  g_return_if_fail (value);
  ------------------
  |  |  650|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    896|      { } \
  |  |  653|    896|    else \
  |  |  654|    896|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  192|       |
  193|    896|  value_table = g_type_value_table_peek (G_VALUE_TYPE (value));
  ------------------
  |  |   62|    896|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  194|    896|  g_return_if_fail (value_table);
  ------------------
  |  |  650|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    896|      { } \
  |  |  653|    896|    else \
  |  |  654|    896|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  195|       |
  196|    896|  if (value_table->value_free)
  ------------------
  |  Branch (196:7): [True: 896, False: 0]
  ------------------
  197|    896|    value_table->value_free (value);
  198|    896|  memset (value, 0, sizeof (*value));
  199|    896|}
g_value_register_transform_func:
  441|    340|{
  442|    340|  TransformEntry entry;
  443|       |
  444|       |  /* these checks won't pass for dynamic types.
  445|       |   * g_return_if_fail (G_TYPE_HAS_VALUE_TABLE (src_type));
  446|       |   * g_return_if_fail (G_TYPE_HAS_VALUE_TABLE (dest_type));
  447|       |   */
  448|    340|  g_return_if_fail (transform_func != NULL);
  ------------------
  |  |  650|    340|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    340|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    340|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    340|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    340|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    340| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    340|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    340|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    340|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 340, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    340|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    340|   else                                         \
  |  |  |  |  |  |  |  | 1240|    340|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    340|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    340|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    340|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    340|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 340, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    340|      { } \
  |  |  653|    340|    else \
  |  |  654|    340|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    340|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    340|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 340]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  449|       |
  450|    340|  entry.src_type = src_type;
  451|    340|  entry.dest_type = dest_type;
  452|       |
  453|       |#if 0 /* let transform function replacement be a valid operation */
  454|       |  if (g_bsearch_array_lookup (transform_array, &transform_bconfig, &entry))
  455|       |    g_warning ("reregistering value transformation function (%p) for '%s' to '%s'",
  456|       |	       transform_func,
  457|       |	       g_type_name (src_type),
  458|       |	       g_type_name (dest_type));
  459|       |#endif
  460|       |
  461|    340|  entry.func = transform_func;
  462|    340|  transform_array = g_bsearch_array_replace (transform_array, &transform_bconfig, &entry);
  463|    340|}
g_value_type_compatible:
  501|  2.68k|{
  502|  2.68k|  g_return_val_if_fail (src_type, FALSE);
  ------------------
  |  |  663|  2.68k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.68k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.68k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.68k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.68k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.68k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.68k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.68k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.68k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.68k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.68k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.68k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.68k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.68k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.68k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.68k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.68k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.68k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.68k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.68k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.68k|      { } \
  |  |  666|  2.68k|    else \
  |  |  667|  2.68k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.68k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.68k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.68k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  503|  2.68k|  g_return_val_if_fail (dest_type, FALSE);
  ------------------
  |  |  663|  2.68k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.68k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.68k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.68k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.68k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.68k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.68k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.68k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.68k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.68k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.68k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.68k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.68k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.68k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.68k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  2.68k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.68k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.68k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.68k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.68k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.68k|      { } \
  |  |  666|  2.68k|    else \
  |  |  667|  2.68k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.68k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.68k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.68k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  504|       |
  505|       |  /* Fast path */
  506|  2.68k|  if (src_type == dest_type)
  ------------------
  |  Branch (506:7): [True: 2.68k, False: 0]
  ------------------
  507|  2.68k|    return TRUE;
  ------------------
  |  |  929|  2.68k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  2.68k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  508|       |
  509|      0|  return (g_type_is_a (src_type, dest_type) &&
  ------------------
  |  |  760|      0|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  ------------------
  |  |  |  Branch (760:27): [True: 0, False: 0]
  |  |  |  Branch (760:41): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  510|      0|	  g_type_value_table_peek (dest_type) == g_type_value_table_peek (src_type));
  ------------------
  |  Branch (510:4): [True: 0, False: 0]
  ------------------
  511|  2.68k|}
g_value_transform:
  532|    896|{
  533|    896|  GType dest_type;
  534|       |
  535|    896|  g_return_val_if_fail (src_value, FALSE);
  ------------------
  |  |  663|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    896|      { } \
  |  |  666|    896|    else \
  |  |  667|    896|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  536|    896|  g_return_val_if_fail (dest_value, FALSE);
  ------------------
  |  |  663|    896|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    896|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    896|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    896|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    896|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    896| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    896|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    896|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    896|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 896, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    896|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    896|   else                                         \
  |  |  |  |  |  |  |  | 1240|    896|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    896|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    896|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    896|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    896|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 896, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    896|      { } \
  |  |  666|    896|    else \
  |  |  667|    896|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    896|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    896|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 896]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  537|       |
  538|    896|  dest_type = G_VALUE_TYPE (dest_value);
  ------------------
  |  |   62|    896|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  539|    896|  if (g_value_type_compatible (G_VALUE_TYPE (src_value), dest_type))
  ------------------
  |  |   62|    896|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (539:7): [True: 896, False: 0]
  ------------------
  540|    896|    {
  541|    896|      g_value_copy (src_value, dest_value);
  542|       |      
  543|    896|      return TRUE;
  ------------------
  |  |  929|    896|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    896|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  544|    896|    }
  545|      0|  else
  546|      0|    {
  547|      0|      GValueTransform transform = transform_func_lookup (G_VALUE_TYPE (src_value), dest_type);
  ------------------
  |  |   62|      0|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  548|       |
  549|      0|      if (transform)
  ------------------
  |  Branch (549:11): [True: 0, False: 0]
  ------------------
  550|      0|	{
  551|      0|	  g_value_unset (dest_value);
  552|       |	  
  553|       |	  /* setup and transform */
  554|      0|	  value_meminit (dest_value, dest_type);
  555|      0|	  transform (src_value, dest_value);
  556|       |	  
  557|      0|	  return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  558|      0|	}
  559|      0|    }
  560|      0|  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  561|    896|}
gvalue.c:transform_entries_cmp:
  415|  4.02k|{
  416|  4.02k|  const TransformEntry *e1 = bsearch_node1;
  417|  4.02k|  const TransformEntry *e2 = bsearch_node2;
  418|  4.02k|  gint cmp = G_BSEARCH_ARRAY_CMP (e1->src_type, e2->src_type);
  ------------------
  |  |   34|  4.02k|#define G_BSEARCH_ARRAY_CMP(v1,v2) ((v1) > (v2) ? +1 : (v1) == (v2) ? 0 : -1)
  |  |  ------------------
  |  |  |  Branch (34:37): [True: 1.78k, False: 2.24k]
  |  |  |  Branch (34:56): [True: 1.32k, False: 924]
  |  |  ------------------
  ------------------
  419|       |
  420|  4.02k|  if (cmp)
  ------------------
  |  Branch (420:7): [True: 2.70k, False: 1.32k]
  ------------------
  421|  2.70k|    return cmp;
  422|  1.32k|  else
  423|  1.32k|    return G_BSEARCH_ARRAY_CMP (e1->dest_type, e2->dest_type);
  ------------------
  |  |   34|  1.32k|#define G_BSEARCH_ARRAY_CMP(v1,v2) ((v1) > (v2) ? +1 : (v1) == (v2) ? 0 : -1)
  |  |  ------------------
  |  |  |  Branch (34:37): [True: 1.32k, False: 0]
  |  |  |  Branch (34:56): [True: 0, False: 0]
  |  |  ------------------
  ------------------
  424|  4.02k|}
gvalue.c:value_meminit:
   66|  1.79k|{
   67|  1.79k|  value->g_type = value_type;
   68|  1.79k|  memset (value->data, 0, sizeof (value->data));
   69|  1.79k|}

_g_value_transforms_init:
  238|      2|{
  239|       |  /* some transformations are a bit questionable,
  240|       |   * we currently skip those
  241|       |   */
  242|      2|#define SKIP____register_transform_func(type1,type2,transform_func)     /* skip questionable transforms */ \
  243|      2|  (void)0
  244|       |  
  245|       |  /* numeric types (plus to string) */
  246|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_CHAR,            value_transform_int_int);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_CHAR,            value_transform_int_int);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_CHAR,            value_transform_int_int);
  ------------------
  |  |   37|      2|#define value_transform_int_int         value_transform_memcpy_data0
  ------------------
  247|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UCHAR,           value_transform_int_u8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UCHAR,           value_transform_int_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  248|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_BOOLEAN,         value_transform_int_bool);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_BOOLEAN,         value_transform_int_bool);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  249|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |   37|      2|#define value_transform_int_int         value_transform_memcpy_data0
  ------------------
  250|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT,            value_transform_int_uint);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT,            value_transform_int_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  251|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_LONG,            value_transform_int_long);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_LONG,            value_transform_int_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  252|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ULONG,           value_transform_int_ulong);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ULONG,           value_transform_int_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  253|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT64,           value_transform_int_int64);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT64,           value_transform_int_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  254|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT64,          value_transform_int_uint64);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT64,          value_transform_int_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  255|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ENUM,            value_transform_int_long);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ENUM,            value_transform_int_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  256|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLAGS,           value_transform_int_ulong);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLAGS,           value_transform_int_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  257|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLOAT,           value_transform_int_float);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLOAT,           value_transform_int_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  258|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_DOUBLE,          value_transform_int_double);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_DOUBLE,          value_transform_int_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  259|      2|  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_STRING,          value_transform_int_string);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_STRING,          value_transform_int_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  260|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_CHAR,            value_transform_uint_s8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_CHAR,            value_transform_uint_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  261|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UCHAR,           value_transform_uint_uint);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UCHAR,           value_transform_uint_uint);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UCHAR,           value_transform_uint_uint);
  ------------------
  |  |   38|      2|#define value_transform_uint_uint       value_transform_memcpy_data0
  ------------------
  262|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_BOOLEAN,         value_transform_uint_bool);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_BOOLEAN,         value_transform_uint_bool);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  263|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT,             value_transform_uint_int);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT,             value_transform_uint_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT,            value_transform_uint_uint);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT,            value_transform_uint_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT,            value_transform_uint_uint);
  ------------------
  |  |   38|      2|#define value_transform_uint_uint       value_transform_memcpy_data0
  ------------------
  265|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_LONG,            value_transform_uint_long);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_LONG,            value_transform_uint_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  266|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ULONG,           value_transform_uint_ulong);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ULONG,           value_transform_uint_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  267|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT64,           value_transform_uint_int64);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT64,           value_transform_uint_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  268|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT64,          value_transform_uint_uint64);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT64,          value_transform_uint_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  269|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ENUM,            value_transform_uint_long);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ENUM,            value_transform_uint_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  270|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLAGS,           value_transform_uint_ulong);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLAGS,           value_transform_uint_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  271|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLOAT,           value_transform_uint_float);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLOAT,           value_transform_uint_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  272|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_DOUBLE,          value_transform_uint_double);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_DOUBLE,          value_transform_uint_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  273|      2|  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_STRING,          value_transform_uint_string);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_STRING,          value_transform_uint_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  274|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_CHAR,            value_transform_int_s8);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_CHAR,            value_transform_int_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  275|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UCHAR,           value_transform_int_u8);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UCHAR,           value_transform_int_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  276|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_BOOLEAN,         value_transform_int_int);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_BOOLEAN,         value_transform_int_int);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_BOOLEAN,         value_transform_int_int);
  ------------------
  |  |   37|      2|#define value_transform_int_int         value_transform_memcpy_data0
  ------------------
  277|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |   37|      2|#define value_transform_int_int         value_transform_memcpy_data0
  ------------------
  278|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT,            value_transform_int_uint);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT,            value_transform_int_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  279|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_LONG,            value_transform_int_long);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_LONG,            value_transform_int_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  280|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ULONG,           value_transform_int_ulong);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ULONG,           value_transform_int_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  281|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT64,           value_transform_int_int64);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT64,           value_transform_int_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  282|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT64,          value_transform_int_uint64);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT64,          value_transform_int_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  283|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ENUM,            value_transform_int_long);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ENUM,            value_transform_int_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  284|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_FLAGS,           value_transform_int_ulong);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_FLAGS,           value_transform_int_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  285|      2|  SKIP____register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_FLOAT,           value_transform_int_float);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  286|      2|  SKIP____register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_DOUBLE,          value_transform_int_double);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  287|      2|  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_STRING,          value_transform_bool_string);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_STRING,          value_transform_bool_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  288|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_CHAR,            value_transform_int_s8);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_CHAR,            value_transform_int_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  289|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UCHAR,           value_transform_int_u8);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UCHAR,           value_transform_int_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  290|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_BOOLEAN,         value_transform_int_bool);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_BOOLEAN,         value_transform_int_bool);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  291|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT,             value_transform_int_int);
  ------------------
  |  |   37|      2|#define value_transform_int_int         value_transform_memcpy_data0
  ------------------
  292|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UINT,            value_transform_int_uint);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UINT,            value_transform_int_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  293|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_LONG,            value_transform_int_long);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_LONG,            value_transform_int_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  294|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_ULONG,           value_transform_int_ulong);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_ULONG,           value_transform_int_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  295|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT64,           value_transform_int_int64);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_INT64,           value_transform_int_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  296|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UINT64,          value_transform_int_uint64);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UINT64,          value_transform_int_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  297|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_ENUM,            value_transform_int_long);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_ENUM,            value_transform_int_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  298|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_FLAGS,           value_transform_int_ulong);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_FLAGS,           value_transform_int_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  299|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_FLOAT,           value_transform_int_float);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_FLOAT,           value_transform_int_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  300|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_DOUBLE,          value_transform_int_double);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_DOUBLE,          value_transform_int_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  301|      2|  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_STRING,          value_transform_int_string);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT,          G_TYPE_STRING,          value_transform_int_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  302|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_CHAR,            value_transform_uint_s8);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_CHAR,            value_transform_uint_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  303|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UCHAR,           value_transform_uint_u8);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UCHAR,           value_transform_uint_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  304|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_BOOLEAN,         value_transform_uint_bool);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_BOOLEAN,         value_transform_uint_bool);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  305|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_INT,             value_transform_uint_int);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_INT,             value_transform_uint_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  306|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT,            value_transform_uint_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT,            value_transform_uint_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT,            value_transform_uint_uint);
  ------------------
  |  |   38|      2|#define value_transform_uint_uint       value_transform_memcpy_data0
  ------------------
  307|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_LONG,            value_transform_uint_long);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_LONG,            value_transform_uint_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  308|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_ULONG,           value_transform_uint_ulong);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_ULONG,           value_transform_uint_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  309|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_INT64,           value_transform_uint_int64);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_INT64,           value_transform_uint_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  310|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT64,          value_transform_uint_uint64);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_UINT64,          value_transform_uint_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  311|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_ENUM,            value_transform_uint_long);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_ENUM,            value_transform_uint_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  312|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_FLAGS,           value_transform_uint_ulong);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_FLAGS,           value_transform_uint_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  313|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_FLOAT,           value_transform_uint_float);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_FLOAT,           value_transform_uint_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  314|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_DOUBLE,          value_transform_uint_double);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_DOUBLE,          value_transform_uint_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  315|      2|  g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_STRING,          value_transform_uint_string);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT,         G_TYPE_STRING,          value_transform_uint_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_CHAR,            value_transform_long_s8);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_CHAR,            value_transform_long_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  317|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UCHAR,           value_transform_long_u8);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UCHAR,           value_transform_long_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  318|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_BOOLEAN,         value_transform_long_bool);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_BOOLEAN,         value_transform_long_bool);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  319|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_INT,             value_transform_long_int);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_INT,             value_transform_long_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  320|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UINT,            value_transform_long_uint);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UINT,            value_transform_long_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  321|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_LONG,            value_transform_long_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_LONG,            value_transform_long_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_LONG,            value_transform_long_long);
  ------------------
  |  |   39|      2|#define value_transform_long_long       value_transform_memcpy_data0
  ------------------
  322|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ULONG,           value_transform_long_ulong);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ULONG,           value_transform_long_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  323|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_INT64,           value_transform_long_int64);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_INT64,           value_transform_long_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  324|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UINT64,          value_transform_long_uint64);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_UINT64,          value_transform_long_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  325|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ENUM,            value_transform_long_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ENUM,            value_transform_long_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_ENUM,            value_transform_long_long);
  ------------------
  |  |   39|      2|#define value_transform_long_long       value_transform_memcpy_data0
  ------------------
  326|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_FLAGS,           value_transform_long_ulong);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_FLAGS,           value_transform_long_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  327|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_FLOAT,           value_transform_long_float);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_FLOAT,           value_transform_long_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_DOUBLE,          value_transform_long_double);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_DOUBLE,          value_transform_long_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  329|      2|  g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_STRING,          value_transform_long_string);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_LONG,         G_TYPE_STRING,          value_transform_long_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  330|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_CHAR,            value_transform_ulong_s8);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_CHAR,            value_transform_ulong_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  331|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UCHAR,           value_transform_ulong_u8);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UCHAR,           value_transform_ulong_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  332|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_BOOLEAN,         value_transform_ulong_bool);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_BOOLEAN,         value_transform_ulong_bool);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  333|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_INT,             value_transform_ulong_int);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_INT,             value_transform_ulong_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  334|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UINT,            value_transform_ulong_uint);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UINT,            value_transform_ulong_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  335|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_LONG,            value_transform_ulong_long);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_LONG,            value_transform_ulong_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  336|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ULONG,           value_transform_ulong_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ULONG,           value_transform_ulong_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ULONG,           value_transform_ulong_ulong);
  ------------------
  |  |   40|      2|#define value_transform_ulong_ulong     value_transform_memcpy_data0
  ------------------
  337|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_INT64,           value_transform_ulong_int64);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_INT64,           value_transform_ulong_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  338|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UINT64,          value_transform_ulong_uint64);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_UINT64,          value_transform_ulong_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ENUM,            value_transform_ulong_long);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_ENUM,            value_transform_ulong_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  340|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
  ------------------
  |  |   40|      2|#define value_transform_ulong_ulong     value_transform_memcpy_data0
  ------------------
  341|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLOAT,           value_transform_ulong_float);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_FLOAT,           value_transform_ulong_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  342|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_DOUBLE,          value_transform_ulong_double);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_DOUBLE,          value_transform_ulong_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  343|      2|  g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_STRING,          value_transform_ulong_string);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ULONG,        G_TYPE_STRING,          value_transform_ulong_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  344|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_CHAR,            value_transform_int64_s8);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_CHAR,            value_transform_int64_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  345|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UCHAR,           value_transform_int64_u8);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UCHAR,           value_transform_int64_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  346|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_BOOLEAN,         value_transform_int64_bool);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_BOOLEAN,         value_transform_int64_bool);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  347|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT,             value_transform_int64_int);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT,             value_transform_int64_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  348|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UINT,            value_transform_int64_uint);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UINT,            value_transform_int64_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  349|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_LONG,            value_transform_int64_long);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_LONG,            value_transform_int64_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  350|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_ULONG,           value_transform_int64_ulong);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_ULONG,           value_transform_int64_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  351|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT64,           value_transform_int64_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT64,           value_transform_int64_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_INT64,           value_transform_int64_int64);
  ------------------
  |  |   41|      2|#define value_transform_int64_int64     value_transform_memcpy_data0
  ------------------
  352|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UINT64,          value_transform_int64_uint64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_UINT64,          value_transform_int64_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  353|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_ENUM,            value_transform_int64_long);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_ENUM,            value_transform_int64_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  354|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_FLAGS,           value_transform_int64_ulong);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_FLAGS,           value_transform_int64_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  355|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_FLOAT,           value_transform_int64_float);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_FLOAT,           value_transform_int64_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  356|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_DOUBLE,          value_transform_int64_double);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_DOUBLE,          value_transform_int64_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  357|      2|  g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_STRING,          value_transform_int64_string);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_INT64,        G_TYPE_STRING,          value_transform_int64_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  358|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_CHAR,            value_transform_uint64_s8);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_CHAR,            value_transform_uint64_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  359|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UCHAR,           value_transform_uint64_u8);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UCHAR,           value_transform_uint64_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  360|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_BOOLEAN,         value_transform_uint64_bool);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_BOOLEAN,         value_transform_uint64_bool);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  361|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_INT,             value_transform_uint64_int);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_INT,             value_transform_uint64_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  362|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT,            value_transform_uint64_uint);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT,            value_transform_uint64_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  363|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_LONG,            value_transform_uint64_long);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_LONG,            value_transform_uint64_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  364|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_ULONG,           value_transform_uint64_ulong);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_ULONG,           value_transform_uint64_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  365|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_INT64,           value_transform_uint64_int64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_INT64,           value_transform_uint64_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  366|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT64,          value_transform_uint64_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT64,          value_transform_uint64_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_UINT64,          value_transform_uint64_uint64);
  ------------------
  |  |   42|      2|#define value_transform_uint64_uint64   value_transform_memcpy_data0
  ------------------
  367|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_ENUM,            value_transform_uint64_long);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_ENUM,            value_transform_uint64_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_FLAGS,           value_transform_uint64_ulong);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_FLAGS,           value_transform_uint64_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  369|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_FLOAT,           value_transform_uint64_float);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_FLOAT,           value_transform_uint64_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  370|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_DOUBLE,          value_transform_uint64_double);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_DOUBLE,          value_transform_uint64_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  371|      2|  g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_STRING,          value_transform_uint64_string);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_UINT64,       G_TYPE_STRING,          value_transform_uint64_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  372|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_CHAR,            value_transform_long_s8);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_CHAR,            value_transform_long_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  373|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UCHAR,           value_transform_long_u8);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UCHAR,           value_transform_long_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  374|      2|  SKIP____register_transform_func (G_TYPE_ENUM,         G_TYPE_BOOLEAN,         value_transform_long_bool);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  375|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_INT,             value_transform_long_int);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_INT,             value_transform_long_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  376|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UINT,            value_transform_long_uint);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UINT,            value_transform_long_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  377|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_LONG,            value_transform_long_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_LONG,            value_transform_long_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_LONG,            value_transform_long_long);
  ------------------
  |  |   39|      2|#define value_transform_long_long       value_transform_memcpy_data0
  ------------------
  378|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ULONG,           value_transform_long_ulong);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ULONG,           value_transform_long_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  379|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_INT64,           value_transform_long_int64);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_INT64,           value_transform_long_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  380|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UINT64,          value_transform_long_uint64);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_UINT64,          value_transform_long_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  381|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ENUM,            value_transform_long_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ENUM,            value_transform_long_long);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_ENUM,            value_transform_long_long);
  ------------------
  |  |   39|      2|#define value_transform_long_long       value_transform_memcpy_data0
  ------------------
  382|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_FLAGS,           value_transform_long_ulong);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_FLAGS,           value_transform_long_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  383|      2|  SKIP____register_transform_func (G_TYPE_ENUM,         G_TYPE_FLOAT,           value_transform_long_float);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  384|      2|  SKIP____register_transform_func (G_TYPE_ENUM,         G_TYPE_DOUBLE,          value_transform_long_double);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  385|      2|  g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_STRING,          value_transform_enum_string);
  ------------------
  |  |  141|      2|#define G_TYPE_ENUM			G_TYPE_MAKE_FUNDAMENTAL (12)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_ENUM,         G_TYPE_STRING,          value_transform_enum_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  386|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_CHAR,            value_transform_ulong_s8);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_CHAR,            value_transform_ulong_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  387|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UCHAR,           value_transform_ulong_u8);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UCHAR,           value_transform_ulong_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  388|      2|  SKIP____register_transform_func (G_TYPE_FLAGS,        G_TYPE_BOOLEAN,         value_transform_ulong_bool);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  389|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_INT,             value_transform_ulong_int);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_INT,             value_transform_ulong_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  390|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UINT,            value_transform_ulong_uint);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UINT,            value_transform_ulong_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  391|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_LONG,            value_transform_ulong_long);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_LONG,            value_transform_ulong_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  392|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_ULONG,           value_transform_ulong_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_ULONG,           value_transform_ulong_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_ULONG,           value_transform_ulong_ulong);
  ------------------
  |  |   40|      2|#define value_transform_ulong_ulong     value_transform_memcpy_data0
  ------------------
  393|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_INT64,           value_transform_ulong_int64);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_INT64,           value_transform_ulong_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  394|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UINT64,          value_transform_ulong_uint64);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_UINT64,          value_transform_ulong_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  395|      2|  SKIP____register_transform_func (G_TYPE_FLAGS,        G_TYPE_ENUM,            value_transform_ulong_long);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  396|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_FLAGS,           value_transform_ulong_ulong);
  ------------------
  |  |   40|      2|#define value_transform_ulong_ulong     value_transform_memcpy_data0
  ------------------
  397|      2|  SKIP____register_transform_func (G_TYPE_FLAGS,        G_TYPE_FLOAT,           value_transform_ulong_float);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  398|      2|  SKIP____register_transform_func (G_TYPE_FLAGS,        G_TYPE_DOUBLE,          value_transform_ulong_double);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  399|      2|  g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_STRING,          value_transform_flags_string);
  ------------------
  |  |  147|      2|#define G_TYPE_FLAGS			G_TYPE_MAKE_FUNDAMENTAL (13)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLAGS,        G_TYPE_STRING,          value_transform_flags_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  400|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_CHAR,            value_transform_float_s8);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_CHAR,            value_transform_float_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  401|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UCHAR,           value_transform_float_u8);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UCHAR,           value_transform_float_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  402|      2|  SKIP____register_transform_func (G_TYPE_FLOAT,        G_TYPE_BOOLEAN,         value_transform_float_bool);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  403|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_INT,             value_transform_float_int);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_INT,             value_transform_float_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  404|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UINT,            value_transform_float_uint);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UINT,            value_transform_float_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  405|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_LONG,            value_transform_float_long);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_LONG,            value_transform_float_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  406|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_ULONG,           value_transform_float_ulong);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_ULONG,           value_transform_float_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  407|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_INT64,           value_transform_float_int64);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_INT64,           value_transform_float_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  408|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UINT64,          value_transform_float_uint64);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_UINT64,          value_transform_float_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  409|      2|  SKIP____register_transform_func (G_TYPE_FLOAT,        G_TYPE_ENUM,            value_transform_float_long);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  410|      2|  SKIP____register_transform_func (G_TYPE_FLOAT,        G_TYPE_FLAGS,           value_transform_float_ulong);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  411|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_FLOAT,           value_transform_float_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_FLOAT,           value_transform_float_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_FLOAT,           value_transform_float_float);
  ------------------
  |  |   43|      2|#define value_transform_float_float     value_transform_memcpy_data0
  ------------------
  412|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_DOUBLE,          value_transform_float_double);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_DOUBLE,          value_transform_float_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  413|      2|  g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_STRING,          value_transform_float_string);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_FLOAT,        G_TYPE_STRING,          value_transform_float_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  414|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_CHAR,            value_transform_double_s8);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_CHAR,            value_transform_double_s8);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  415|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UCHAR,           value_transform_double_u8);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UCHAR,           value_transform_double_u8);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  416|      2|  SKIP____register_transform_func (G_TYPE_DOUBLE,       G_TYPE_BOOLEAN,         value_transform_double_bool);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  417|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_INT,             value_transform_double_int);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_INT,             value_transform_double_int);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  418|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UINT,            value_transform_double_uint);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UINT,            value_transform_double_uint);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  419|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_LONG,            value_transform_double_long);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_LONG,            value_transform_double_long);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  420|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_ULONG,           value_transform_double_ulong);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_ULONG,           value_transform_double_ulong);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  421|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_INT64,           value_transform_double_int64);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_INT64,           value_transform_double_int64);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  422|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UINT64,          value_transform_double_uint64);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_UINT64,          value_transform_double_uint64);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  423|      2|  SKIP____register_transform_func (G_TYPE_DOUBLE,       G_TYPE_ENUM,            value_transform_double_long);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  424|      2|  SKIP____register_transform_func (G_TYPE_DOUBLE,       G_TYPE_FLAGS,           value_transform_double_ulong);
  ------------------
  |  |  243|      2|  (void)0
  ------------------
  425|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_FLOAT,           value_transform_double_float);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_FLOAT,           value_transform_double_float);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  426|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_DOUBLE,          value_transform_double_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_DOUBLE,          value_transform_double_double);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_DOUBLE,          value_transform_double_double);
  ------------------
  |  |   44|      2|#define value_transform_double_double   value_transform_memcpy_data0
  ------------------
  427|      2|  g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_STRING,          value_transform_double_string);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_DOUBLE,       G_TYPE_STRING,          value_transform_double_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  428|       |  /* string types */
  429|      2|  g_value_register_transform_func (G_TYPE_STRING,       G_TYPE_STRING,          value_transform_string_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                g_value_register_transform_func (G_TYPE_STRING,       G_TYPE_STRING,          value_transform_string_string);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  430|      2|}

_g_value_types_init:
  421|      2|{
  422|      2|  GTypeInfo info = {
  423|      2|    0,				/* class_size */
  424|      2|    NULL,			/* base_init */
  425|      2|    NULL,			/* base_destroy */
  426|      2|    NULL,			/* class_init */
  427|      2|    NULL,			/* class_destroy */
  428|      2|    NULL,			/* class_data */
  429|      2|    0,				/* instance_size */
  430|      2|    0,				/* n_preallocs */
  431|      2|    NULL,			/* instance_init */
  432|      2|    NULL,			/* value_table */
  433|      2|  };
  434|      2|  const GTypeFundamentalInfo finfo = { G_TYPE_FLAG_DERIVABLE, };
  435|      2|  GType type G_GNUC_UNUSED  /* when compiling with G_DISABLE_ASSERT */;
  436|       |  
  437|       |  /* G_TYPE_CHAR / G_TYPE_UCHAR
  438|       |   */
  439|      2|  {
  440|      2|    static const GTypeValueTable value_table = {
  441|      2|      value_init_long0,		/* value_init */
  442|      2|      NULL,			/* value_free */
  443|      2|      value_copy_long0,		/* value_copy */
  444|      2|      NULL,			/* value_peek_pointer */
  445|      2|      "i",			/* collect_format */
  446|      2|      value_collect_int,	/* collect_value */
  447|      2|      "p",			/* lcopy_format */
  448|      2|      value_lcopy_char,		/* lcopy_value */
  449|      2|    };
  450|      2|    info.value_table = &value_table;
  451|      2|    type = g_type_register_fundamental (G_TYPE_CHAR, g_intern_static_string ("gchar"), &info, &finfo, 0);
  ------------------
  |  |   87|      2|#define G_TYPE_CHAR			G_TYPE_MAKE_FUNDAMENTAL (3)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  452|      2|    g_assert (type == G_TYPE_CHAR);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  453|      2|    type = g_type_register_fundamental (G_TYPE_UCHAR, g_intern_static_string ("guchar"), &info, &finfo, 0);
  ------------------
  |  |   93|      2|#define G_TYPE_UCHAR			G_TYPE_MAKE_FUNDAMENTAL (4)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  454|      2|    g_assert (type == G_TYPE_UCHAR);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  455|      2|  }
  456|       |
  457|       |  /* G_TYPE_BOOLEAN
  458|       |   */
  459|      2|  {
  460|      2|    static const GTypeValueTable value_table = {
  461|      2|      value_init_long0,		 /* value_init */
  462|      2|      NULL,			 /* value_free */
  463|      2|      value_copy_long0,		 /* value_copy */
  464|      2|      NULL,                      /* value_peek_pointer */
  465|      2|      "i",			 /* collect_format */
  466|      2|      value_collect_int,	 /* collect_value */
  467|      2|      "p",			 /* lcopy_format */
  468|      2|      value_lcopy_boolean,	 /* lcopy_value */
  469|      2|    };
  470|      2|    info.value_table = &value_table;
  471|      2|    type = g_type_register_fundamental (G_TYPE_BOOLEAN, g_intern_static_string ("gboolean"), &info, &finfo, 0);
  ------------------
  |  |   99|      2|#define G_TYPE_BOOLEAN			G_TYPE_MAKE_FUNDAMENTAL (5)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  472|      2|    g_assert (type == G_TYPE_BOOLEAN);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  473|      2|  }
  474|       |  
  475|       |  /* G_TYPE_INT / G_TYPE_UINT
  476|       |   */
  477|      2|  {
  478|      2|    static const GTypeValueTable value_table = {
  479|      2|      value_init_long0,		/* value_init */
  480|      2|      NULL,			/* value_free */
  481|      2|      value_copy_long0,		/* value_copy */
  482|      2|      NULL,                     /* value_peek_pointer */
  483|      2|      "i",			/* collect_format */
  484|      2|      value_collect_int,	/* collect_value */
  485|      2|      "p",			/* lcopy_format */
  486|      2|      value_lcopy_int,		/* lcopy_value */
  487|      2|    };
  488|      2|    info.value_table = &value_table;
  489|      2|    type = g_type_register_fundamental (G_TYPE_INT, g_intern_static_string ("gint"), &info, &finfo, 0);
  ------------------
  |  |  105|      2|#define G_TYPE_INT			G_TYPE_MAKE_FUNDAMENTAL (6)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  490|      2|    g_assert (type == G_TYPE_INT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  491|      2|    type = g_type_register_fundamental (G_TYPE_UINT, g_intern_static_string ("guint"), &info, &finfo, 0);
  ------------------
  |  |  111|      2|#define G_TYPE_UINT			G_TYPE_MAKE_FUNDAMENTAL (7)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  492|      2|    g_assert (type == G_TYPE_UINT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  493|      2|  }
  494|       |
  495|       |  /* G_TYPE_LONG / G_TYPE_ULONG
  496|       |   */
  497|      2|  {
  498|      2|    static const GTypeValueTable value_table = {
  499|      2|      value_init_long0,		/* value_init */
  500|      2|      NULL,			/* value_free */
  501|      2|      value_copy_long0,		/* value_copy */
  502|      2|      NULL,                     /* value_peek_pointer */
  503|      2|      "l",			/* collect_format */
  504|      2|      value_collect_long,	/* collect_value */
  505|      2|      "p",			/* lcopy_format */
  506|      2|      value_lcopy_long,		/* lcopy_value */
  507|      2|    };
  508|      2|    info.value_table = &value_table;
  509|      2|    type = g_type_register_fundamental (G_TYPE_LONG, g_intern_static_string ("glong"), &info, &finfo, 0);
  ------------------
  |  |  117|      2|#define G_TYPE_LONG			G_TYPE_MAKE_FUNDAMENTAL (8)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  510|      2|    g_assert (type == G_TYPE_LONG);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  511|      2|    type = g_type_register_fundamental (G_TYPE_ULONG, g_intern_static_string ("gulong"), &info, &finfo, 0);
  ------------------
  |  |  123|      2|#define G_TYPE_ULONG			G_TYPE_MAKE_FUNDAMENTAL (9)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  512|      2|    g_assert (type == G_TYPE_ULONG);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  513|      2|  }
  514|       |  
  515|       |  /* G_TYPE_INT64 / G_TYPE_UINT64
  516|       |   */
  517|      2|  {
  518|      2|    static const GTypeValueTable value_table = {
  519|      2|      value_init_int64,		/* value_init */
  520|      2|      NULL,			/* value_free */
  521|      2|      value_copy_int64,		/* value_copy */
  522|      2|      NULL,                     /* value_peek_pointer */
  523|      2|      "q",			/* collect_format */
  524|      2|      value_collect_int64,	/* collect_value */
  525|      2|      "p",			/* lcopy_format */
  526|      2|      value_lcopy_int64,	/* lcopy_value */
  527|      2|    };
  528|      2|    info.value_table = &value_table;
  529|      2|    type = g_type_register_fundamental (G_TYPE_INT64, g_intern_static_string ("gint64"), &info, &finfo, 0);
  ------------------
  |  |  129|      2|#define G_TYPE_INT64			G_TYPE_MAKE_FUNDAMENTAL (10)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  530|      2|    g_assert (type == G_TYPE_INT64);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  531|      2|    type = g_type_register_fundamental (G_TYPE_UINT64, g_intern_static_string ("guint64"), &info, &finfo, 0);
  ------------------
  |  |  135|      2|#define G_TYPE_UINT64			G_TYPE_MAKE_FUNDAMENTAL (11)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  532|      2|    g_assert (type == G_TYPE_UINT64);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  533|      2|  }
  534|       |  
  535|       |  /* G_TYPE_FLOAT
  536|       |   */
  537|      2|  {
  538|      2|    static const GTypeValueTable value_table = {
  539|      2|      value_init_float,		 /* value_init */
  540|      2|      NULL,			 /* value_free */
  541|      2|      value_copy_float,		 /* value_copy */
  542|      2|      NULL,                      /* value_peek_pointer */
  543|      2|      "d",			 /* collect_format */
  544|      2|      value_collect_float,	 /* collect_value */
  545|      2|      "p",			 /* lcopy_format */
  546|      2|      value_lcopy_float,	 /* lcopy_value */
  547|      2|    };
  548|      2|    info.value_table = &value_table;
  549|      2|    type = g_type_register_fundamental (G_TYPE_FLOAT, g_intern_static_string ("gfloat"), &info, &finfo, 0);
  ------------------
  |  |  153|      2|#define G_TYPE_FLOAT			G_TYPE_MAKE_FUNDAMENTAL (14)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  550|      2|    g_assert (type == G_TYPE_FLOAT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  551|      2|  }
  552|       |  
  553|       |  /* G_TYPE_DOUBLE
  554|       |   */
  555|      2|  {
  556|      2|    static const GTypeValueTable value_table = {
  557|      2|      value_init_double,	/* value_init */
  558|      2|      NULL,			/* value_free */
  559|      2|      value_copy_double,	/* value_copy */
  560|      2|      NULL,                     /* value_peek_pointer */
  561|      2|      "d",			/* collect_format */
  562|      2|      value_collect_double,	/* collect_value */
  563|      2|      "p",			/* lcopy_format */
  564|      2|      value_lcopy_double,	/* lcopy_value */
  565|      2|    };
  566|      2|    info.value_table = &value_table;
  567|      2|    type = g_type_register_fundamental (G_TYPE_DOUBLE, g_intern_static_string ("gdouble"), &info, &finfo, 0);
  ------------------
  |  |  159|      2|#define G_TYPE_DOUBLE			G_TYPE_MAKE_FUNDAMENTAL (15)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  568|      2|    g_assert (type == G_TYPE_DOUBLE);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  569|      2|  }
  570|       |
  571|       |  /* G_TYPE_STRING
  572|       |   */
  573|      2|  {
  574|      2|    static const GTypeValueTable value_table = {
  575|      2|      value_init_string,	/* value_init */
  576|      2|      value_free_string,	/* value_free */
  577|      2|      value_copy_string,	/* value_copy */
  578|      2|      value_peek_pointer0,	/* value_peek_pointer */
  579|      2|      "p",			/* collect_format */
  580|      2|      value_collect_string,	/* collect_value */
  581|      2|      "p",			/* lcopy_format */
  582|      2|      value_lcopy_string,	/* lcopy_value */
  583|      2|    };
  584|      2|    info.value_table = &value_table;
  585|      2|    type = g_type_register_fundamental (G_TYPE_STRING, g_intern_static_string ("gchararray"), &info, &finfo, 0);
  ------------------
  |  |  165|      2|#define G_TYPE_STRING			G_TYPE_MAKE_FUNDAMENTAL (16)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  586|      2|    g_assert (type == G_TYPE_STRING);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  587|      2|  }
  588|       |
  589|       |  /* G_TYPE_POINTER
  590|       |   */
  591|      2|  {
  592|      2|    static const GTypeValueTable value_table = {
  593|      2|      value_init_pointer,	/* value_init */
  594|      2|      NULL,			/* value_free */
  595|      2|      value_copy_pointer,	/* value_copy */
  596|      2|      value_peek_pointer0,	/* value_peek_pointer */
  597|      2|      "p",			/* collect_format */
  598|      2|      value_collect_pointer,	/* collect_value */
  599|      2|      "p",			/* lcopy_format */
  600|      2|      value_lcopy_pointer,	/* lcopy_value */
  601|      2|    };
  602|      2|    info.value_table = &value_table;
  603|      2|    type = g_type_register_fundamental (G_TYPE_POINTER, g_intern_static_string ("gpointer"), &info, &finfo, 0);
  ------------------
  |  |  171|      2|#define G_TYPE_POINTER			G_TYPE_MAKE_FUNDAMENTAL (17)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  604|      2|    g_assert (type == G_TYPE_POINTER);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  605|      2|  }
  606|       |
  607|       |  /* G_TYPE_VARIANT
  608|       |   */
  609|      2|  {
  610|      2|    static const GTypeValueTable value_table = {
  611|      2|      value_init_pointer,	/* value_init */
  612|      2|      value_free_variant,	/* value_free */
  613|      2|      value_copy_variant,	/* value_copy */
  614|      2|      value_peek_pointer0,	/* value_peek_pointer */
  615|      2|      "p",			/* collect_format */
  616|      2|      value_collect_variant,	/* collect_value */
  617|      2|      "p",			/* lcopy_format */
  618|      2|      value_lcopy_variant,	/* lcopy_value */
  619|      2|    };
  620|      2|    info.value_table = &value_table;
  621|      2|    type = g_type_register_fundamental (G_TYPE_VARIANT, g_intern_static_string ("GVariant"), &info, &finfo, 0);
  ------------------
  |  |  207|      2|#define	G_TYPE_VARIANT                  G_TYPE_MAKE_FUNDAMENTAL (21)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  622|      2|    g_assert (type == G_TYPE_VARIANT);
  ------------------
  |  |  275|      2|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      2|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      2|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      2|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  623|      2|  }
  624|      2|}
g_pointer_type_register_static:
 1483|      2|{
 1484|      2|  const GTypeInfo type_info = {
 1485|      2|    0,			/* class_size */
 1486|      2|    NULL,		/* base_init */
 1487|      2|    NULL,		/* base_finalize */
 1488|      2|    NULL,		/* class_init */
 1489|      2|    NULL,		/* class_finalize */
 1490|      2|    NULL,		/* class_data */
 1491|      2|    0,			/* instance_size */
 1492|      2|    0,			/* n_preallocs */
 1493|      2|    NULL,		/* instance_init */
 1494|       |    NULL		/* value_table */
 1495|      2|  };
 1496|      2|  GType type;
 1497|       |
 1498|      2|  g_return_val_if_fail (name != NULL, 0);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1499|      2|  g_return_val_if_fail (g_type_from_name (name) == 0, 0);
  ------------------
  |  |  663|      2|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      2|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      2|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      2|      { } \
  |  |  666|      2|    else \
  |  |  667|      2|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1500|       |
 1501|      2|  type = g_type_register_static (G_TYPE_POINTER, name, &type_info, 0);
  ------------------
  |  |  171|      2|#define G_TYPE_POINTER			G_TYPE_MAKE_FUNDAMENTAL (17)
  |  |  ------------------
  |  |  |  |  227|      2|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      2|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1502|       |
 1503|      2|  return type;
 1504|      2|}

fu_struct_dfu_ftr_unref:
   36|    621|{
   37|    621|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    621|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    621|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    621|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    621|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    621|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    621| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    621|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    621|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    621|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 621, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    621|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    621|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    621|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    621|   else                                         \
  |  |  |  |  |  |  |  | 1240|    621|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    621|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    621|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    621|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    621|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 621, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    621|      { } \
  |  |  653|    621|    else \
  |  |  654|    621|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    621|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    621|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 621]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   38|    621|    if (st->refcount == 0) {
  ------------------
  |  Branch (38:9): [True: 0, False: 621]
  ------------------
   39|      0|        g_critical("FuStructDfuFtr refcount already zero");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
   40|      0|        return;
   41|      0|    }
   42|    621|    if (--st->refcount > 0)
  ------------------
  |  Branch (42:9): [True: 0, False: 621]
  ------------------
   43|      0|        return;
   44|    621|    if (st->buf != NULL)
  ------------------
  |  Branch (44:9): [True: 621, False: 0]
  ------------------
   45|    621|        g_byte_array_unref(st->buf);
   46|    621|    g_free(st);
   47|    621|}
fu_struct_dfu_ftr_get_release:
   65|    456|{
   66|    456|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    456|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    456|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    456|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    456|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    456|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    456| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    456|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    456|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    456|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 456, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    456|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    456|   else                                         \
  |  |  |  |  |  |  |  | 1240|    456|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    456|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    456|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 456, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    456|      { } \
  |  |  666|    456|    else \
  |  |  667|    456|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    456|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    456|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 456]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   67|    456|    return fu_memread_uint16(st->buf->data + 0, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    456|#define G_LITTLE_ENDIAN 1234
  ------------------
   68|    456|}
fu_struct_dfu_ftr_get_pid:
   74|    456|{
   75|    456|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    456|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    456|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    456|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    456|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    456|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    456| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    456|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    456|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    456|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 456, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    456|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    456|   else                                         \
  |  |  |  |  |  |  |  | 1240|    456|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    456|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    456|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 456, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    456|      { } \
  |  |  666|    456|    else \
  |  |  667|    456|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    456|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    456|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 456]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   76|    456|    return fu_memread_uint16(st->buf->data + 2, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    456|#define G_LITTLE_ENDIAN 1234
  ------------------
   77|    456|}
fu_struct_dfu_ftr_get_vid:
   83|    456|{
   84|    456|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    456|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    456|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    456|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    456|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    456|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    456| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    456|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    456|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    456|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 456, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    456|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    456|   else                                         \
  |  |  |  |  |  |  |  | 1240|    456|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    456|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    456|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 456, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    456|      { } \
  |  |  666|    456|    else \
  |  |  667|    456|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    456|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    456|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 456]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   85|    456|    return fu_memread_uint16(st->buf->data + 4, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    456|#define G_LITTLE_ENDIAN 1234
  ------------------
   86|    456|}
fu_struct_dfu_ftr_get_ver:
   92|    456|{
   93|    456|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    456|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    456|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    456|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    456|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    456|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    456| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    456|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    456|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    456|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 456, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    456|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    456|   else                                         \
  |  |  |  |  |  |  |  | 1240|    456|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    456|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    456|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 456, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    456|      { } \
  |  |  666|    456|    else \
  |  |  667|    456|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    456|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    456|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 456]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   94|    456|    return fu_memread_uint16(st->buf->data + 6, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    456|#define G_LITTLE_ENDIAN 1234
  ------------------
   95|    456|}
fu_struct_dfu_ftr_get_len:
  110|    456|{
  111|    456|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    456|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    456|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    456|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    456|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    456|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    456| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    456|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    456|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    456|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 456, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    456|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    456|   else                                         \
  |  |  |  |  |  |  |  | 1240|    456|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    456|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    456|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    456|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    456|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 456, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    456|      { } \
  |  |  666|    456|    else \
  |  |  667|    456|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    456|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    456|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 456]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  112|    456|    return st->buf->data[11];
  113|    456|}
fu_struct_dfu_ftr_set_release:
  130|    128|{
  131|    128|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  132|    128|    fu_memwrite_uint16(st->buf->data + 0, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    128|#define G_LITTLE_ENDIAN 1234
  ------------------
  133|    128|}
fu_struct_dfu_ftr_set_pid:
  139|    128|{
  140|    128|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  141|    128|    fu_memwrite_uint16(st->buf->data + 2, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    128|#define G_LITTLE_ENDIAN 1234
  ------------------
  142|    128|}
fu_struct_dfu_ftr_set_vid:
  148|    128|{
  149|    128|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  150|    128|    fu_memwrite_uint16(st->buf->data + 4, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    128|#define G_LITTLE_ENDIAN 1234
  ------------------
  151|    128|}
fu_struct_dfu_ftr_set_ver:
  157|    128|{
  158|    128|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  159|    128|    fu_memwrite_uint16(st->buf->data + 6, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    128|#define G_LITTLE_ENDIAN 1234
  ------------------
  160|    128|}
fu_struct_dfu_ftr_set_len:
  190|    128|{
  191|    128|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  192|    128|    st->buf->data[11] = value;
  193|    128|}
fu_struct_dfu_ftr_new:
  208|    128|{
  209|    128|    FuStructDfuFtr *st = fu_struct_dfu_ftr_new_internal();
  210|    128|    st->buf = g_byte_array_sized_new(16);
  211|    128|    fu_byte_array_set_size(st->buf, 16, 0x0);
  212|       |    fu_struct_dfu_ftr_set_sig(st, "UFD", NULL);
  213|    128|    fu_struct_dfu_ftr_set_len(st, 16);
  214|    128|    return st;
  215|    128|}
fu_struct_dfu_ftr_parse_stream:
  302|    493|{
  303|    493|    g_autoptr(FuStructDfuFtr) st = fu_struct_dfu_ftr_new_internal();
  ------------------
  |  | 1381|    493|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    493|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  304|    493|    st->buf = fu_input_stream_read_byte_array(stream, offset, 16, NULL, error);
  305|    493|    if (st->buf == NULL) {
  ------------------
  |  Branch (305:9): [True: 0, False: 493]
  ------------------
  306|      0|        g_prefix_error(error, "FuStructDfuFtr failed read of 0x%x: ", (guint) 16);
  307|      0|        return NULL;
  308|      0|    }
  309|    493|    if (st->buf->len != 16) {
  ------------------
  |  Branch (309:9): [True: 0, False: 493]
  ------------------
  310|      0|        g_set_error(error,
  311|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  312|      0|                    FWUPD_ERROR_INVALID_DATA,
  313|      0|                    "FuStructDfuFtr requested 0x%x and got 0x%x",
  314|      0|                    (guint) 16,
  315|      0|                    (guint) st->buf->len);
  316|      0|        return NULL;
  317|      0|    }
  318|    493|    if (!fu_struct_dfu_ftr_parse_internal(st, error))
  ------------------
  |  Branch (318:9): [True: 37, False: 456]
  ------------------
  319|     37|        return NULL;
  320|    456|    return g_steal_pointer(&st);
  ------------------
  |  |  247|    456|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  321|    493|}
fu_struct_dfuse_hdr_unref:
  337|  1.11k|{
  338|  1.11k|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|  1.11k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.11k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.11k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.11k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.11k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.11k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.11k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.11k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.11k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.11k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.11k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.11k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.11k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.11k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.11k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.11k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.11k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.11k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.11k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.11k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.11k|      { } \
  |  |  653|  1.11k|    else \
  |  |  654|  1.11k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.11k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.11k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.11k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|  1.11k|    if (st->refcount == 0) {
  ------------------
  |  Branch (339:9): [True: 0, False: 1.11k]
  ------------------
  340|      0|        g_critical("FuStructDfuseHdr refcount already zero");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  341|      0|        return;
  342|      0|    }
  343|  1.11k|    if (--st->refcount > 0)
  ------------------
  |  Branch (343:9): [True: 0, False: 1.11k]
  ------------------
  344|      0|        return;
  345|  1.11k|    if (st->buf != NULL)
  ------------------
  |  Branch (345:9): [True: 1.11k, False: 0]
  ------------------
  346|  1.11k|        g_byte_array_unref(st->buf);
  347|  1.11k|    g_free(st);
  348|  1.11k|}
fu_struct_dfuse_hdr_get_image_size:
  384|    511|{
  385|    511|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    511|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    511|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    511|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    511|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    511|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    511| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    511|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    511|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    511|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 511, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    511|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    511|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    511|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    511|   else                                         \
  |  |  |  |  |  |  |  | 1240|    511|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    511|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    511|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    511|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    511|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 511, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    511|      { } \
  |  |  666|    511|    else \
  |  |  667|    511|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    511|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    511|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 511]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  386|    511|    return fu_memread_uint32(st->buf->data + 6, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    511|#define G_LITTLE_ENDIAN 1234
  ------------------
  387|    511|}
fu_struct_dfuse_hdr_get_targets:
  393|    329|{
  394|    329|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    329|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    329|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    329|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    329|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    329|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    329| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    329|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    329|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    329|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 329, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    329|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    329|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    329|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    329|   else                                         \
  |  |  |  |  |  |  |  | 1240|    329|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    329|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    329|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    329|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    329|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 329, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    329|      { } \
  |  |  666|    329|    else \
  |  |  667|    329|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    329|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    329|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 329]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  395|    329|    return st->buf->data[10];
  396|    329|}
fu_struct_dfuse_hdr_set_image_size:
  437|    128|{
  438|    128|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  439|    128|    fu_memwrite_uint32(st->buf->data + 6, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    128|#define G_LITTLE_ENDIAN 1234
  ------------------
  440|    128|}
fu_struct_dfuse_hdr_set_targets:
  446|    128|{
  447|    128|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  448|    128|    st->buf->data[10] = value;
  449|    128|}
fu_struct_dfuse_hdr_new:
  455|    128|{
  456|    128|    FuStructDfuseHdr *st = fu_struct_dfuse_hdr_new_internal();
  457|    128|    st->buf = g_byte_array_sized_new(11);
  458|    128|    fu_byte_array_set_size(st->buf, 11, 0x0);
  459|       |    fu_struct_dfuse_hdr_set_sig(st, "DfuSe", NULL);
  460|    128|    fu_struct_dfuse_hdr_set_ver(st, 0x01);
  461|    128|    return st;
  462|    128|}
fu_struct_dfuse_hdr_to_bytes:
  491|    128|{
  492|    128|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  493|    128|    return g_bytes_new(st->buf->data, st->buf->len);
  494|    128|}
fu_struct_dfuse_hdr_validate_stream:
  523|    567|{
  524|    567|    g_autoptr(FuStructDfuseHdr) st = fu_struct_dfuse_hdr_new_internal();
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  525|    567|    g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    567|      { } \
  |  |  666|    567|    else \
  |  |  667|    567|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  526|    567|    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    567|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    567|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    567|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    567|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    567|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    567| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    567|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.13k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 567, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    567|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    567|   else                                         \
  |  |  |  |  |  |  |  | 1240|    567|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    567|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    567|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    567|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    567|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 567, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    567|      { } \
  |  |  666|    567|    else \
  |  |  667|    567|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    567|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    567|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 567]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  527|    567|    st->buf = fu_input_stream_read_byte_array(stream, offset, 11, NULL, error);
  528|    567|    if (st->buf == NULL) {
  ------------------
  |  Branch (528:9): [True: 0, False: 567]
  ------------------
  529|      0|        g_prefix_error(error, "FuStructDfuseHdr failed read of 0x%x: ", (guint) 11);
  530|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  531|      0|    }
  532|    567|    if (st->buf->len != 11) {
  ------------------
  |  Branch (532:9): [True: 13, False: 554]
  ------------------
  533|     13|        g_set_error(error,
  534|     13|                    FWUPD_ERROR,
  ------------------
  |  |   15|     13|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  535|     13|                    FWUPD_ERROR_INVALID_DATA,
  536|     13|                    "FuStructDfuseHdr requested 0x%x and got 0x%x",
  537|     13|                    (guint) 11,
  538|     13|                    (guint) st->buf->len);
  539|     13|        return FALSE;
  ------------------
  |  |  925|     13|#define	FALSE	(0)
  ------------------
  540|     13|    }
  541|    554|    return fu_struct_dfuse_hdr_validate_internal(st, error);
  542|    567|}
fu_struct_dfuse_hdr_parse_stream:
  559|    420|{
  560|    420|    g_autoptr(FuStructDfuseHdr) st = fu_struct_dfuse_hdr_new_internal();
  ------------------
  |  | 1381|    420|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    420|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  561|    420|    st->buf = fu_input_stream_read_byte_array(stream, offset, 11, NULL, error);
  562|    420|    if (st->buf == NULL) {
  ------------------
  |  Branch (562:9): [True: 0, False: 420]
  ------------------
  563|      0|        g_prefix_error(error, "FuStructDfuseHdr failed read of 0x%x: ", (guint) 11);
  564|      0|        return NULL;
  565|      0|    }
  566|    420|    if (st->buf->len != 11) {
  ------------------
  |  Branch (566:9): [True: 0, False: 420]
  ------------------
  567|      0|        g_set_error(error,
  568|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  569|      0|                    FWUPD_ERROR_INVALID_DATA,
  570|      0|                    "FuStructDfuseHdr requested 0x%x and got 0x%x",
  571|      0|                    (guint) 11,
  572|      0|                    (guint) st->buf->len);
  573|      0|        return NULL;
  574|      0|    }
  575|    420|    if (!fu_struct_dfuse_hdr_parse_internal(st, error))
  ------------------
  |  Branch (575:9): [True: 0, False: 420]
  ------------------
  576|      0|        return NULL;
  577|    420|    return g_steal_pointer(&st);
  ------------------
  |  |  247|    420|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  578|    420|}
fu_struct_dfuse_image_unref:
  594|    437|{
  595|    437|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    437|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    437|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    437|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    437|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    437|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    437| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    437|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    437|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    437|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 437, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    437|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    437|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    437|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    437|   else                                         \
  |  |  |  |  |  |  |  | 1240|    437|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    437|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    437|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    437|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    437|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 437, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    437|      { } \
  |  |  653|    437|    else \
  |  |  654|    437|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    437|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    437|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 437]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  596|    437|    if (st->refcount == 0) {
  ------------------
  |  Branch (596:9): [True: 0, False: 437]
  ------------------
  597|      0|        g_critical("FuStructDfuseImage refcount already zero");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  598|      0|        return;
  599|      0|    }
  600|    437|    if (--st->refcount > 0)
  ------------------
  |  Branch (600:9): [True: 0, False: 437]
  ------------------
  601|      0|        return;
  602|    437|    if (st->buf != NULL)
  ------------------
  |  Branch (602:9): [True: 429, False: 8]
  ------------------
  603|    429|        g_byte_array_unref(st->buf);
  604|    437|    g_free(st);
  605|    437|}
fu_struct_dfuse_image_get_alt_setting:
  632|    250|{
  633|    250|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    250|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    250|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    250|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    250|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    250|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    250| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    250|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    250|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    250|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 250, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    250|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    250|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    250|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    250|   else                                         \
  |  |  |  |  |  |  |  | 1240|    250|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    250|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    250|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    250|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    250|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 250, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    250|      { } \
  |  |  666|    250|    else \
  |  |  667|    250|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    250|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    250|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 250]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  634|    250|    return st->buf->data[6];
  635|    250|}
fu_struct_dfuse_image_get_target_named:
  641|    250|{
  642|    250|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    250|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    250|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    250|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    250|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    250|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    250| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    250|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    250|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    250|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 250, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    250|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    250|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    250|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    250|   else                                         \
  |  |  |  |  |  |  |  | 1240|    250|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    250|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    250|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    250|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    250|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 250, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    250|      { } \
  |  |  666|    250|    else \
  |  |  667|    250|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    250|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    250|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 250]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  643|    250|    return fu_memread_uint32(st->buf->data + 7, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    250|#define G_LITTLE_ENDIAN 1234
  ------------------
  644|    250|}
fu_struct_dfuse_image_get_target_name:
  650|    102|{
  651|    102|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  652|    102|    return fu_memstrsafe(st->buf->data, st->buf->len, 11, 255, NULL);
  653|    102|}
fu_struct_dfuse_image_get_chunks:
  668|    250|{
  669|    250|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    250|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    250|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    250|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    250|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    250|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    250| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    250|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    250|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    250|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 250, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    250|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    250|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    250|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    250|   else                                         \
  |  |  |  |  |  |  |  | 1240|    250|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    250|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    250|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    250|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    250|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 250, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    250|      { } \
  |  |  666|    250|    else \
  |  |  667|    250|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    250|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    250|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 250]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  670|    250|    return fu_memread_uint32(st->buf->data + 270, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    250|#define G_LITTLE_ENDIAN 1234
  ------------------
  671|    250|}
fu_struct_dfuse_image_set_alt_setting:
  703|    108|{
  704|    108|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    108|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    108|      { } \
  |  |  653|    108|    else \
  |  |  654|    108|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  705|    108|    st->buf->data[6] = value;
  706|    108|}
fu_struct_dfuse_image_set_target_named:
  712|     56|{
  713|     56|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|     56|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     56|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     56|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     56|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     56|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     56| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     56|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     56|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     56|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 56, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     56|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     56|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     56|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     56|   else                                         \
  |  |  |  |  |  |  |  | 1240|     56|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     56|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     56|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     56|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     56|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 56, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     56|      { } \
  |  |  653|     56|    else \
  |  |  654|     56|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|     56|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     56|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 56]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  714|     56|    fu_memwrite_uint32(st->buf->data + 7, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|     56|#define G_LITTLE_ENDIAN 1234
  ------------------
  715|     56|}
fu_struct_dfuse_image_set_target_name:
  721|     56|{
  722|     56|    gsize len;
  723|     56|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|     56|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     56|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     56|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     56|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     56|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     56| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     56|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     56|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     56|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 56, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     56|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     56|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     56|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     56|   else                                         \
  |  |  |  |  |  |  |  | 1240|     56|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     56|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     56|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     56|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     56|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 56, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     56|      { } \
  |  |  666|     56|    else \
  |  |  667|     56|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     56|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     56|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 56]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  724|     56|    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     56|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     56|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     56|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     56|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     56|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     56| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     56|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     56|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    112|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 56, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     56|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     56|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     56|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     56|   else                                         \
  |  |  |  |  |  |  |  | 1240|     56|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     56|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     56|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     56|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     56|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 56, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     56|      { } \
  |  |  666|     56|    else \
  |  |  667|     56|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     56|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     56|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 56]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  725|     56|    if (value == NULL) {
  ------------------
  |  Branch (725:9): [True: 0, False: 56]
  ------------------
  726|      0|        memset(st->buf->data + 11, 0x0, 255);
  727|      0|        return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  728|      0|    }
  729|     56|    len = strlen(value);
  730|     56|    if (len > 255) {
  ------------------
  |  Branch (730:9): [True: 0, False: 56]
  ------------------
  731|      0|        g_set_error(error,
  732|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  733|      0|                    FWUPD_ERROR_INVALID_DATA,
  734|      0|                    "string '%s' (0x%x bytes) does not fit in FuStructDfuseImage.target_name (0x%x bytes)",
  735|      0|                    value, (guint) len, (guint) 255);
  736|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  737|      0|    }
  738|     56|    return fu_memcpy_safe(st->buf->data, st->buf->len, 11, (const guint8 *)value, len, 0x0, len, error);
  739|     56|}
fu_struct_dfuse_image_set_target_size:
  745|    108|{
  746|    108|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    108|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    108|      { } \
  |  |  653|    108|    else \
  |  |  654|    108|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  747|    108|    fu_memwrite_uint32(st->buf->data + 266, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    108|#define G_LITTLE_ENDIAN 1234
  ------------------
  748|    108|}
fu_struct_dfuse_image_set_chunks:
  754|    108|{
  755|    108|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    108|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    108|      { } \
  |  |  653|    108|    else \
  |  |  654|    108|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  756|    108|    fu_memwrite_uint32(st->buf->data + 270, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    108|#define G_LITTLE_ENDIAN 1234
  ------------------
  757|    108|}
fu_struct_dfuse_image_new:
  763|    108|{
  764|    108|    FuStructDfuseImage *st = fu_struct_dfuse_image_new_internal();
  765|    108|    st->buf = g_byte_array_sized_new(274);
  766|    108|    fu_byte_array_set_size(st->buf, 274, 0x0);
  767|       |    fu_struct_dfuse_image_set_sig(st, "Target", NULL);
  768|    108|    return st;
  769|    108|}
fu_struct_dfuse_image_to_bytes:
  805|    108|{
  806|    108|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    108|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    108|      { } \
  |  |  666|    108|    else \
  |  |  667|    108|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  807|    108|    return g_bytes_new(st->buf->data, st->buf->len);
  808|    108|}
fu_struct_dfuse_image_parse_stream:
  859|    329|{
  860|    329|    g_autoptr(FuStructDfuseImage) st = fu_struct_dfuse_image_new_internal();
  ------------------
  |  | 1381|    329|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    329|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  861|    329|    st->buf = fu_input_stream_read_byte_array(stream, offset, 274, NULL, error);
  862|    329|    if (st->buf == NULL) {
  ------------------
  |  Branch (862:9): [True: 8, False: 321]
  ------------------
  863|      8|        g_prefix_error(error, "FuStructDfuseImage failed read of 0x%x: ", (guint) 274);
  864|      8|        return NULL;
  865|      8|    }
  866|    321|    if (st->buf->len != 274) {
  ------------------
  |  Branch (866:9): [True: 22, False: 299]
  ------------------
  867|     22|        g_set_error(error,
  868|     22|                    FWUPD_ERROR,
  ------------------
  |  |   15|     22|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  869|     22|                    FWUPD_ERROR_INVALID_DATA,
  870|     22|                    "FuStructDfuseImage requested 0x%x and got 0x%x",
  871|     22|                    (guint) 274,
  872|     22|                    (guint) st->buf->len);
  873|     22|        return NULL;
  874|     22|    }
  875|    299|    if (!fu_struct_dfuse_image_parse_internal(st, error))
  ------------------
  |  Branch (875:9): [True: 49, False: 250]
  ------------------
  876|     49|        return NULL;
  877|    250|    return g_steal_pointer(&st);
  ------------------
  |  |  247|    250|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  878|    299|}
fu_struct_dfuse_element_unref:
  894|  1.66k|{
  895|  1.66k|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|  1.66k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.66k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.66k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.66k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.66k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.66k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.66k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.66k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.66k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.66k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.66k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.66k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.66k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.66k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.66k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.66k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.66k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.66k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.66k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.66k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.66k|      { } \
  |  |  653|  1.66k|    else \
  |  |  654|  1.66k|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|  1.66k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.66k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.66k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  896|  1.66k|    if (st->refcount == 0) {
  ------------------
  |  Branch (896:9): [True: 0, False: 1.66k]
  ------------------
  897|      0|        g_critical("FuStructDfuseElement refcount already zero");
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  898|      0|        return;
  899|      0|    }
  900|  1.66k|    if (--st->refcount > 0)
  ------------------
  |  Branch (900:9): [True: 0, False: 1.66k]
  ------------------
  901|      0|        return;
  902|  1.66k|    if (st->buf != NULL)
  ------------------
  |  Branch (902:9): [True: 1.61k, False: 47]
  ------------------
  903|  1.61k|        g_byte_array_unref(st->buf);
  904|  1.66k|    g_free(st);
  905|  1.66k|}
fu_struct_dfuse_element_get_address:
  923|  1.09k|{
  924|  1.09k|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|  1.09k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.09k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.09k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.09k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.09k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.09k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.09k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.09k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.09k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.09k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.09k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.09k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.09k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.09k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.09k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.09k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.09k|      { } \
  |  |  666|  1.09k|    else \
  |  |  667|  1.09k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  1.09k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.09k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.09k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  925|  1.09k|    return fu_memread_uint32(st->buf->data + 0, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|  1.09k|#define G_LITTLE_ENDIAN 1234
  ------------------
  926|  1.09k|}
fu_struct_dfuse_element_get_size:
  932|  1.10k|{
  933|  1.10k|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|  1.10k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.10k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.10k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.10k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.10k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.10k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.10k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.10k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.10k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.10k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.10k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.10k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.10k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|  1.10k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.10k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.10k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.10k|      { } \
  |  |  666|  1.10k|    else \
  |  |  667|  1.10k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  1.10k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.10k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.10k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  934|  1.10k|    return fu_memread_uint32(st->buf->data + 4, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|  1.10k|#define G_LITTLE_ENDIAN 1234
  ------------------
  935|  1.10k|}
fu_struct_dfuse_element_set_address:
  943|    505|{
  944|    505|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    505|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    505|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    505|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    505|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    505|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    505| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    505|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    505|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    505|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 505, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    505|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    505|   else                                         \
  |  |  |  |  |  |  |  | 1240|    505|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    505|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    505|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 505, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    505|      { } \
  |  |  653|    505|    else \
  |  |  654|    505|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    505|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    505|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 505]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  945|    505|    fu_memwrite_uint32(st->buf->data + 0, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    505|#define G_LITTLE_ENDIAN 1234
  ------------------
  946|    505|}
fu_struct_dfuse_element_set_size:
  952|    505|{
  953|    505|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    505|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    505|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    505|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    505|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    505|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    505| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    505|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    505|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    505|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 505, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    505|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    505|   else                                         \
  |  |  |  |  |  |  |  | 1240|    505|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    505|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    505|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 505, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    505|      { } \
  |  |  653|    505|    else \
  |  |  654|    505|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    505|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    505|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 505]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  954|    505|    fu_memwrite_uint32(st->buf->data + 4, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    505|#define G_LITTLE_ENDIAN 1234
  ------------------
  955|    505|}
fu_struct_dfuse_element_new:
  961|    505|{
  962|    505|    FuStructDfuseElement *st = fu_struct_dfuse_element_new_internal();
  963|    505|    st->buf = g_byte_array_sized_new(8);
  964|    505|    fu_byte_array_set_size(st->buf, 8, 0x0);
  965|    505|    return st;
  966|    505|}
fu_struct_dfuse_element_to_bytes:
  988|    505|{
  989|    505|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|    505|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    505|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    505|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    505|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    505|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    505| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    505|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    505|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    505|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 505, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    505|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    505|   else                                         \
  |  |  |  |  |  |  |  | 1240|    505|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    505|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    505|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    505|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    505|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 505, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    505|      { } \
  |  |  666|    505|    else \
  |  |  667|    505|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    505|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    505|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 505]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  990|    505|    return g_bytes_new(st->buf->data, st->buf->len);
  991|    505|}
fu_struct_dfuse_element_parse_stream:
 1006|  1.15k|{
 1007|  1.15k|    g_autoptr(FuStructDfuseElement) st = fu_struct_dfuse_element_new_internal();
  ------------------
  |  | 1381|  1.15k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  1.15k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1008|  1.15k|    st->buf = fu_input_stream_read_byte_array(stream, offset, 8, NULL, error);
 1009|  1.15k|    if (st->buf == NULL) {
  ------------------
  |  Branch (1009:9): [True: 47, False: 1.11k]
  ------------------
 1010|     47|        g_prefix_error(error, "FuStructDfuseElement failed read of 0x%x: ", (guint) 8);
 1011|     47|        return NULL;
 1012|     47|    }
 1013|  1.11k|    if (st->buf->len != 8) {
  ------------------
  |  Branch (1013:9): [True: 4, False: 1.10k]
  ------------------
 1014|      4|        g_set_error(error,
 1015|      4|                    FWUPD_ERROR,
  ------------------
  |  |   15|      4|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1016|      4|                    FWUPD_ERROR_INVALID_DATA,
 1017|      4|                    "FuStructDfuseElement requested 0x%x and got 0x%x",
 1018|      4|                    (guint) 8,
 1019|      4|                    (guint) st->buf->len);
 1020|      4|        return NULL;
 1021|      4|    }
 1022|  1.10k|    if (!fu_struct_dfuse_element_parse_internal(st, error))
  ------------------
  |  Branch (1022:9): [True: 0, False: 1.10k]
  ------------------
 1023|      0|        return NULL;
 1024|  1.10k|    return g_steal_pointer(&st);
  ------------------
  |  |  247|  1.10k|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 1025|  1.10k|}
fu-dfu-firmware-struct.c:fu_struct_dfu_ftr_new_internal:
   53|    621|{
   54|       |    FuStructDfuFtr *st = g_new0(FuStructDfuFtr, 1);
  ------------------
  |  |  332|    621|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    621|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    621|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    621|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    621|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    621|	  gpointer __p;						\
  |  |  |  |  264|    621|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 621]
  |  |  |  |  ------------------
  |  |  |  |  265|    621|	    __p = g_##func (__n);				\
  |  |  |  |  266|    621|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 621, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    621|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    621|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    621|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 621]
  |  |  |  |  |  Branch (267:26): [True: 621, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    621|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    621|	  else							\
  |  |  |  |  270|    621|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    621|	  __p;							\
  |  |  |  |  272|    621|	}))
  |  |  ------------------
  ------------------
   55|    621|    st->refcount = 1;
   56|    621|    return st;
   57|    621|}
fu-dfu-firmware-struct.c:fu_struct_dfu_ftr_set_sig:
  166|    128|{
  167|    128|    gsize len;
  168|    128|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  169|    128|    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    256|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  170|    128|    if (value == NULL) {
  ------------------
  |  Branch (170:9): [True: 0, False: 128]
  ------------------
  171|      0|        memset(st->buf->data + 8, 0x0, 3);
  172|      0|        return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  173|      0|    }
  174|    128|    len = strlen(value);
  175|    128|    if (len > 3) {
  ------------------
  |  Branch (175:9): [True: 0, False: 128]
  ------------------
  176|      0|        g_set_error(error,
  177|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  178|      0|                    FWUPD_ERROR_INVALID_DATA,
  179|      0|                    "string '%s' (0x%x bytes) does not fit in FuStructDfuFtr.sig (0x%x bytes)",
  180|      0|                    value, (guint) len, (guint) 3);
  181|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  182|      0|    }
  183|    128|    return fu_memcpy_safe(st->buf->data, st->buf->len, 8, (const guint8 *)value, len, 0x0, len, error);
  184|    128|}
fu-dfu-firmware-struct.c:fu_struct_dfu_ftr_validate_internal:
  247|    493|{
  248|    493|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|    493|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    493|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    493|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    493|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    493|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    493| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    493|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    493|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    493|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 493, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    493|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    493|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    493|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    493|   else                                         \
  |  |  |  |  |  |  |  | 1240|    493|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    493|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    493|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    493|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    493|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 493, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    493|      { } \
  |  |  666|    493|    else \
  |  |  667|    493|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    493|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    493|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 493]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  249|    493|    if (strncmp((const gchar *) (st->buf->data + 8), "UFD", 3) != 0) {
  ------------------
  |  Branch (249:9): [True: 37, False: 456]
  ------------------
  250|     37|        g_autofree gchar *str = fu_struct_dfu_ftr_get_sig(st);
  ------------------
  |  | 1386|     37|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|     37|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  251|     37|        g_set_error(error,
  252|     37|                    FWUPD_ERROR,
  ------------------
  |  |   15|     37|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  253|     37|                    FWUPD_ERROR_INVALID_DATA,
  254|     37|                    "constant FuStructDfuFtr.sig was not valid, "
  255|     37|                    "expected 'UFD' and got '%s'",
  256|     37|                    str);
  257|     37|        return FALSE;
  ------------------
  |  |  925|     37|#define	FALSE	(0)
  ------------------
  258|     37|    }
  259|    456|    return TRUE;
  ------------------
  |  |  929|    456|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    456|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  260|    493|}
fu-dfu-firmware-struct.c:fu_struct_dfu_ftr_get_sig:
  101|     37|{
  102|     37|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|     37|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     37|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     37|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     37|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     37|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     37| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     37|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     37|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     37|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 37, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     37|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     37|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     37|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     37|   else                                         \
  |  |  |  |  |  |  |  | 1240|     37|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     37|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     37|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     37|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     37|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 37, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     37|      { } \
  |  |  666|     37|    else \
  |  |  667|     37|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     37|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     37|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 37]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  103|     37|    return fu_memstrsafe(st->buf->data, st->buf->len, 8, 3, NULL);
  104|     37|}
fu-dfu-firmware-struct.c:fu_struct_dfu_ftr_parse_internal:
  288|    493|{
  289|    493|    if (g_log_get_debug_enabled()) {
  ------------------
  |  Branch (289:9): [True: 0, False: 493]
  ------------------
  290|      0|        g_autofree gchar *str = fu_struct_dfu_ftr_to_string(st);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  291|      0|        g_debug("%s", str);
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
  292|      0|    }
  293|    493|    if (!fu_struct_dfu_ftr_validate_internal(st, error))
  ------------------
  |  Branch (293:9): [True: 37, False: 456]
  ------------------
  294|     37|        return FALSE;
  ------------------
  |  |  925|     37|#define	FALSE	(0)
  ------------------
  295|    456|    return TRUE;
  ------------------
  |  |  929|    456|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    456|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  296|    493|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_hdr_new_internal:
  354|  1.11k|{
  355|       |    FuStructDfuseHdr *st = g_new0(FuStructDfuseHdr, 1);
  ------------------
  |  |  332|  1.11k|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|  1.11k|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.11k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|  1.11k|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|  1.11k|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|  1.11k|	  gpointer __p;						\
  |  |  |  |  264|  1.11k|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 1.11k]
  |  |  |  |  ------------------
  |  |  |  |  265|  1.11k|	    __p = g_##func (__n);				\
  |  |  |  |  266|  1.11k|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 1.11k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|  1.11k|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|  1.11k|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|  1.11k|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 1.11k]
  |  |  |  |  |  Branch (267:26): [True: 1.11k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|  1.11k|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|  1.11k|	  else							\
  |  |  |  |  270|  1.11k|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|  1.11k|	  __p;							\
  |  |  |  |  272|  1.11k|	}))
  |  |  ------------------
  ------------------
  356|  1.11k|    st->refcount = 1;
  357|  1.11k|    return st;
  358|  1.11k|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_hdr_set_sig:
  404|    128|{
  405|    128|    gsize len;
  406|    128|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  407|    128|    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    256|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    128|      { } \
  |  |  666|    128|    else \
  |  |  667|    128|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  408|    128|    if (value == NULL) {
  ------------------
  |  Branch (408:9): [True: 0, False: 128]
  ------------------
  409|      0|        memset(st->buf->data + 0, 0x0, 5);
  410|      0|        return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  411|      0|    }
  412|    128|    len = strlen(value);
  413|    128|    if (len > 5) {
  ------------------
  |  Branch (413:9): [True: 0, False: 128]
  ------------------
  414|      0|        g_set_error(error,
  415|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  416|      0|                    FWUPD_ERROR_INVALID_DATA,
  417|      0|                    "string '%s' (0x%x bytes) does not fit in FuStructDfuseHdr.sig (0x%x bytes)",
  418|      0|                    value, (guint) len, (guint) 5);
  419|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  420|      0|    }
  421|    128|    return fu_memcpy_safe(st->buf->data, st->buf->len, 0, (const guint8 *)value, len, 0x0, len, error);
  422|    128|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_hdr_set_ver:
  428|    128|{
  429|    128|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    128|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    128|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    128|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    128|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    128|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    128| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    128|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    128|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    128|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 128, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    128|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    128|   else                                         \
  |  |  |  |  |  |  |  | 1240|    128|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    128|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    128|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    128|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    128|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 128, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    128|      { } \
  |  |  653|    128|    else \
  |  |  654|    128|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    128|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    128|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 128]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  430|    128|    st->buf->data[5] = value;
  431|    128|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_hdr_validate_internal:
  497|    974|{
  498|    974|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|    974|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    974|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    974|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    974|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    974|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    974| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    974|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    974|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    974|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 974, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    974|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    974|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    974|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    974|   else                                         \
  |  |  |  |  |  |  |  | 1240|    974|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    974|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    974|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    974|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    974|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 974, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    974|      { } \
  |  |  666|    974|    else \
  |  |  667|    974|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    974|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    974|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 974]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  499|    974|    if (strncmp((const gchar *) (st->buf->data + 0), "DfuSe", 5) != 0) {
  ------------------
  |  Branch (499:9): [True: 48, False: 926]
  ------------------
  500|     48|        g_autofree gchar *str = fu_struct_dfuse_hdr_get_sig(st);
  ------------------
  |  | 1386|     48|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|     48|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  501|     48|        g_set_error(error,
  502|     48|                    FWUPD_ERROR,
  ------------------
  |  |   15|     48|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  503|     48|                    FWUPD_ERROR_INVALID_DATA,
  504|     48|                    "constant FuStructDfuseHdr.sig was not valid, "
  505|     48|                    "expected 'DfuSe' and got '%s'",
  506|     48|                    str);
  507|     48|        return FALSE;
  ------------------
  |  |  925|     48|#define	FALSE	(0)
  ------------------
  508|     48|    }
  509|    926|    if (fu_struct_dfuse_hdr_get_ver(st) != 0x01) {
  ------------------
  |  Branch (509:9): [True: 7, False: 919]
  ------------------
  510|      7|        g_set_error_literal(error,
  511|      7|                            FWUPD_ERROR,
  ------------------
  |  |   15|      7|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  512|      7|                            FWUPD_ERROR_INVALID_DATA,
  513|      7|                            "constant FuStructDfuseHdr.ver was not valid");
  514|      7|        return FALSE;
  ------------------
  |  |  925|      7|#define	FALSE	(0)
  ------------------
  515|      7|    }
  516|    919|    return TRUE;
  ------------------
  |  |  929|    919|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    919|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  517|    926|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_hdr_get_sig:
  366|     48|{
  367|     48|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|     48|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     48|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     48|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     48|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     48|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     48| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     48|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     48|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     48|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 48, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     48|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     48|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     48|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     48|   else                                         \
  |  |  |  |  |  |  |  | 1240|     48|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     48|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     48|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     48|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     48|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 48, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     48|      { } \
  |  |  666|     48|    else \
  |  |  667|     48|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     48|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     48|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 48]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|     48|    return fu_memstrsafe(st->buf->data, st->buf->len, 0, 5, NULL);
  369|     48|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_hdr_get_ver:
  375|    926|{
  376|    926|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    926|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    926|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    926|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    926|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    926|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    926| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    926|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    926|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    926|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 926, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    926|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    926|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    926|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    926|   else                                         \
  |  |  |  |  |  |  |  | 1240|    926|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    926|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    926|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    926|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    926|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 926, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    926|      { } \
  |  |  666|    926|    else \
  |  |  667|    926|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    926|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    926|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 926]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  377|    926|    return st->buf->data[5];
  378|    926|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_hdr_parse_internal:
  545|    420|{
  546|    420|    if (g_log_get_debug_enabled()) {
  ------------------
  |  Branch (546:9): [True: 0, False: 420]
  ------------------
  547|      0|        g_autofree gchar *str = fu_struct_dfuse_hdr_to_string(st);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  548|      0|        g_debug("%s", str);
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
  549|      0|    }
  550|    420|    if (!fu_struct_dfuse_hdr_validate_internal(st, error))
  ------------------
  |  Branch (550:9): [True: 0, False: 420]
  ------------------
  551|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  552|    420|    return TRUE;
  ------------------
  |  |  929|    420|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    420|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  553|    420|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_image_new_internal:
  611|    437|{
  612|       |    FuStructDfuseImage *st = g_new0(FuStructDfuseImage, 1);
  ------------------
  |  |  332|    437|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    437|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    437|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    437|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    437|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    437|	  gpointer __p;						\
  |  |  |  |  264|    437|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 437]
  |  |  |  |  ------------------
  |  |  |  |  265|    437|	    __p = g_##func (__n);				\
  |  |  |  |  266|    437|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 437, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    437|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    437|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    437|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 437]
  |  |  |  |  |  Branch (267:26): [True: 437, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    437|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    437|	  else							\
  |  |  |  |  270|    437|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    437|	  __p;							\
  |  |  |  |  272|    437|	}))
  |  |  ------------------
  ------------------
  613|    437|    st->refcount = 1;
  614|    437|    return st;
  615|    437|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_image_set_sig:
  679|    108|{
  680|    108|    gsize len;
  681|    108|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    108|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    108|      { } \
  |  |  666|    108|    else \
  |  |  667|    108|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  682|    108|    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    108|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    108|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    108|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    108|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    108|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    108| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    108|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    108|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    216|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 108, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    108|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    108|   else                                         \
  |  |  |  |  |  |  |  | 1240|    108|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    108|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    108|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    108|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    108|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 108, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    108|      { } \
  |  |  666|    108|    else \
  |  |  667|    108|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    108|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    108|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 108]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  683|    108|    if (value == NULL) {
  ------------------
  |  Branch (683:9): [True: 0, False: 108]
  ------------------
  684|      0|        memset(st->buf->data + 0, 0x0, 6);
  685|      0|        return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  686|      0|    }
  687|    108|    len = strlen(value);
  688|    108|    if (len > 6) {
  ------------------
  |  Branch (688:9): [True: 0, False: 108]
  ------------------
  689|      0|        g_set_error(error,
  690|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  691|      0|                    FWUPD_ERROR_INVALID_DATA,
  692|      0|                    "string '%s' (0x%x bytes) does not fit in FuStructDfuseImage.sig (0x%x bytes)",
  693|      0|                    value, (guint) len, (guint) 6);
  694|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  695|      0|    }
  696|    108|    return fu_memcpy_safe(st->buf->data, st->buf->len, 0, (const guint8 *)value, len, 0x0, len, error);
  697|    108|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_image_validate_internal:
  811|    299|{
  812|    299|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|    299|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    299|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    299|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    299|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    299|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    299| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    299|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    299|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    299|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 299, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    299|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    299|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    299|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    299|   else                                         \
  |  |  |  |  |  |  |  | 1240|    299|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    299|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    299|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    299|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    299|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 299, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    299|      { } \
  |  |  666|    299|    else \
  |  |  667|    299|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    299|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    299|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 299]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  813|    299|    if (strncmp((const gchar *) (st->buf->data + 0), "Target", 6) != 0) {
  ------------------
  |  Branch (813:9): [True: 49, False: 250]
  ------------------
  814|     49|        g_autofree gchar *str = fu_struct_dfuse_image_get_sig(st);
  ------------------
  |  | 1386|     49|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|     49|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  815|     49|        g_set_error(error,
  816|     49|                    FWUPD_ERROR,
  ------------------
  |  |   15|     49|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  817|     49|                    FWUPD_ERROR_INVALID_DATA,
  818|     49|                    "constant FuStructDfuseImage.sig was not valid, "
  819|     49|                    "expected 'Target' and got '%s'",
  820|     49|                    str);
  821|     49|        return FALSE;
  ------------------
  |  |  925|     49|#define	FALSE	(0)
  ------------------
  822|     49|    }
  823|    250|    return TRUE;
  ------------------
  |  |  929|    250|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    250|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  824|    299|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_image_get_sig:
  623|     49|{
  624|     49|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|     49|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     49|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     49|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     49|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     49|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     49| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     49|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     49|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     49|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     49|   else                                         \
  |  |  |  |  |  |  |  | 1240|     49|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     49|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     49|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 49, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     49|      { } \
  |  |  666|     49|    else \
  |  |  667|     49|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     49|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     49|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 49]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  625|     49|    return fu_memstrsafe(st->buf->data, st->buf->len, 0, 6, NULL);
  626|     49|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_image_parse_internal:
  845|    299|{
  846|    299|    if (g_log_get_debug_enabled()) {
  ------------------
  |  Branch (846:9): [True: 0, False: 299]
  ------------------
  847|      0|        g_autofree gchar *str = fu_struct_dfuse_image_to_string(st);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  848|      0|        g_debug("%s", str);
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
  849|      0|    }
  850|    299|    if (!fu_struct_dfuse_image_validate_internal(st, error))
  ------------------
  |  Branch (850:9): [True: 49, False: 250]
  ------------------
  851|     49|        return FALSE;
  ------------------
  |  |  925|     49|#define	FALSE	(0)
  ------------------
  852|    250|    return TRUE;
  ------------------
  |  |  929|    250|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    250|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  853|    299|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_element_new_internal:
  911|  1.66k|{
  912|       |    FuStructDfuseElement *st = g_new0(FuStructDfuseElement, 1);
  ------------------
  |  |  332|  1.66k|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|  1.66k|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.66k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|  1.66k|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|  1.66k|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|  1.66k|	  gpointer __p;						\
  |  |  |  |  264|  1.66k|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 1.66k]
  |  |  |  |  ------------------
  |  |  |  |  265|  1.66k|	    __p = g_##func (__n);				\
  |  |  |  |  266|  1.66k|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 1.66k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|  1.66k|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|  1.66k|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|  1.66k|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 1.66k]
  |  |  |  |  |  Branch (267:26): [True: 1.66k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|  1.66k|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|  1.66k|	  else							\
  |  |  |  |  270|  1.66k|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|  1.66k|	  __p;							\
  |  |  |  |  272|  1.66k|	}))
  |  |  ------------------
  ------------------
  913|  1.66k|    st->refcount = 1;
  914|  1.66k|    return st;
  915|  1.66k|}
fu-dfu-firmware-struct.c:fu_struct_dfuse_element_parse_internal:
  994|  1.10k|{
  995|  1.10k|    if (g_log_get_debug_enabled()) {
  ------------------
  |  Branch (995:9): [True: 0, False: 1.10k]
  ------------------
  996|      0|        g_autofree gchar *str = fu_struct_dfuse_element_to_string(st);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  997|      0|        g_debug("%s", str);
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |   20|      0|#define G_LOG_DOMAIN "FuStruct"
  |  |  ------------------
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
  998|      0|    }
  999|  1.10k|    return TRUE;
  ------------------
  |  |  929|  1.10k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.10k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1000|  1.10k|}

LLVMFuzzerInitialize:
   15|      2|{
   16|      2|	g_type_ensure(FU_TYPE_WACOM_USB_FIRMWARE);
  ------------------
  |  |   13|      2|#define FU_TYPE_DFUSE_FIRMWARE (fu_dfuse_firmware_get_type())
  ------------------
   17|      2|	return 0;
   18|      2|}
LLVMFuzzerTestOneInput:
   22|    567|{
   23|    567|	g_autoptr(GObject) object = g_object_new(FU_TYPE_WACOM_USB_FIRMWARE, NULL);
  ------------------
  |  | 1381|    567|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    567|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
              	g_autoptr(GObject) object = g_object_new(FU_TYPE_WACOM_USB_FIRMWARE, NULL);
  ------------------
  |  |   13|    567|#define FU_TYPE_DFUSE_FIRMWARE (fu_dfuse_firmware_get_type())
  ------------------
   24|    567|	GByteArray buf = {
   25|    567|		.data = (guint8*) data,
   26|    567|		.len = size,
   27|    567|	};
   28|       |
   29|    567|	(void)g_setenv("G_DEBUG", "fatal-criticals", TRUE);
  ------------------
  |  |  929|    567|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    567|#define	FALSE	(0)
  |  |  ------------------
  ------------------
   30|    567|	(void)g_setenv("FWUPD_FUZZER_RUNNING", "1", TRUE);
  ------------------
  |  |  929|    567|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    567|#define	FALSE	(0)
  |  |  ------------------
  ------------------
   31|       |
   32|       |	fu_fuzzer_test_input(FU_FUZZER(object), &buf, NULL);
   33|    567|	return 0;
   34|    567|}

fu-dfu-firmware-struct.c:g_autoptr_cleanup_generic_gfree:
   30|    134|{
   31|    134|  void **pp = (void**)p;
   32|    134|  g_free (*pp);
   33|    134|}
fu-dfuse-firmware.c:g_autoptr_cleanup_generic_gfree:
   30|    102|{
   31|    102|  void **pp = (void**)p;
   32|    102|  g_free (*pp);
   33|    102|}
fu-mem.c:g_autoptr_cleanup_generic_gfree:
   30|    236|{
   31|    236|  void **pp = (void**)p;
   32|    236|  g_free (*pp);
   33|    236|}
fu-string.c:g_autoptr_cleanup_gstring_free:
   37|     36|{
   38|     36|  if (string)
  ------------------
  |  Branch (38:7): [True: 36, False: 0]
  ------------------
   39|     36|    g_string_free (string, TRUE);
  ------------------
  |  |   70|     36|  (__builtin_constant_p (free_segment) ?        \
  |  |  ------------------
  |  |  |  Branch (70:4): [True: 36, Folded]
  |  |  ------------------
  |  |   71|     36|    ((free_segment) ?                           \
  |  |  ------------------
  |  |  |  Branch (71:6): [True: 36, Folded]
  |  |  ------------------
  |  |   72|     36|      (g_string_free) ((str), (free_segment)) : \
  |  |   73|     36|      g_string_free_and_steal (str))            \
  |  |   74|     36|    :                                           \
  |  |   75|     36|    (g_string_free) ((str), (free_segment)))
  ------------------
   40|     36|}

fu-fuzzer-firmware.c:glib_autoptr_cleanup_GObject:
 1358|    567|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    567|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-fuzzer-firmware.c:glib_autoptr_clear_GObject:
 1356|    567|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 567, False: 0]
  ------------------
fu-dfu-firmware-struct.c:glib_autoptr_cleanup_FuStructDfuFtr:
 1358|    493|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    493|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfu-firmware-struct.c:glib_autoptr_clear_FuStructDfuFtr:
 1356|    493|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 37, False: 456]
  ------------------
fu-dfu-firmware-struct.c:glib_autoptr_cleanup_FuStructDfuseHdr:
 1358|    987|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    987|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfu-firmware-struct.c:glib_autoptr_clear_FuStructDfuseHdr:
 1356|    987|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 567, False: 420]
  ------------------
fu-dfu-firmware-struct.c:glib_autoptr_cleanup_FuStructDfuseImage:
 1358|    329|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    329|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfu-firmware-struct.c:glib_autoptr_clear_FuStructDfuseImage:
 1356|    329|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 79, False: 250]
  ------------------
fu-dfu-firmware-struct.c:glib_autoptr_cleanup_FuStructDfuseElement:
 1358|  1.15k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  1.15k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfu-firmware-struct.c:glib_autoptr_clear_FuStructDfuseElement:
 1356|  1.15k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 51, False: 1.10k]
  ------------------
fu-dfu-firmware.c:glib_autoptr_cleanup_FuStructDfuFtr:
 1358|    627|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    627|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfu-firmware.c:glib_autoptr_clear_FuStructDfuFtr:
 1356|    627|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 584, False: 43]
  ------------------
fu-dfu-firmware.c:glib_autoptr_cleanup_GBytes:
 1358|    499|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    499|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfu-firmware.c:glib_autoptr_clear_GBytes:
 1356|    499|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 499, False: 0]
  ------------------
fu-dfu-firmware.c:glib_autoptr_cleanup_GByteArray:
 1358|    128|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    128|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfu-firmware.c:glib_autoptr_clear_GByteArray:
 1356|    128|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 128]
  ------------------
fu-dfuse-firmware.c:glib_autoptr_cleanup_FuStructDfuseHdr:
 1358|    627|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    627|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfuse-firmware.c:glib_autoptr_clear_FuStructDfuseHdr:
 1356|    627|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 548, False: 79]
  ------------------
fu-dfuse-firmware.c:glib_autoptr_cleanup_FuFirmware:
 1358|    658|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    658|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfuse-firmware.c:glib_autoptr_clear_FuFirmware:
 1356|    658|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 329, False: 329]
  ------------------
fu-dfuse-firmware.c:glib_autoptr_clear_GObject:
 1356|  1.42k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.42k, False: 0]
  ------------------
fu-dfuse-firmware.c:glib_autoptr_cleanup_FuStructDfuseImage:
 1358|    437|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    437|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfuse-firmware.c:glib_autoptr_clear_FuStructDfuseImage:
 1356|    437|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 358, False: 79]
  ------------------
fu-dfuse-firmware.c:glib_autoptr_cleanup_FuChunk:
 1358|  2.31k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  2.31k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfuse-firmware.c:glib_autoptr_clear_FuChunk:
 1356|  2.31k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.09k, False: 1.21k]
  ------------------
fu-dfuse-firmware.c:glib_autoptr_cleanup_FuStructDfuseElement:
 1358|  1.66k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  1.66k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfuse-firmware.c:glib_autoptr_clear_FuStructDfuseElement:
 1356|  1.66k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.61k, False: 51]
  ------------------
fu-dfuse-firmware.c:glib_autoptr_cleanup_GBytes:
 1358|  1.39k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  1.39k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfuse-firmware.c:glib_autoptr_clear_GBytes:
 1356|  1.39k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.22k, False: 167]
  ------------------
fu-dfuse-firmware.c:glib_autoptr_cleanup_GPtrArray:
 1358|    472|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    472|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-dfuse-firmware.c:glib_autoptr_clear_GPtrArray:
 1356|    472|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 472, False: 0]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GByteArray:
 1358|    567|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    567|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GByteArray:
 1356|    567|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 128, False: 439]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GPtrArray:
 1358|    128|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    128|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GPtrArray:
 1356|    128|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 128]
  ------------------
fu-firmware.c:glib_autoptr_clear_GObject:
 1356|  1.63k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.63k, False: 0]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GBytes:
 1358|    695|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    695|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GBytes:
 1356|    695|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 499, False: 196]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_FuInputStream:
 1358|  1.70k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  1.70k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_FuInputStream:
 1356|  1.70k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.63k, False: 68]
  ------------------
fu-input-stream.c:glib_autoptr_cleanup_GByteArray:
 1358|  7.17k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  7.17k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-input-stream.c:glib_autoptr_clear_GByteArray:
 1356|  7.17k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 63, False: 7.11k]
  ------------------
fu-input-stream.c:glib_autoptr_cleanup_GError:
 1358|  5.07k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  5.07k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-input-stream.c:glib_autoptr_clear_GError:
 1356|  5.07k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 5.07k]
  ------------------
fu-memory-input-stream.c:glib_autoptr_cleanup_FuMemoryInputStream:
 1358|    567|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    567|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-memory-input-stream.c:glib_autoptr_clear_FuMemoryInputStream:
 1356|    567|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 567]
  ------------------
fu-memory-input-stream.c:glib_autoptr_cleanup_GBytes:
 1358|    567|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    567|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-memory-input-stream.c:glib_autoptr_clear_GBytes:
 1356|    567|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 567, False: 0]
  ------------------
fu-string.c:glib_autoptr_cleanup_GString:
 1358|    236|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    236|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-string.c:glib_autoptr_clear_GString:
 1356|    236|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 36, False: 200]
  ------------------

fu-dfu-firmware-struct.c:g_steal_pointer:
  235|  2.23k|{
  236|  2.23k|  gpointer *ptr = (gpointer *) pp;
  237|  2.23k|  gpointer ref;
  238|       |
  239|  2.23k|  ref = *ptr;
  240|  2.23k|  *ptr = NULL;
  241|       |
  242|  2.23k|  return ref;
  243|  2.23k|}
fu-dfu-firmware.c:g_steal_pointer:
  235|    128|{
  236|    128|  gpointer *ptr = (gpointer *) pp;
  237|    128|  gpointer ref;
  238|       |
  239|    128|  ref = *ptr;
  240|    128|  *ptr = NULL;
  241|       |
  242|    128|  return ref;
  243|    128|}
fu-dfuse-firmware.c:g_steal_pointer:
  235|  1.33k|{
  236|  1.33k|  gpointer *ptr = (gpointer *) pp;
  237|  1.33k|  gpointer ref;
  238|       |
  239|  1.33k|  ref = *ptr;
  240|  1.33k|  *ptr = NULL;
  241|       |
  242|  1.33k|  return ref;
  243|  1.33k|}
fu-firmware.c:g_steal_pointer:
  235|    128|{
  236|    128|  gpointer *ptr = (gpointer *) pp;
  237|    128|  gpointer ref;
  238|       |
  239|    128|  ref = *ptr;
  240|    128|  *ptr = NULL;
  241|       |
  242|    128|  return ref;
  243|    128|}
fu-input-stream.c:g_steal_pointer:
  235|  7.10k|{
  236|  7.10k|  gpointer *ptr = (gpointer *) pp;
  237|  7.10k|  gpointer ref;
  238|       |
  239|  7.10k|  ref = *ptr;
  240|  7.10k|  *ptr = NULL;
  241|       |
  242|  7.10k|  return ref;
  243|  7.10k|}
fu-memory-input-stream.c:g_steal_pointer:
  235|    567|{
  236|    567|  gpointer *ptr = (gpointer *) pp;
  237|    567|  gpointer ref;
  238|       |
  239|    567|  ref = *ptr;
  240|    567|  *ptr = NULL;
  241|       |
  242|    567|  return ref;
  243|    567|}
fu-mem.c:g_steal_pointer:
  235|    200|{
  236|    200|  gpointer *ptr = (gpointer *) pp;
  237|    200|  gpointer ref;
  238|       |
  239|    200|  ref = *ptr;
  240|    200|  *ptr = NULL;
  241|       |
  242|    200|  return ref;
  243|    200|}
fu-string.c:g_steal_pointer:
  235|    200|{
  236|    200|  gpointer *ptr = (gpointer *) pp;
  237|    200|  gpointer ref;
  238|       |
  239|    200|  ref = *ptr;
  240|    200|  *ptr = NULL;
  241|       |
  242|    200|  return ref;
  243|    200|}

fu-firmware.c:g_set_str:
  494|    102|{
  495|    102|  char *copy;
  496|       |
  497|    102|  if (*str_pointer == new_str ||
  ------------------
  |  Branch (497:7): [True: 21, False: 81]
  ------------------
  498|     81|      (*str_pointer && new_str && strcmp (*str_pointer, new_str) == 0))
  ------------------
  |  Branch (498:8): [True: 0, False: 81]
  |  Branch (498:24): [True: 0, False: 0]
  |  Branch (498:35): [True: 0, False: 0]
  ------------------
  499|     21|    return FALSE;
  ------------------
  |  |  925|     21|#define	FALSE	(0)
  ------------------
  500|       |
  501|     81|  copy = g_strdup (new_str);
  ------------------
  |  |  324|     81|#define g_strdup(x) g_strdup_inline (x)
  ------------------
  502|     81|  g_free (*str_pointer);
  503|     81|  *str_pointer = copy;
  504|       |
  505|     81|  return TRUE;
  ------------------
  |  |  929|     81|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     81|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  506|    102|}
fu-firmware.c:g_strdup_inline:
  310|     81|{
  311|     81|  if (__builtin_constant_p (!str) && !str)
  ------------------
  |  Branch (311:7): [True: 0, False: 81]
  |  Branch (311:38): [True: 0, False: 0]
  ------------------
  312|      0|    return NULL;
  313|       |
  314|     81|  if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str)))
  ------------------
  |  Branch (314:7): [True: 0, False: 81]
  |  Branch (314:39): [True: 0, False: 0]
  |  Branch (314:48): [True: 0, False: 0]
  ------------------
  315|      0|    {
  316|      0|      const size_t len = strlen (str) + 1;
  317|      0|      char *dup_str = (char *) g_malloc (len);
  318|      0|      return (char *) memcpy (dup_str, str, len);
  319|      0|    }
  320|       |
  321|     81|  return g_strdup (str);
  322|     81|}

fu-string.c:g_string_append_c_inline:
  197|  12.9k|{
  198|  12.9k|  if (G_LIKELY (gstring != NULL &&
  ------------------
  |  | 1244|  12.9k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  12.9k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  12.9k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  12.9k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  12.9k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  38.8k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 12.9k, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 12.9k, False: 49]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  12.9k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  12.9k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  12.9k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  12.9k|   else                                         \
  |  |  |  |  |  | 1240|  12.9k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  12.9k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  12.9k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  12.9k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  12.9k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 12.9k, False: 49]
  |  |  ------------------
  ------------------
  199|  12.9k|                gstring->len + 1 < gstring->allocated_len))
  200|  12.9k|    {
  201|  12.9k|      gstring->str[gstring->len++] = c;
  202|  12.9k|      gstring->str[gstring->len] = 0;
  203|  12.9k|    }
  204|     49|  else
  205|     49|    g_string_insert_c (gstring, -1, c);
  206|  12.9k|  return gstring;
  207|  12.9k|}

fu-fuzzer-firmware.c:FU_FUZZER:
 1805|    567|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                         \
 1806|    567|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }               \
  ------------------
  |  |  528|    567|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    567|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-dfu-firmware-struct.c:FU_IS_INPUT_STREAM:
 1719|    567|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|    567|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|    567|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|    567|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|    567|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|    567|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 567]
  |  |  |  |  ------------------
  |  |  |  | 2674|    567|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|    567|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 567, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 567]
  |  |  |  |  ------------------
  |  |  |  | 2676|    567|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|    567|  else \
  |  |  |  | 2678|    567|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|    567|  __r; \
  |  |  |  | 2680|    567|}))
  |  |  ------------------
  ------------------
fu-chunk.c:fu_chunk_get_type_once:
 2047|      1|#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2338|      1|  _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
  |  |  ------------------
  |  |  |  | 2316|      1|type_name##_get_type_once (void) \
  |  |  |  | 2317|      1|{ \
  |  |  |  | 2318|      1|  GType g_define_type_id = \
  |  |  |  | 2319|      1|        g_type_register_static_simple (TYPE_PARENT, \
  |  |  |  | 2320|      1|                                       g_intern_static_string (#TypeName), \
  |  |  |  | 2321|      1|                                       sizeof (TypeName##Class), \
  |  |  |  | 2322|      1|                                       (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \
  |  |  |  | 2323|      1|                                       sizeof (TypeName), \
  |  |  |  | 2324|      1|                                       (GInstanceInitFunc)(void (*)(void)) type_name##_init, \
  |  |  |  | 2325|      1|                                       (GTypeFlags) flags); \
  |  |  |  | 2326|      1|    { /* custom code follows */
  |  |  ------------------
  ------------------
              #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      1|    }					\
  |  | 2330|      1|  return g_define_type_id; \
  |  | 2331|      1|} /* closes type_name##_get_type_once() */
  ------------------
fu-chunk.c:fu_chunk_class_intern_init:
 2253|      1|static void     type_name##_class_intern_init (gpointer klass) \
 2254|      1|{ \
 2255|      1|  type_name##_parent_class = g_type_class_peek_parent (klass); \
 2256|      1|  if (TypeName##_private_offset != 0) \
  ------------------
  |  Branch (2256:7): [True: 0, False: 1]
  ------------------
 2257|      1|    g_type_class_adjust_private_offset (klass, &TypeName##_private_offset); \
 2258|      1|  type_name##_class_init ((TypeName##Class*) klass); \
 2259|      1|}
fu-chunk.c:FU_CHUNK:
 1611|  1.09k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1612|  1.09k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  1.09k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  1.09k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-chunk.c:FU_IS_CHUNK:
 1613|  5.31k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1614|  5.31k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  5.31k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  5.31k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  5.31k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  5.31k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  5.31k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 5.31k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  5.31k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  5.31k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 5.31k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 5.31k, False: 0]
  |  |  |  |  ------------------
  |  |  |  | 2676|  5.31k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|  5.31k|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|  5.31k|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  5.31k|  else \
  |  |  |  | 2678|  5.31k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  5.31k|  __r; \
  |  |  |  | 2680|  5.31k|}))
  |  |  ------------------
  ------------------
fu-dfu-firmware.c:fu_dfu_firmware_get_type_once:
 2047|      2|#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2338|      2|  _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
  |  |  ------------------
  |  |  |  | 2316|      2|type_name##_get_type_once (void) \
  |  |  |  | 2317|      2|{ \
  |  |  |  | 2318|      2|  GType g_define_type_id = \
  |  |  |  | 2319|      2|        g_type_register_static_simple (TYPE_PARENT, \
  |  |  |  | 2320|      2|                                       g_intern_static_string (#TypeName), \
  |  |  |  | 2321|      2|                                       sizeof (TypeName##Class), \
  |  |  |  | 2322|      2|                                       (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \
  |  |  |  | 2323|      2|                                       sizeof (TypeName), \
  |  |  |  | 2324|      2|                                       (GInstanceInitFunc)(void (*)(void)) type_name##_init, \
  |  |  |  | 2325|      2|                                       (GTypeFlags) flags); \
  |  |  |  | 2326|      2|    { /* custom code follows */
  |  |  ------------------
  ------------------
              #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      2|    }					\
  |  | 2330|      2|  return g_define_type_id; \
  |  | 2331|      2|} /* closes type_name##_get_type_once() */
  ------------------
fu-dfu-firmware.c:fu_dfu_firmware_class_intern_init:
 2253|      1|static void     type_name##_class_intern_init (gpointer klass) \
 2254|      1|{ \
 2255|      1|  type_name##_parent_class = g_type_class_peek_parent (klass); \
 2256|      1|  if (TypeName##_private_offset != 0) \
  ------------------
  |  Branch (2256:7): [True: 1, False: 0]
  ------------------
 2257|      1|    g_type_class_adjust_private_offset (klass, &TypeName##_private_offset); \
 2258|      1|  type_name##_class_init ((TypeName##Class*) klass); \
 2259|      1|}
fu-dfu-firmware.c:FU_FIRMWARE_CLASS:
 1717|      1|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_CLASS (gpointer ptr) {        \
 1718|      1|    return G_TYPE_CHECK_CLASS_CAST (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }         \
  ------------------
  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  ------------------
  ------------------
fu-dfu-firmware.c:fu_dfu_firmware_get_instance_private:
 2293|  2.69k|type_name##_get_instance_private (TypeName *self) \
 2294|  2.69k|{ \
 2295|  2.69k|  return (G_STRUCT_MEMBER_P (self, TypeName##_private_offset)); \
  ------------------
  |  |  971|  2.69k|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2296|  2.69k|} \
fu-dfu-firmware.c:FU_IS_DFU_FIRMWARE:
 1719|  1.49k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|  1.49k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  1.49k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  1.49k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.49k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  1.49k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  1.49k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 1.49k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  1.49k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  1.49k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 1.49k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 1.49k]
  |  |  |  |  ------------------
  |  |  |  | 2676|  1.49k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  1.49k|  else \
  |  |  |  | 2678|  1.49k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  1.49k|  __r; \
  |  |  |  | 2680|  1.49k|}))
  |  |  ------------------
  ------------------
fu-dfu-firmware.c:FU_FIRMWARE:
 1715|  1.13k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|  1.13k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  1.13k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  1.13k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-dfuse-firmware.c:fu_dfuse_firmware_get_type_once:
 2047|      2|#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2338|      2|  _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
  |  |  ------------------
  |  |  |  | 2316|      2|type_name##_get_type_once (void) \
  |  |  |  | 2317|      2|{ \
  |  |  |  | 2318|      2|  GType g_define_type_id = \
  |  |  |  | 2319|      2|        g_type_register_static_simple (TYPE_PARENT, \
  |  |  |  | 2320|      2|                                       g_intern_static_string (#TypeName), \
  |  |  |  | 2321|      2|                                       sizeof (TypeName##Class), \
  |  |  |  | 2322|      2|                                       (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \
  |  |  |  | 2323|      2|                                       sizeof (TypeName), \
  |  |  |  | 2324|      2|                                       (GInstanceInitFunc)(void (*)(void)) type_name##_init, \
  |  |  |  | 2325|      2|                                       (GTypeFlags) flags); \
  |  |  |  | 2326|      2|    { /* custom code follows */
  |  |  ------------------
  ------------------
              #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      2|    }					\
  |  | 2330|      2|  return g_define_type_id; \
  |  | 2331|      2|} /* closes type_name##_get_type_once() */
  ------------------
fu-dfuse-firmware.c:fu_dfuse_firmware_class_intern_init:
 2253|      1|static void     type_name##_class_intern_init (gpointer klass) \
 2254|      1|{ \
 2255|      1|  type_name##_parent_class = g_type_class_peek_parent (klass); \
 2256|      1|  if (TypeName##_private_offset != 0) \
  ------------------
  |  Branch (2256:7): [True: 0, False: 1]
  ------------------
 2257|      1|    g_type_class_adjust_private_offset (klass, &TypeName##_private_offset); \
 2258|      1|  type_name##_class_init ((TypeName##Class*) klass); \
 2259|      1|}
fu-dfuse-firmware.c:FU_FIRMWARE_CLASS:
 1717|      1|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_CLASS (gpointer ptr) {        \
 1718|      1|    return G_TYPE_CHECK_CLASS_CAST (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }         \
  ------------------
  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  ------------------
  ------------------
fu-dfuse-firmware.c:FU_DFU_FIRMWARE:
 1715|  1.19k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|  1.19k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  1.19k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  1.19k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-dfuse-firmware.c:FU_DFUSE_FIRMWARE:
 1715|    457|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|    457|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|    457|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    457|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-dfuse-firmware.c:FU_FIRMWARE:
 1715|    128|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|    128|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|    128|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    128|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-firmware.c:fu_firmware_get_type_once:
 2047|      2|#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2338|      2|  _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
  |  |  ------------------
  |  |  |  | 2316|      2|type_name##_get_type_once (void) \
  |  |  |  | 2317|      2|{ \
  |  |  |  | 2318|      2|  GType g_define_type_id = \
  |  |  |  | 2319|      2|        g_type_register_static_simple (TYPE_PARENT, \
  |  |  |  | 2320|      2|                                       g_intern_static_string (#TypeName), \
  |  |  |  | 2321|      2|                                       sizeof (TypeName##Class), \
  |  |  |  | 2322|      2|                                       (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \
  |  |  |  | 2323|      2|                                       sizeof (TypeName), \
  |  |  |  | 2324|      2|                                       (GInstanceInitFunc)(void (*)(void)) type_name##_init, \
  |  |  |  | 2325|      2|                                       (GTypeFlags) flags); \
  |  |  |  | 2326|      2|    { /* custom code follows */
  |  |  ------------------
  ------------------
              #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      2|    }					\
  |  | 2330|      2|  return g_define_type_id; \
  |  | 2331|      2|} /* closes type_name##_get_type_once() */
  ------------------
fu-firmware.c:fu_firmware_class_intern_init:
 2253|      1|static void     type_name##_class_intern_init (gpointer klass) \
 2254|      1|{ \
 2255|      1|  type_name##_parent_class = g_type_class_peek_parent (klass); \
 2256|      1|  if (TypeName##_private_offset != 0) \
  ------------------
  |  Branch (2256:7): [True: 1, False: 0]
  ------------------
 2257|      1|    g_type_class_adjust_private_offset (klass, &TypeName##_private_offset); \
 2258|      1|  type_name##_class_init ((TypeName##Class*) klass); \
 2259|      1|}
fu-firmware.c:fu_firmware_get_instance_private:
 2293|  10.0k|type_name##_get_instance_private (TypeName *self) \
 2294|  10.0k|{ \
 2295|  10.0k|  return (G_STRUCT_MEMBER_P (self, TypeName##_private_offset)); \
  ------------------
  |  |  971|  10.0k|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2296|  10.0k|} \
fu-firmware.c:FU_IS_FIRMWARE:
 1719|  7.95k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|  7.95k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  7.95k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  7.95k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  7.95k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  7.95k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  7.95k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 7.95k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  7.95k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  7.95k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 7.95k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 2.54k, False: 5.41k]
  |  |  |  |  ------------------
  |  |  |  | 2676|  7.95k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|  2.54k|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|  2.54k|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  7.95k|  else \
  |  |  |  | 2678|  7.95k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  7.95k|  __r; \
  |  |  |  | 2680|  7.95k|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_FIRMWARE_GET_CLASS:
 1723|  2.91k|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_GET_CLASS (gpointer ptr) {    \
 1724|  2.91k|    return G_TYPE_INSTANCE_GET_CLASS (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }       \
  ------------------
  |  |  571|  2.91k|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2667|  2.91k|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_IS_INPUT_STREAM:
 1719|    567|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|    567|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|    567|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|    567|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    567|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|    567|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|    567|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 567]
  |  |  |  |  ------------------
  |  |  |  | 2674|    567|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|    567|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 567, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 567]
  |  |  |  |  ------------------
  |  |  |  | 2676|    567|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|    567|  else \
  |  |  |  | 2678|    567|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|    567|  __r; \
  |  |  |  | 2680|    567|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_IS_CHUNK:
 1613|  1.09k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1614|  1.09k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  1.09k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  1.09k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.09k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  1.09k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  1.09k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 1.09k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  1.09k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  1.09k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 1.09k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 1.09k, False: 0]
  |  |  |  |  ------------------
  |  |  |  | 2676|  1.09k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|  1.09k|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|  1.09k|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  1.09k|  else \
  |  |  |  | 2678|  1.09k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  1.09k|  __r; \
  |  |  |  | 2680|  1.09k|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_IS_FIRMWARE_CLASS:
 1721|      1|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME##_CLASS (gpointer ptr) {                   \
 1722|      1|    return G_TYPE_CHECK_CLASS_TYPE (ptr, module_obj_name##_get_type ()); }                               \
  ------------------
  |  |  610|      1|#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type)                (_G_TYPE_CCT ((g_class), (g_type)))
  |  |  ------------------
  |  |  |  | 2681|      1|#  define _G_TYPE_CCT(cp, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2682|      1|  GTypeClass *__class = (GTypeClass*) cp; GType __t = gt; gboolean __r; \
  |  |  |  | 2683|      1|  if (!__class) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2683:7): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  | 2684|      1|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2685|      1|  else if (__class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2685:12): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  | 2686|      1|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2687|      1|  else \
  |  |  |  | 2688|      1|    __r = g_type_check_class_is_a (__class, __t); \
  |  |  |  | 2689|      1|  __r; \
  |  |  |  | 2690|      1|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_FIRMWARE:
 1715|  3.58k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|  3.58k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  3.58k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  3.58k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-fuzzer.c:FU_FUZZER_GET_IFACE:
 1809|    567|  G_GNUC_UNUSED static inline ModuleObjName##Interface * MODULE##_##OBJ_NAME##_GET_IFACE (gpointer ptr) {  \
 1810|    567|    return G_TYPE_INSTANCE_GET_INTERFACE (ptr, module_obj_name##_get_type (), ModuleObjName##Interface); } \
  ------------------
  |  |  584|    567|#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2668|    567|#define _G_TYPE_IGI(ip, gt, ct)         ((ct*) g_type_interface_peek (((GTypeInstance*) ip)->g_class, gt))
  |  |  ------------------
  ------------------
fu-input-stream.c:fu_input_stream_get_type_once:
 1844|      1|#define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2338|      1|  _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
  |  |  ------------------
  |  |  |  | 2316|      1|type_name##_get_type_once (void) \
  |  |  |  | 2317|      1|{ \
  |  |  |  | 2318|      1|  GType g_define_type_id = \
  |  |  |  | 2319|      1|        g_type_register_static_simple (TYPE_PARENT, \
  |  |  |  | 2320|      1|                                       g_intern_static_string (#TypeName), \
  |  |  |  | 2321|      1|                                       sizeof (TypeName##Class), \
  |  |  |  | 2322|      1|                                       (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \
  |  |  |  | 2323|      1|                                       sizeof (TypeName), \
  |  |  |  | 2324|      1|                                       (GInstanceInitFunc)(void (*)(void)) type_name##_init, \
  |  |  |  | 2325|      1|                                       (GTypeFlags) flags); \
  |  |  |  | 2326|      1|    { /* custom code follows */
  |  |  ------------------
  ------------------
              #define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      1|    }					\
  |  | 2330|      1|  return g_define_type_id; \
  |  | 2331|      1|} /* closes type_name##_get_type_once() */
  ------------------
fu-input-stream.c:fu_input_stream_class_intern_init:
 2253|      1|static void     type_name##_class_intern_init (gpointer klass) \
 2254|      1|{ \
 2255|      1|  type_name##_parent_class = g_type_class_peek_parent (klass); \
 2256|      1|  if (TypeName##_private_offset != 0) \
  ------------------
  |  Branch (2256:7): [True: 0, False: 1]
  ------------------
 2257|      1|    g_type_class_adjust_private_offset (klass, &TypeName##_private_offset); \
 2258|      1|  type_name##_class_init ((TypeName##Class*) klass); \
 2259|      1|}
fu-input-stream.c:FU_IS_INPUT_STREAM:
 1719|  14.5k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|  14.5k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  14.5k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  14.5k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  14.5k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  14.5k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  14.5k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 14.5k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  14.5k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  14.5k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 14.5k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 14.5k]
  |  |  |  |  ------------------
  |  |  |  | 2676|  14.5k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  14.5k|  else \
  |  |  |  | 2678|  14.5k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  14.5k|  __r; \
  |  |  |  | 2680|  14.5k|}))
  |  |  ------------------
  ------------------
fu-input-stream.c:FU_INPUT_STREAM_GET_CLASS:
 1723|  22.5k|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_GET_CLASS (gpointer ptr) {    \
 1724|  22.5k|    return G_TYPE_INSTANCE_GET_CLASS (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }       \
  ------------------
  |  |  571|  22.5k|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2667|  22.5k|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  ------------------
  ------------------
fu-input-stream.c:FU_INPUT_STREAM:
 1715|  15.6k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|  15.6k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  15.6k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  15.6k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-memory-input-stream.c:fu_memory_input_stream_get_type_once:
 2047|      1|#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2338|      1|  _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
  |  |  ------------------
  |  |  |  | 2316|      1|type_name##_get_type_once (void) \
  |  |  |  | 2317|      1|{ \
  |  |  |  | 2318|      1|  GType g_define_type_id = \
  |  |  |  | 2319|      1|        g_type_register_static_simple (TYPE_PARENT, \
  |  |  |  | 2320|      1|                                       g_intern_static_string (#TypeName), \
  |  |  |  | 2321|      1|                                       sizeof (TypeName##Class), \
  |  |  |  | 2322|      1|                                       (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \
  |  |  |  | 2323|      1|                                       sizeof (TypeName), \
  |  |  |  | 2324|      1|                                       (GInstanceInitFunc)(void (*)(void)) type_name##_init, \
  |  |  |  | 2325|      1|                                       (GTypeFlags) flags); \
  |  |  |  | 2326|      1|    { /* custom code follows */
  |  |  ------------------
  ------------------
              #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      1|    }					\
  |  | 2330|      1|  return g_define_type_id; \
  |  | 2331|      1|} /* closes type_name##_get_type_once() */
  ------------------
fu-memory-input-stream.c:fu_memory_input_stream_class_intern_init:
 2253|      1|static void     type_name##_class_intern_init (gpointer klass) \
 2254|      1|{ \
 2255|      1|  type_name##_parent_class = g_type_class_peek_parent (klass); \
 2256|      1|  if (TypeName##_private_offset != 0) \
  ------------------
  |  Branch (2256:7): [True: 0, False: 1]
  ------------------
 2257|      1|    g_type_class_adjust_private_offset (klass, &TypeName##_private_offset); \
 2258|      1|  type_name##_class_init ((TypeName##Class*) klass); \
 2259|      1|}
fu-memory-input-stream.c:FU_INPUT_STREAM_CLASS:
 1717|      1|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_CLASS (gpointer ptr) {        \
 1718|      1|    return G_TYPE_CHECK_CLASS_CAST (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }         \
  ------------------
  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  ------------------
  ------------------
fu-memory-input-stream.c:FU_MEMORY_INPUT_STREAM:
 1611|  22.5k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1612|  22.5k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  22.5k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  22.5k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-memory-input-stream.c:FU_INPUT_STREAM:
 1715|    567|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|    567|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|    567|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    567|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------

