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|    313|{
  146|    313|	static GQuark quark = 0;
  147|    313|	if (!quark) {
  ------------------
  |  Branch (147:6): [True: 1, False: 312]
  ------------------
  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|    313|	return quark;
  154|    313|}

fu_byte_array_set_size:
  230|    421|{
  231|    421|	guint oldlength = array->len;
  232|    421|	g_return_if_fail(array != NULL);
  ------------------
  |  |  650|    421|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    421|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    421|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    421|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    421|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    421| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    421|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    421|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    421|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 421, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    421|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    421|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    421|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    421|   else                                         \
  |  |  |  |  |  |  |  | 1240|    421|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    421|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    421|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    421|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    421|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 421, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    421|      { } \
  |  |  653|    421|    else \
  |  |  654|    421|      { \
  |  |  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|    421|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    421|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 421]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  233|    421|	g_return_if_fail(length < G_MAXUINT);
  ------------------
  |  |  650|    421|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    421|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    421|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    421|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    421|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    421| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    421|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    421|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    421|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 421, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    421|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    421|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    421|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    421|   else                                         \
  |  |  |  |  |  |  |  | 1240|    421|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    421|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    421|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    421|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    421|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 421, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    421|      { } \
  |  |  653|    421|    else \
  |  |  654|    421|      { \
  |  |  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|    421|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    421|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 421]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|    421|	g_byte_array_set_size(array, length);
  235|    421|	if (length > oldlength)
  ------------------
  |  Branch (235:6): [True: 421, False: 0]
  ------------------
  236|    421|		memset(array->data + oldlength, data, length - oldlength);
  237|    421|}

fu_size_checked_add:
  112|    438|{
  113|    438|	gsize tmp = 0;
  114|    438|	if (!g_size_checked_add(&tmp, a, b))
  ------------------
  |  |  472|    438|    (!__builtin_add_overflow(a, b, dest))
  ------------------
  |  Branch (114:6): [True: 0, False: 438]
  ------------------
  115|      0|		return G_MAXSIZE;
  ------------------
  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  116|    438|	return tmp;
  117|    438|}
fu_size_checked_inc:
  135|  1.01k|{
  136|  1.01k|	gsize value_new;
  137|       |
  138|  1.01k|	g_return_val_if_fail(value != NULL, FALSE);
  ------------------
  |  |  663|  1.01k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.01k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.01k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.01k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.01k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.01k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.01k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.01k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.01k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.01k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.01k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.01k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.01k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.01k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.01k|      G_PASTE (_g_boolean_var_, uniq) = 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.01k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.01k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.01k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.01k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.01k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.01k|      { } \
  |  |  666|  1.01k|    else \
  |  |  667|  1.01k|      { \
  |  |  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|  1.01k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.01k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.01k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  139|  1.01k|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|  1.01k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.01k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.01k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.01k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.01k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.01k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.01k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.01k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.02k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.01k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.01k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.01k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.01k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.01k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.01k|      G_PASTE (_g_boolean_var_, uniq) = 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.01k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.01k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.01k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.01k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.01k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.01k|      { } \
  |  |  666|  1.01k|    else \
  |  |  667|  1.01k|      { \
  |  |  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|  1.01k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.01k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.01k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  140|       |
  141|  1.01k|	value_new = *value;
  142|  1.01k|	if (!g_size_checked_add(&value_new, *value, len)) {
  ------------------
  |  |  472|  1.01k|    (!__builtin_add_overflow(a, b, dest))
  ------------------
  |  Branch (142:6): [True: 0, False: 1.01k]
  ------------------
  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|  1.01k|	*value = value_new;
  154|  1.01k|	return TRUE;
  ------------------
  |  |  929|  1.01k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.01k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  155|  1.01k|}

fu_edid_set_pnp_id:
   56|    202|{
   57|    202|	g_return_if_fail(FU_IS_EDID(self));
  ------------------
  |  |  650|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    202|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    202|      { } \
  |  |  653|    202|    else \
  |  |  654|    202|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuEdid"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   58|    202|	if (g_strcmp0(self->pnp_id, pnp_id) == 0)
  ------------------
  |  Branch (58:6): [True: 0, False: 202]
  ------------------
   59|      0|		return;
   60|    202|	g_set_str(&self->pnp_id, pnp_id);
   61|    202|}
fu_edid_set_serial_number:
  127|    199|{
  128|    199|	g_return_if_fail(FU_IS_EDID(self));
  ------------------
  |  |  650|    199|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    199|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    199|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    199|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    199|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    199| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    199|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    199|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    199|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 199, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    199|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    199|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    199|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    199|   else                                         \
  |  |  |  |  |  |  |  | 1240|    199|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    199|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    199|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    199|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    199|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 199, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    199|      { } \
  |  |  653|    199|    else \
  |  |  654|    199|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuEdid"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    199|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    199|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 199]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  129|    199|	if (g_strcmp0(self->serial_number, serial_number) == 0)
  ------------------
  |  Branch (129:6): [True: 0, False: 199]
  ------------------
  130|      0|		return;
  131|    199|	g_set_str(&self->serial_number, serial_number);
  132|    199|}
fu_edid_set_product_code:
  197|    202|{
  198|    202|	g_return_if_fail(FU_IS_EDID(self));
  ------------------
  |  |  650|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    202|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    202|      { } \
  |  |  653|    202|    else \
  |  |  654|    202|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuEdid"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  199|    202|	self->product_code = product_code;
  200|    202|}
fu-edid.c:fu_edid_class_init:
  463|      1|{
  464|      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)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  465|      1|	FuFirmwareClass *firmware_class = FU_FIRMWARE_CLASS(klass);
  466|      1|	object_class->finalize = fu_edid_finalize;
  467|      1|	firmware_class->parse = fu_edid_parse;
  468|      1|	firmware_class->write = fu_edid_write;
  469|      1|	firmware_class->build = fu_edid_build;
  470|      1|	firmware_class->export = fu_edid_export;
  471|      1|	fu_firmware_set_size_max(firmware_class, 1 * FU_MB);
  ------------------
  |  |   81|      1|#define FU_MB (1ull << 20)
  ------------------
  472|      1|}
fu-edid.c:fu_edid_finalize:
  452|    394|{
  453|    394|	FuEdid *self = FU_EDID(obj);
  454|    394|	g_free(self->pnp_id);
  455|    394|	g_free(self->serial_number);
  456|    394|	g_free(self->product_name);
  457|    394|	g_free(self->eisa_id);
  458|    394|	G_OBJECT_CLASS(fu_edid_parent_class)->finalize(obj);
  ------------------
  |  |   61|    394|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    394|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    394|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  459|    394|}
fu-edid.c:fu_edid_parse:
  256|    394|{
  257|    394|	FuEdid *self = FU_EDID(firmware);
  258|    394|	const guint8 *manu_id;
  259|    394|	gsize offset = 0;
  260|    394|	g_autofree gchar *pnp_id = NULL;
  ------------------
  |  | 1386|    394|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  261|    394|	g_autoptr(FuStructEdid) st = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  262|       |
  263|       |	/* parse header */
  264|    394|	st = fu_struct_edid_parse_stream(stream, offset, error);
  265|    394|	if (st == NULL)
  ------------------
  |  Branch (265:6): [True: 192, False: 202]
  ------------------
  266|    192|		return FALSE;
  ------------------
  |  |  925|    192|#define	FALSE	(0)
  ------------------
  267|       |
  268|       |	/* decode the PNP ID from three 5 bit words packed into 2 bytes
  269|       |	 * /--00--\/--01--\
  270|       |	 * 7654321076543210
  271|       |	 * |\---/\---/\---/
  272|       |	 * R  C1   C2   C3 */
  273|    202|	manu_id = fu_struct_edid_get_manufacturer_name(st, NULL);
  274|    202|	pnp_id = g_strdup_printf(
  275|    202|	    "%c%c%c",
  276|    202|	    'A' + ((manu_id[0] & 0b01111100) >> 2) - 1,
  277|    202|	    'A' + (((manu_id[0] & 0b00000011) << 3) + ((manu_id[1] & 0b11100000) >> 5)) - 1,
  278|    202|	    'A' + (manu_id[1] & 0b00011111) - 1);
  279|    202|	fu_edid_set_pnp_id(self, pnp_id);
  280|    202|	fu_edid_set_product_code(self, fu_struct_edid_get_product_code(st));
  281|    202|	if (fu_struct_edid_get_serial_number(st) != 0x0) {
  ------------------
  |  Branch (281:6): [True: 199, False: 3]
  ------------------
  282|    199|		g_autofree gchar *serial_number =
  ------------------
  |  | 1386|    199|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|    199|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  283|    199|		    g_strdup_printf("%u", fu_struct_edid_get_serial_number(st));
  284|    199|		fu_edid_set_serial_number(self, serial_number);
  285|    199|	}
  286|       |
  287|       |	/* parse 4x18 byte sections */
  288|    202|	if (!fu_size_checked_inc(&offset, FU_STRUCT_EDID_OFFSET_DATA_BLOCKS, error)) {
  ------------------
  |  |  136|    202|#define FU_STRUCT_EDID_OFFSET_DATA_BLOCKS 0x36
  ------------------
  |  Branch (288:6): [True: 0, False: 202]
  ------------------
  289|      0|		g_prefix_error_literal(error, "data blocks offset overflow: ");
  290|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  291|      0|	}
  292|  1.01k|	for (guint i = 0; i < 4; i++) {
  ------------------
  |  Branch (292:20): [True: 808, False: 202]
  ------------------
  293|    808|		if (!fu_edid_parse_descriptor(self, stream, offset, error))
  ------------------
  |  Branch (293:7): [True: 0, False: 808]
  ------------------
  294|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  295|    808|		if (!fu_size_checked_inc(&offset, FU_STRUCT_EDID_DESCRIPTOR_SIZE, error)) {
  ------------------
  |  |   89|    808|#define FU_STRUCT_EDID_DESCRIPTOR_SIZE 0x12
  ------------------
  |  Branch (295:7): [True: 0, False: 808]
  ------------------
  296|      0|			g_prefix_error_literal(error, "descriptor offset overflow: ");
  297|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  298|      0|		}
  299|    808|	}
  300|       |
  301|       |	/* success */
  302|    202|	return TRUE;
  ------------------
  |  |  929|    202|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    202|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  303|    202|}
fu-edid.c:fu_edid_parse_descriptor:
  219|    808|{
  220|    808|	gsize buf2sz = 0;
  221|    808|	const guint8 *buf2;
  222|    808|	g_autoptr(FuStructEdidDescriptor) st = NULL;
  ------------------
  |  | 1381|    808|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    808|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  223|       |
  224|    808|	st = fu_struct_edid_descriptor_parse_stream(stream, offset, error);
  225|    808|	if (st == NULL)
  ------------------
  |  Branch (225:6): [True: 0, False: 808]
  ------------------
  226|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  227|       |
  228|       |	/* ignore pixel clock data */
  229|    808|	if (fu_struct_edid_descriptor_get_kind(st) != 0x0 ||
  ------------------
  |  Branch (229:6): [True: 388, False: 420]
  ------------------
  230|    420|	    fu_struct_edid_descriptor_get_subkind(st) != 0x0)
  ------------------
  |  Branch (230:6): [True: 43, False: 377]
  ------------------
  231|    431|		return TRUE;
  ------------------
  |  |  929|    431|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    431|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  232|       |
  233|    377|	buf2 = fu_struct_edid_descriptor_get_data(st, &buf2sz);
  234|    377|	if (fu_struct_edid_descriptor_get_tag(st) == FU_EDID_DESCRIPTOR_TAG_DISPLAY_PRODUCT_NAME) {
  ------------------
  |  Branch (234:6): [True: 26, False: 351]
  ------------------
  235|     26|		g_free(self->product_name);
  236|     26|		self->product_name = fu_edid_strsafe(buf2, buf2sz);
  237|    351|	} else if (fu_struct_edid_descriptor_get_tag(st) ==
  ------------------
  |  Branch (237:13): [True: 180, False: 171]
  ------------------
  238|    351|		   FU_EDID_DESCRIPTOR_TAG_DISPLAY_PRODUCT_SERIAL_NUMBER) {
  239|    180|		g_free(self->serial_number);
  240|    180|		self->serial_number = fu_edid_strsafe(buf2, buf2sz);
  241|    180|	} else if (fu_struct_edid_descriptor_get_tag(st) ==
  ------------------
  |  Branch (241:13): [True: 28, False: 143]
  ------------------
  242|    171|		   FU_EDID_DESCRIPTOR_TAG_ALPHANUMERIC_DATA_STRING) {
  243|     28|		g_free(self->eisa_id);
  244|     28|		self->eisa_id = fu_edid_strsafe(buf2, buf2sz);
  245|     28|	}
  246|       |
  247|       |	/* success */
  248|    377|	return TRUE;
  ------------------
  |  |  929|    377|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    377|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  249|    808|}
fu-edid.c:fu_edid_strsafe:
  205|    234|{
  206|    234|	g_autoptr(GString) str = g_string_new(NULL);
  ------------------
  |  | 1381|    234|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    234|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  207|  2.09k|	for (gsize i = 0; i < bufsz; i++) {
  ------------------
  |  Branch (207:20): [True: 2.01k, False: 81]
  ------------------
  208|  2.01k|		if (!g_ascii_isprint((gchar)buf[i]))
  ------------------
  |  |   80|  2.01k|  ((g_ascii_table[(guchar) (c)] & G_ASCII_PRINT) != 0)
  ------------------
  |  Branch (208:7): [True: 153, False: 1.86k]
  ------------------
  209|    153|			break;
  210|  1.86k|		g_string_append_c(str, (gchar)buf[i]);
  ------------------
  |  |  210|  1.86k|  g_string_append_c_inline (gstr, c)
  ------------------
  211|  1.86k|	}
  212|    234|	if (str->len == 0)
  ------------------
  |  Branch (212:6): [True: 26, False: 208]
  ------------------
  213|     26|		return NULL;
  214|    208|	return g_string_free_and_steal(g_steal_pointer(&str));
  ------------------
  |  |  247|    208|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  215|    234|}
fu-edid.c:fu_edid_write:
  307|    202|{
  308|    202|	FuEdid *self = FU_EDID(firmware);
  309|    202|	g_autoptr(FuStructEdid) st = fu_struct_edid_new();
  ------------------
  |  | 1381|    202|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    202|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  310|    202|	guint64 serial_number = 0;
  311|    202|	gsize offset_desc = FU_STRUCT_EDID_OFFSET_DATA_BLOCKS;
  ------------------
  |  |  136|    202|#define FU_STRUCT_EDID_OFFSET_DATA_BLOCKS 0x36
  ------------------
  312|       |
  313|    202|	fu_struct_edid_set_product_code(st, self->product_code);
  314|       |
  315|       |	/* if this is a integer, store it in the header rather than in a descriptor */
  316|    202|	if (fu_strtoull(self->serial_number,
  ------------------
  |  Branch (316:6): [True: 81, False: 121]
  ------------------
  317|    202|			&serial_number,
  318|    202|			0,
  319|    202|			G_MAXUINT32,
  ------------------
  |  |   98|    202|#define G_MAXUINT32	((guint32) 0xffffffff)
  ------------------
  320|    202|			FU_INTEGER_BASE_AUTO,
  321|    202|			NULL))
  322|     81|		fu_struct_edid_set_serial_number(st, serial_number);
  323|       |
  324|       |	/* store descriptors */
  325|    202|	if (self->product_name != NULL) {
  ------------------
  |  Branch (325:6): [True: 12, False: 190]
  ------------------
  326|     12|		g_autoptr(FuStructEdidDescriptor) st_desc = fu_struct_edid_descriptor_new();
  ------------------
  |  | 1381|     12|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     12|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  327|     12|		fu_struct_edid_descriptor_set_tag(st_desc,
  328|     12|						  FU_EDID_DESCRIPTOR_TAG_DISPLAY_PRODUCT_NAME);
  329|     12|		if (!fu_struct_edid_descriptor_set_data(st_desc,
  ------------------
  |  Branch (329:7): [True: 0, False: 12]
  ------------------
  330|     12|							(const guint8 *)self->product_name,
  331|     12|							strlen(self->product_name),
  332|     12|							error)) {
  333|      0|			g_prefix_error_literal(error, "cannot write product name: ");
  334|      0|			return NULL;
  335|      0|		}
  336|     12|		memcpy(st->buf->data + offset_desc,
  337|     12|		       st_desc->buf->data,
  338|     12|		       st_desc->buf->len); /* nocheck:blocked */
  339|     12|		offset_desc += st_desc->buf->len;
  340|     12|	}
  341|    202|	if (self->serial_number != NULL) {
  ------------------
  |  Branch (341:6): [True: 198, False: 4]
  ------------------
  342|    198|		g_autoptr(FuStructEdidDescriptor) st_desc = fu_struct_edid_descriptor_new();
  ------------------
  |  | 1381|    198|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    198|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  343|    198|		fu_struct_edid_descriptor_set_tag(
  344|    198|		    st_desc,
  345|    198|		    FU_EDID_DESCRIPTOR_TAG_DISPLAY_PRODUCT_SERIAL_NUMBER);
  346|    198|		if (!fu_struct_edid_descriptor_set_data(st_desc,
  ------------------
  |  Branch (346:7): [True: 0, False: 198]
  ------------------
  347|    198|							(const guint8 *)self->serial_number,
  348|    198|							strlen(self->serial_number),
  349|    198|							error)) {
  350|      0|			g_prefix_error_literal(error, "cannot write serial number: ");
  351|      0|			return NULL;
  352|      0|		}
  353|    198|		memcpy(st->buf->data + offset_desc,
  354|    198|		       st_desc->buf->data,
  355|    198|		       st_desc->buf->len); /* nocheck:blocked */
  356|    198|		offset_desc += st_desc->buf->len;
  357|    198|	}
  358|    202|	if (self->eisa_id != NULL) {
  ------------------
  |  Branch (358:6): [True: 9, False: 193]
  ------------------
  359|      9|		g_autoptr(FuStructEdidDescriptor) st_desc = fu_struct_edid_descriptor_new();
  ------------------
  |  | 1381|      9|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      9|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  360|      9|		fu_struct_edid_descriptor_set_tag(st_desc,
  361|      9|						  FU_EDID_DESCRIPTOR_TAG_ALPHANUMERIC_DATA_STRING);
  362|      9|		if (!fu_struct_edid_descriptor_set_data(st_desc,
  ------------------
  |  Branch (362:7): [True: 0, False: 9]
  ------------------
  363|      9|							(const guint8 *)self->eisa_id,
  364|      9|							strlen(self->eisa_id),
  365|      9|							error)) {
  366|      0|			g_prefix_error_literal(error, "cannot write EISA ID: ");
  367|      0|			return NULL;
  368|      0|		}
  369|      9|		memcpy(st->buf->data + offset_desc,
  370|      9|		       st_desc->buf->data,
  371|      9|		       st_desc->buf->len); /* nocheck:blocked */
  372|      9|	}
  373|       |
  374|       |	/* success */
  375|    202|	return g_steal_pointer(&st->buf);
  ------------------
  |  |  247|    202|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  376|    202|}
fu-edid.c:fu_edid_init:
  476|    394|{
  477|    394|}

fu_firmware_add_flag:
  107|    394|{
  108|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  109|    394|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  110|    394|	priv->flags |= flag;
  111|    394|}
fu_firmware_has_flag:
  126|    394|{
  127|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  128|    394|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  129|    394|	return (priv->flags & flag) > 0;
  130|    394|}
fu_firmware_set_offset:
  377|    394|{
  378|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  379|    394|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  380|    394|	priv->offset = offset;
  381|    394|}
fu_firmware_set_parent:
  430|    394|{
  431|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  432|    394|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  433|       |
  434|    394|	if (priv->parent != NULL)
  ------------------
  |  Branch (434:6): [True: 0, False: 394]
  ------------------
  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|    394|	if (parent != NULL)
  ------------------
  |  Branch (436:6): [True: 0, False: 394]
  ------------------
  437|      0|		g_object_add_weak_pointer(G_OBJECT(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)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  438|    394|	priv->parent = parent;
  439|    394|}
fu_firmware_set_size_max:
  500|      2|{
  501|      2|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(klass);
  502|      2|	cpriv->size_max = size_max;
  503|      2|}
fu_firmware_set_bytes:
  570|    394|{
  571|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  572|    394|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  573|    394|	g_return_if_fail(bytes != NULL);
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  574|    394|	if (priv->bytes == bytes)
  ------------------
  |  Branch (574:6): [True: 0, False: 394]
  ------------------
  575|      0|		return;
  576|    394|	if (priv->bytes != NULL)
  ------------------
  |  Branch (576:6): [True: 0, False: 394]
  ------------------
  577|      0|		g_bytes_unref(priv->bytes);
  578|    394|	priv->bytes = g_bytes_ref(bytes);
  579|       |
  580|       |	/* the input stream is no longer valid */
  581|       |	g_clear_object(&priv->stream);
  ------------------
  |  |  695|    394|#define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
  |  |  ------------------
  |  |  |  |  136|    394|  G_STMT_START                                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  137|    394|  {                                                      \
  |  |  |  |  138|    394|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  139|    394|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    394|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  140|    394|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    394|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  141|    394|    *_pp = NULL;                                         \
  |  |  |  |  142|    394|    if (_ptr)                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (142:9): [True: 0, False: 394]
  |  |  |  |  ------------------
  |  |  |  |  143|    394|      (destroy) (_ptr);                                  \
  |  |  |  |  144|    394|  }                                                      \
  |  |  |  |  145|    394|  G_STMT_END                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  146|    394|  GLIB_AVAILABLE_MACRO_IN_2_34
  |  |  ------------------
  ------------------
  582|    394|}
fu_firmware_parse_stream:
 1095|    394|{
 1096|    394|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1097|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1098|    394|	gsize streamsz = 0;
 1099|    394|	g_autoptr(FuInputStream) partial_stream = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1100|    394|	g_autoptr(FuInputStream) seekable_stream = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1101|    394|	g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1102|       |
 1103|    394|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1104|    394|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1105|    394|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1106|       |
 1107|       |	/* sanity check */
 1108|    394|	if (fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_DONE_PARSE)) {
  ------------------
  |  Branch (1108:6): [True: 0, False: 394]
  ------------------
 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|    394|	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|    788|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|    394|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|    394|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|    394|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|    394|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 394]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|    394|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|    394|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 394, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 394]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|    394|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|    394|  else \
  |  |  |  |  |  | 2678|    394|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|    394|  __r; \
  |  |  |  |  |  | 2680|    394|}))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|    394|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1117:6): [True: 0, False: 394]
  |  Branch (1117:32): [True: 0, False: 394]
  ------------------
 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|    394|	} else {
 1127|    394|		seekable_stream = g_object_ref(stream);
  ------------------
  |  |  533|    394|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 1128|    394|	}
 1129|       |
 1130|       |	/* check size */
 1131|    394|	if (!fu_input_stream_size(seekable_stream, &streamsz, error))
  ------------------
  |  Branch (1131:6): [True: 0, False: 394]
  ------------------
 1132|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1133|    394|	if (streamsz <= offset) {
  ------------------
  |  Branch (1133:6): [True: 0, False: 394]
  ------------------
 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|    394|	if (!fu_firmware_validate_for_offset(self, seekable_stream, offset, &offset, flags, error))
  ------------------
  |  Branch (1144:6): [True: 0, False: 394]
  ------------------
 1145|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1146|    394|	fu_firmware_set_offset(self, offset);
 1147|       |
 1148|       |	/* validate offset hasn't been corrupted */
 1149|    394|	if (offset >= streamsz) {
  ------------------
  |  Branch (1149:6): [True: 0, False: 394]
  ------------------
 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|    394|	priv->streamsz = streamsz - offset;
 1161|    394|	if (priv->streamsz == 0) {
  ------------------
  |  Branch (1161:6): [True: 0, False: 394]
  ------------------
 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|    394|	{
 1169|    394|		FuFirmwareClassPrivate *cpriv =
 1170|    394|		    fu_firmware_get_class_private(FU_FIRMWARE_GET_CLASS(self));
 1171|    394|		if (cpriv->size_max > 0 && priv->streamsz > cpriv->size_max) {
  ------------------
  |  Branch (1171:7): [True: 394, False: 0]
  |  Branch (1171:30): [True: 0, False: 394]
  ------------------
 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|    394|#ifndef SUPPORTED_BUILD
 1185|       |		/* we want all firmware subclasses to set this now */
 1186|    394|		if (G_OBJECT_TYPE(self) != FU_TYPE_FIRMWARE &&
  ------------------
  |  |   98|    394|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  ------------------
  |  |  |  |  646|    394|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  ------------------
  |  |  |  |  |  |  657|    394|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              		if (G_OBJECT_TYPE(self) != FU_TYPE_FIRMWARE &&
  ------------------
  |  |   18|    788|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
  |  Branch (1186:7): [True: 394, False: 0]
  ------------------
 1187|    394|		    cpriv->size_max == FU_FIRMWARE_SIZE_MAX_DEFAULT) {
  ------------------
  |  |   13|    394|#define FU_FIRMWARE_SIZE_MAX_DEFAULT ((100 * FU_MB) + 1)
  |  |  ------------------
  |  |  |  |   81|    394|#define FU_MB (1ull << 20)
  |  |  ------------------
  ------------------
  |  Branch (1187:7): [True: 0, False: 394]
  ------------------
 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|    394|#endif
 1195|    394|	}
 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|    394|	if (klass->check_compatible != NULL)
  ------------------
  |  Branch (1202:6): [True: 0, False: 394]
  ------------------
 1203|      0|		fu_firmware_add_flag(self, FU_FIRMWARE_FLAG_HAS_CHECK_COMPATIBLE);
 1204|       |
 1205|       |	/* save stream */
 1206|    394|	if (offset == 0) {
  ------------------
  |  Branch (1206:6): [True: 394, False: 0]
  ------------------
 1207|    394|		partial_stream = g_object_ref(seekable_stream);
  ------------------
  |  |  533|    394|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 1208|    394|	} 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|    394|	if (flags & FU_FIRMWARE_PARSE_FLAG_CACHE_BLOB) {
  ------------------
  |  Branch (1218:6): [True: 394, False: 0]
  ------------------
 1219|    394|		if (blob == NULL) {
  ------------------
  |  Branch (1219:7): [True: 394, False: 0]
  ------------------
 1220|    394|			blob = fu_input_stream_read_bytes(partial_stream,
 1221|    394|							  0x0,
 1222|    394|							  priv->streamsz,
 1223|    394|							  NULL,
 1224|    394|							  error);
 1225|    394|			if (blob == NULL)
  ------------------
  |  Branch (1225:8): [True: 0, False: 394]
  ------------------
 1226|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1227|    394|		}
 1228|    394|		fu_firmware_set_bytes(self, blob);
 1229|    394|	}
 1230|    394|	if (flags & FU_FIRMWARE_PARSE_FLAG_CACHE_STREAM)
  ------------------
  |  Branch (1230:6): [True: 0, False: 394]
  ------------------
 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|    394|  GOBJECT_AVAILABLE_MACRO_IN_2_44
  ------------------
 1232|       |
 1233|       |	/* optional */
 1234|    394|	if (klass->tokenize != NULL) {
  ------------------
  |  Branch (1234:6): [True: 0, False: 394]
  ------------------
 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|    394|	if (klass->parse_full != NULL)
  ------------------
  |  Branch (1240:6): [True: 0, False: 394]
  ------------------
 1241|      0|		return klass->parse_full(self, seekable_stream, offset, flags, error);
 1242|    394|	if (klass->parse != NULL)
  ------------------
  |  Branch (1242:6): [True: 394, False: 0]
  ------------------
 1243|    394|		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|    202|{
 1667|    202|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1668|    202|	g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|    202|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    202|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1669|       |
 1670|    202|	g_return_val_if_fail(FU_IS_FIRMWARE(self), NULL);
  ------------------
  |  |  663|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    202|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    202|      { } \
  |  |  666|    202|    else \
  |  |  667|    202|      { \
  |  |  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|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1671|    202|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    404|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    202|      { } \
  |  |  666|    202|    else \
  |  |  667|    202|      { \
  |  |  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|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1672|       |
 1673|       |	/* subclassed */
 1674|    202|	if (klass->write != NULL)
  ------------------
  |  Branch (1674:6): [True: 202, False: 0]
  ------------------
 1675|    202|		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.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|    394|{
 2778|    394|	FuFirmware *self = FU_FIRMWARE(object);
 2779|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 2780|    394|	g_free(priv->version);
 2781|    394|	g_free(priv->id);
 2782|    394|	g_free(priv->filename);
 2783|    394|	if (priv->bytes != NULL)
  ------------------
  |  Branch (2783:6): [True: 394, False: 0]
  ------------------
 2784|    394|		g_bytes_unref(priv->bytes);
 2785|    394|	if (priv->stream != NULL)
  ------------------
  |  Branch (2785:6): [True: 0, False: 394]
  ------------------
 2786|      0|		g_object_unref(priv->stream);
 2787|    394|	if (priv->chunks != NULL)
  ------------------
  |  Branch (2787:6): [True: 0, False: 394]
  ------------------
 2788|      0|		g_ptr_array_unref(priv->chunks);
 2789|    394|	if (priv->patches != NULL)
  ------------------
  |  Branch (2789:6): [True: 0, False: 394]
  ------------------
 2790|      0|		g_ptr_array_unref(priv->patches);
 2791|    394|	if (priv->magic != NULL)
  ------------------
  |  Branch (2791:6): [True: 0, False: 394]
  ------------------
 2792|      0|		g_ptr_array_unref(priv->magic);
 2793|    394|	if (priv->parent != NULL)
  ------------------
  |  Branch (2793:6): [True: 0, False: 394]
  ------------------
 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|    394|	g_ptr_array_unref(priv->images);
 2796|    394|	G_OBJECT_CLASS(fu_firmware_parent_class)->finalize(object);
  ------------------
  |  |   61|    394|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    394|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    394|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2797|    394|}
fu-firmware.c:fu_firmware_set_property:
 2741|    394|{
 2742|    394|	FuFirmware *self = FU_FIRMWARE(object);
 2743|    394|	switch (prop_id) {
 2744|    394|	case PROP_PARENT:
  ------------------
  |  Branch (2744:2): [True: 394, False: 0]
  ------------------
 2745|    394|		fu_firmware_set_parent(self, g_value_get_object(value));
 2746|    394|		break;
 2747|      0|	default:
  ------------------
  |  Branch (2747:2): [True: 0, False: 394]
  ------------------
 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|    394|	}
 2751|    394|}
fu-firmware.c:fu_firmware_constructed:
 2762|    394|{
 2763|    394|	FuFirmware *self = FU_FIRMWARE(obj);
 2764|    394|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 2765|    394|	if (klass->add_magic != NULL)
  ------------------
  |  Branch (2765:6): [True: 0, False: 394]
  ------------------
 2766|      0|		klass->add_magic(self);
 2767|    394|	if (G_TYPE_FROM_CLASS(klass) != FU_TYPE_FIRMWARE && klass->parse_full == NULL &&
  ------------------
  |  |  657|    394|#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|    788|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
  |  Branch (2767:6): [True: 394, False: 0]
  |  Branch (2767:54): [True: 394, False: 0]
  ------------------
 2768|    394|	    klass->parse == NULL)
  ------------------
  |  Branch (2768:6): [True: 0, False: 394]
  ------------------
 2769|      0|		fu_firmware_add_flag(self, FU_FIRMWARE_FLAG_IS_ABSTRACT);
 2770|       |
 2771|       |	/* chain up to parent */
 2772|    394|	G_OBJECT_CLASS(fu_firmware_parent_class)->constructed(obj);
  ------------------
  |  |   61|    394|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    394|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    394|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2773|    394|}
fu-firmware.c:fu_firmware_init:
 2755|    394|{
 2756|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 2757|    394|	priv->images = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref);
 2758|    394|}
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|    394|{
 3071|    394|	FuFirmware *self = FU_FIRMWARE(fuzzer);
 3072|    394|	g_autoptr(GByteArray) buf_out = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 3073|    394|	g_autoptr(FuInputStream) stream = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 3074|       |
 3075|    394|	stream = fu_memory_input_stream_new_from_data(buf->data, buf->len, NULL);
 3076|    394|	if (!fu_firmware_parse_stream(
  ------------------
  |  Branch (3076:6): [True: 192, False: 202]
  ------------------
 3077|    394|		self,
 3078|    394|		stream,
 3079|    394|		0x0,
 3080|    394|		FU_FIRMWARE_PARSE_FLAG_NO_SEARCH | FU_FIRMWARE_PARSE_FLAG_CACHE_BLOB |
 3081|    394|		    FU_FIRMWARE_PARSE_FLAG_IGNORE_VID_PID | FU_FIRMWARE_PARSE_FLAG_IGNORE_CHECKSUM,
 3082|    394|		error))
 3083|    192|		return FALSE;
  ------------------
  |  |  925|    192|#define	FALSE	(0)
  ------------------
 3084|    202|	buf_out = fu_firmware_write_array(self, error);
 3085|    202|	if (buf_out == NULL)
  ------------------
  |  Branch (3085:6): [True: 0, False: 202]
  ------------------
 3086|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3087|       |
 3088|       |	/* success */
 3089|    202|	return TRUE;
  ------------------
  |  |  929|    202|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    202|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3090|    202|}
fu-firmware.c:fu_firmware_get_class_private:
   76|    396|{
   77|    396|	return G_TYPE_CLASS_GET_PRIVATE(klass, FU_TYPE_FIRMWARE, FuFirmwareClassPrivate);
  ------------------
  |  |  706|    396|#define G_TYPE_CLASS_GET_PRIVATE(klass, g_type, c_type)   ((c_type*) g_type_class_get_private ((GTypeClass*) (klass), (g_type)))
  ------------------
   78|    396|}
fu-firmware.c:fu_firmware_validate_for_offset:
 1040|    394|{
 1041|    394|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1042|    394|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    394|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1043|    394|	gsize streamsz = 0;
 1044|       |
 1045|       |	/* not implemented */
 1046|    394|	if (klass->validate == NULL)
  ------------------
  |  Branch (1046:6): [True: 394, False: 0]
  ------------------
 1047|    394|		return TRUE;
  ------------------
  |  |  929|    394|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    394|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1048|       |
 1049|       |	/* fuzzing */
 1050|      0|	if (!fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_ALWAYS_SEARCH) &&
  ------------------
  |  Branch (1050:6): [True: 0, False: 0]
  ------------------
 1051|      0|	    (flags & FU_FIRMWARE_PARSE_FLAG_NO_SEARCH) > 0) {
  ------------------
  |  Branch (1051:6): [True: 0, False: 0]
  ------------------
 1052|      0|		return klass->validate(self, stream, offset, error);
 1053|      0|	}
 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_fuzzer_test_input:
   32|    394|{
   33|    394|	FuFuzzerInterface *iface = FU_FUZZER_GET_IFACE(self);
   34|    394|	if (iface->test_input == NULL) {
  ------------------
  |  Branch (34:6): [True: 0, False: 394]
  ------------------
   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|    394|	return iface->test_input(self, buf, error);
   42|    394|}
fu-fuzzer.c:fu_fuzzer_default_init:
   15|      1|{
   16|      1|}

fu_input_stream_read:
  155|  3.29k|{
  156|  3.29k|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), -1);
  ------------------
  |  |  663|  3.29k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.29k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.29k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.29k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.29k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.29k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.29k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.29k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.29k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.29k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.29k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.29k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.29k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.29k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.29k|      G_PASTE (_g_boolean_var_, uniq) = 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.29k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.29k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.29k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.29k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.29k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.29k|      { } \
  |  |  666|  3.29k|    else \
  |  |  667|  3.29k|      { \
  |  |  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|  3.29k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.29k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.29k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  157|  3.29k|	g_return_val_if_fail(buffer != NULL, -1);
  ------------------
  |  |  663|  3.29k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.29k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.29k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.29k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.29k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.29k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.29k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.29k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.29k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.29k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.29k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.29k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.29k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.29k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.29k|      G_PASTE (_g_boolean_var_, uniq) = 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.29k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.29k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.29k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.29k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.29k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.29k|      { } \
  |  |  666|  3.29k|    else \
  |  |  667|  3.29k|      { \
  |  |  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|  3.29k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.29k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.29k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  158|  3.29k|	g_return_val_if_fail(error == NULL || *error == NULL, -1);
  ------------------
  |  |  663|  3.29k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.29k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.29k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.29k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.29k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.29k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.29k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.29k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  9.88k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 3.29k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.29k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.29k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.29k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.29k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.29k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.29k|      G_PASTE (_g_boolean_var_, uniq) = 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.29k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.29k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.29k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.29k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.29k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.29k|      { } \
  |  |  666|  3.29k|    else \
  |  |  667|  3.29k|      { \
  |  |  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|  3.29k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.29k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.29k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  159|  3.29k|	return FU_INPUT_STREAM_GET_CLASS(stream)->read_fn(stream,
  160|  3.29k|							  buffer,
  161|  3.29k|							  count,
  162|  3.29k|							  cancellable,
  163|  3.29k|							  error);
  164|  3.29k|}
fu_input_stream_read_byte_array:
  479|  1.59k|{
  480|  1.59k|	guint8 tmp[0x8000]; /* nocheck:zero-init */
  481|  1.59k|	g_autoptr(GByteArray) buf = g_byte_array_new();
  ------------------
  |  | 1381|  1.59k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  1.59k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  482|  1.59k|	g_autoptr(GError) error_local = NULL;
  ------------------
  |  | 1381|  1.59k|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|  1.59k|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  483|       |
  484|  1.59k|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|  1.59k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.59k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.59k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.59k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.59k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.59k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.59k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.59k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.59k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.59k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.59k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.59k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.59k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.59k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.59k|      G_PASTE (_g_boolean_var_, uniq) = 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.59k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.59k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.59k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.59k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.59k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.59k|      { } \
  |  |  666|  1.59k|    else \
  |  |  667|  1.59k|      { \
  |  |  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|  1.59k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.59k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.59k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  485|  1.59k|	g_return_val_if_fail(progress == NULL || FU_IS_PROGRESS(progress), NULL);
  ------------------
  |  |  663|  1.59k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.59k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.59k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.59k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.59k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.59k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.59k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.59k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.19k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.59k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.59k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.59k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.59k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.59k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.59k|      G_PASTE (_g_boolean_var_, uniq) = 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.59k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.59k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.59k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.59k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.59k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.59k|      { } \
  |  |  666|  1.59k|    else \
  |  |  667|  1.59k|      { \
  |  |  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|  1.59k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.59k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.59k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  486|  1.59k|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|  1.59k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.59k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.59k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.59k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.59k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.59k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.59k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.59k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.19k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.59k, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.59k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.59k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.59k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.59k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.59k|      G_PASTE (_g_boolean_var_, uniq) = 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.59k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.59k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.59k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.59k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.59k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.59k|      { } \
  |  |  666|  1.59k|    else \
  |  |  667|  1.59k|      { \
  |  |  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|  1.59k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.59k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.59k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  487|       |
  488|       |	/* this is invalid */
  489|  1.59k|	if (count == 0) {
  ------------------
  |  Branch (489:6): [True: 0, False: 1.59k]
  ------------------
  490|      0|		g_set_error_literal(error,
  491|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  492|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
  493|      0|				    "read size must be non-zero");
  494|      0|		return NULL;
  495|      0|	}
  496|       |
  497|       |	/* seek back to start */
  498|  1.59k|	if (G_IS_SEEKABLE(stream) && g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|  3.19k|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|  1.59k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|  1.59k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.59k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|  1.59k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|  1.59k|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 1.59k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|  1.59k|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|  1.59k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 1.59k, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 1.59k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|  1.59k|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|  1.59k|  else \
  |  |  |  |  |  | 2678|  1.59k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|  1.59k|  __r; \
  |  |  |  |  |  | 2680|  1.59k|}))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (36:36): [True: 1.59k, False: 0]
  |  |  ------------------
  ------------------
              	if (G_IS_SEEKABLE(stream) && g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|  1.59k|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|  1.59k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|  1.59k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (498:31): [True: 1.59k, False: 0]
  ------------------
  499|  1.59k|		if (!g_seekable_seek(G_SEEKABLE(stream), offset, G_SEEK_SET, NULL, error))
  ------------------
  |  |   35|  1.59k|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|  1.59k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|  1.59k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (499:7): [True: 0, False: 1.59k]
  ------------------
  500|      0|			return NULL;
  501|  1.59k|	}
  502|       |
  503|       |	/* read from stream in 32kB chunks */
  504|  3.29k|	while (TRUE) {
  ------------------
  |  |  929|  3.29k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  3.29k|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (929:14): [True: 3.29k, Folded]
  |  |  ------------------
  ------------------
  505|  3.29k|		gssize sz;
  506|  3.29k|		sz = fu_input_stream_read(stream,
  507|  3.29k|					  tmp,
  508|  3.29k|					  MIN(count - buf->len, sizeof(tmp)),
  ------------------
  |  |  936|  3.29k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 1.56k, False: 1.72k]
  |  |  ------------------
  ------------------
  509|  3.29k|					  NULL,
  510|  3.29k|					  &error_local);
  511|  3.29k|		if (sz == 0)
  ------------------
  |  Branch (511:7): [True: 24, False: 3.27k]
  ------------------
  512|     24|			break;
  513|  3.27k|		if (sz < 0) {
  ------------------
  |  Branch (513:7): [True: 0, False: 3.27k]
  ------------------
  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|  3.27k|		if (progress != NULL)
  ------------------
  |  Branch (522:7): [True: 0, False: 3.27k]
  ------------------
  523|      0|			fu_progress_set_percentage_full(progress, buf->len, count);
  524|       |
  525|  3.27k|		g_byte_array_append(buf, tmp, sz);
  526|  3.27k|		if (buf->len >= count)
  ------------------
  |  Branch (526:7): [True: 1.57k, False: 1.70k]
  ------------------
  527|  1.57k|			break;
  528|  3.27k|	}
  529|       |
  530|       |	/* no data was read */
  531|  1.59k|	if (buf->len == 0) {
  ------------------
  |  Branch (531:6): [True: 0, False: 1.59k]
  ------------------
  532|      0|		g_set_error_literal(error,
  533|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  534|      0|				    FWUPD_ERROR_INVALID_FILE,
  535|      0|				    "no data could be read");
  536|      0|		return NULL;
  537|      0|	}
  538|       |
  539|       |	/* success */
  540|  1.59k|	return g_steal_pointer(&buf);
  ------------------
  |  |  247|  1.59k|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  541|  1.59k|}
fu_input_stream_read_bytes:
  565|    394|{
  566|    394|	g_autoptr(GByteArray) buf = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  567|    394|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  568|    394|	g_return_val_if_fail(progress == NULL || FU_IS_PROGRESS(progress), NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  569|    394|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  570|    394|	buf = fu_input_stream_read_byte_array(stream, offset, count, progress, error);
  571|    394|	if (buf == NULL)
  ------------------
  |  Branch (571:6): [True: 0, False: 394]
  ------------------
  572|      0|		return NULL;
  573|    394|	return g_byte_array_free_to_bytes(g_steal_pointer(&buf));
  ------------------
  |  |  247|    394|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  574|    394|}
fu_input_stream_size:
  626|    394|{
  627|    394|	goffset current;
  628|       |
  629|    394|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  630|    394|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  631|       |
  632|       |	/* streaming from unseekable stream */
  633|    394|	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|    788|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|    394|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|    394|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|    394|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|    394|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 394]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|    394|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|    394|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 394, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 394]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|    394|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|    394|  else \
  |  |  |  |  |  | 2678|    394|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|    394|  __r; \
  |  |  |  |  |  | 2680|    394|}))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|    394|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (633:6): [True: 0, False: 394]
  |  Branch (633:32): [True: 0, False: 394]
  ------------------
  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|    394|	current = g_seekable_tell(G_SEEKABLE(stream));
  ------------------
  |  |   35|    394|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  640|    394|	if (!g_seekable_seek(G_SEEKABLE(stream), 0, G_SEEK_END, NULL, error)) {
  ------------------
  |  |   35|    394|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (640:6): [True: 0, False: 394]
  ------------------
  641|      0|		g_prefix_error_literal(error, "seek to end: ");
  642|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  643|      0|	}
  644|    394|	if (val != NULL)
  ------------------
  |  Branch (644:6): [True: 394, False: 0]
  ------------------
  645|    394|		*val = g_seekable_tell(G_SEEKABLE(stream));
  ------------------
  |  |   35|    394|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  646|       |
  647|    394|	return g_seekable_seek(G_SEEKABLE(stream), current, G_SEEK_SET, NULL, error);
  ------------------
  |  |   35|    394|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  648|    394|}
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|    394|{
  112|    394|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(object);
  113|       |
  114|    394|	G_OBJECT_CLASS(fu_input_stream_parent_class)->constructed(object);
  ------------------
  |  |   61|    394|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    394|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    394|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  115|       |
  116|       |	/* every FuInputStream subclass must implement read_fn */
  117|    394|	g_assert(klass->read_fn != NULL); /* nocheck:blocked */
  ------------------
  |  |  275|    394|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    394|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    394|                                               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|    394|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  118|    394|}
fu-input-stream.c:fu_input_stream_init:
  132|    394|{
  133|    394|}
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|    788|{
   55|    788|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   56|    788|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   57|    788|	return klass->tell(self);
   58|    788|}
fu-input-stream.c:fu_input_stream_seekable_can_seek:
   62|  2.38k|{
   63|  2.38k|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   64|  2.38k|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   65|  2.38k|	return klass->can_seek(self);
   66|  2.38k|}
fu-input-stream.c:fu_input_stream_seekable_seek:
   74|  2.38k|{
   75|  2.38k|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   76|  2.38k|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   77|  2.38k|	return klass->seek(self, offset, type, cancellable, error);
   78|  2.38k|}

fu_memwrite_uint16:
   29|    202|{
   30|    202|	guint16 val_hw;
   31|    202|	switch (endian) {
   32|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (32:2): [True: 0, False: 202]
  ------------------
   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|    202|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|    202|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (35:2): [True: 202, False: 0]
  ------------------
   36|    202|		val_hw = GUINT16_TO_LE(val_native); /* nocheck:blocked */
  ------------------
  |  |  158|    202|#define GUINT16_TO_LE(val)	((guint16) (val))
  ------------------
   37|    202|		break;
   38|      0|	default:
  ------------------
  |  Branch (38:2): [True: 0, False: 202]
  ------------------
   39|      0|		val_hw = val_native;
   40|      0|		break;
   41|    202|	}
   42|    202|	memcpy(buf, &val_hw, sizeof(val_hw)); /* nocheck:blocked */
   43|    202|}
fu_memwrite_uint32:
   85|     81|{
   86|     81|	guint32 val_hw;
   87|     81|	switch (endian) {
   88|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (88:2): [True: 0, False: 81]
  ------------------
   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|     81|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|     81|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (91:2): [True: 81, False: 0]
  ------------------
   92|     81|		val_hw = GUINT32_TO_LE(val_native); /* nocheck:blocked */
  ------------------
  |  |  163|     81|#define GUINT32_TO_LE(val)	((guint32) (val))
  ------------------
   93|     81|		break;
   94|      0|	default:
  ------------------
  |  Branch (94:2): [True: 0, False: 81]
  ------------------
   95|      0|		val_hw = val_native;
   96|      0|		break;
   97|     81|	}
   98|     81|	memcpy(buf, &val_hw, sizeof(val_hw)); /* nocheck:blocked */
   99|     81|}
fu_memread_uint16:
  142|  1.01k|{
  143|  1.01k|	guint16 val_hw;
  144|  1.01k|	guint16 val_native;
  145|  1.01k|	memcpy(&val_hw, buf, sizeof(val_hw)); /* nocheck:blocked */
  146|  1.01k|	switch (endian) {
  147|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (147:2): [True: 0, False: 1.01k]
  ------------------
  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.01k|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|  1.01k|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (150:2): [True: 1.01k, False: 0]
  ------------------
  151|  1.01k|		val_native = GUINT16_FROM_LE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  413|  1.01k|#define GUINT16_FROM_LE(val)	(GUINT16_TO_LE (val))
  |  |  ------------------
  |  |  |  |  158|  1.01k|#define GUINT16_TO_LE(val)	((guint16) (val))
  |  |  ------------------
  ------------------
  152|  1.01k|		break;
  153|      0|	default:
  ------------------
  |  Branch (153:2): [True: 0, False: 1.01k]
  ------------------
  154|      0|		val_native = val_hw;
  155|      0|		break;
  156|  1.01k|	}
  157|  1.01k|	return val_native;
  158|  1.01k|}
fu_memread_uint32:
  205|    401|{
  206|    401|	guint32 val_hw;
  207|    401|	guint32 val_native;
  208|    401|	memcpy(&val_hw, buf, sizeof(val_hw)); /* nocheck:blocked */
  209|    401|	switch (endian) {
  210|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (210:2): [True: 0, False: 401]
  ------------------
  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|    401|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|    401|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (213:2): [True: 401, False: 0]
  ------------------
  214|    401|		val_native = GUINT32_FROM_LE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  417|    401|#define GUINT32_FROM_LE(val)	(GUINT32_TO_LE (val))
  |  |  ------------------
  |  |  |  |  163|    401|#define GUINT32_TO_LE(val)	((guint32) (val))
  |  |  ------------------
  ------------------
  215|    401|		break;
  216|      0|	default:
  ------------------
  |  Branch (216:2): [True: 0, False: 401]
  ------------------
  217|      0|		val_native = val_hw;
  218|      0|		break;
  219|    401|	}
  220|    401|	return val_native;
  221|    401|}
fu_memchk_read:
  328|    219|{
  329|    219|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    438|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    219|      { } \
  |  |  666|    219|    else \
  |  |  667|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  330|    219|	if (n == 0)
  ------------------
  |  Branch (330:6): [True: 0, False: 219]
  ------------------
  331|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  332|    219|	if (n > bufsz) {
  ------------------
  |  Branch (332:6): [True: 0, False: 219]
  ------------------
  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|    219|	if (fu_size_checked_add(offset, n) == G_MAXSIZE) {
  ------------------
  |  |   89|    219|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|    219|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  |  Branch (341:6): [True: 0, False: 219]
  ------------------
  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|    219|	if (offset > bufsz || n + offset > bufsz) {
  ------------------
  |  Branch (350:6): [True: 0, False: 219]
  |  Branch (350:24): [True: 0, False: 219]
  ------------------
  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|    219|	return TRUE;
  ------------------
  |  |  929|    219|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    219|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  361|    219|}
fu_memchk_write:
  383|    219|{
  384|    219|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    438|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    219|      { } \
  |  |  666|    219|    else \
  |  |  667|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  385|    219|	if (n == 0)
  ------------------
  |  Branch (385:6): [True: 0, False: 219]
  ------------------
  386|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  387|    219|	if (n > bufsz) {
  ------------------
  |  Branch (387:6): [True: 0, False: 219]
  ------------------
  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|    219|	if (fu_size_checked_add(offset, n) == G_MAXSIZE) {
  ------------------
  |  |   89|    219|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|    219|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  |  Branch (396:6): [True: 0, False: 219]
  ------------------
  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|    219|	if (offset > bufsz || n + offset > bufsz) {
  ------------------
  |  Branch (405:6): [True: 0, False: 219]
  |  Branch (405:24): [True: 0, False: 219]
  ------------------
  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|    219|	return TRUE;
  ------------------
  |  |  929|    219|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    219|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  416|    219|}
fu_memcpy_safe:
  453|    219|{
  454|    219|	g_return_val_if_fail(dst != NULL, FALSE);
  ------------------
  |  |  663|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    219|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    219|      { } \
  |  |  666|    219|    else \
  |  |  667|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  455|    219|	g_return_val_if_fail(src != NULL, FALSE);
  ------------------
  |  |  663|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    219|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    219|      { } \
  |  |  666|    219|    else \
  |  |  667|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  456|    219|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    438|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    219|      { } \
  |  |  666|    219|    else \
  |  |  667|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  457|       |
  458|    219|	if (!fu_memchk_read(src_sz, src_offset, n, error))
  ------------------
  |  Branch (458:6): [True: 0, False: 219]
  ------------------
  459|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  460|    219|	if (!fu_memchk_write(dst_sz, dst_offset, n, error))
  ------------------
  |  Branch (460:6): [True: 0, False: 219]
  ------------------
  461|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  462|    219|	memcpy(dst + dst_offset, src + src_offset, n); /* nocheck:blocked */
  463|    219|	return TRUE;
  ------------------
  |  |  929|    219|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    219|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  464|    219|}

fu_memory_input_stream_new_from_bytes:
  166|    394|{
  167|    394|	gsize data_sz = 0;
  168|    394|	const guint8 *data;
  169|    394|	g_autoptr(FuMemoryInputStream) self = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  170|       |
  171|    394|	g_return_val_if_fail(bytes != NULL, NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  172|       |
  173|    394|	self = g_object_new(FU_TYPE_MEMORY_INPUT_STREAM, NULL);
  ------------------
  |  |   13|    394|#define FU_TYPE_MEMORY_INPUT_STREAM (fu_memory_input_stream_get_type())
  ------------------
  174|       |
  175|    394|	data = g_bytes_get_data(bytes, &data_sz);
  176|       |
  177|    394|	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|    394|	self->bytes = g_bytes_ref(bytes);
  183|       |
  184|    394|	return FU_INPUT_STREAM(g_steal_pointer(&self));
  ------------------
  |  |  247|    394|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  185|    394|}
fu_memory_input_stream_new_from_data:
  201|    394|{
  202|    394|	g_autoptr(GBytes) bytes = NULL;
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  203|       |
  204|    394|	g_return_val_if_fail(data != NULL, NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  205|    394|	g_return_val_if_fail(len >= -1, NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  206|       |
  207|    394|	if (len == -1)
  ------------------
  |  Branch (207:6): [True: 0, False: 394]
  ------------------
  208|      0|		len = strlen(data);
  209|       |
  210|    394|	bytes = g_bytes_new_with_free_func(data, len, destroy, (gpointer)data);
  211|       |
  212|    394|	return fu_memory_input_stream_new_from_bytes(bytes);
  213|    394|}
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|    394|{
  122|    394|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(object);
  123|       |	/* free the Rust stream first */
  124|    394|	fu_rs_borrowed_memory_input_stream_free(self->rust);
  125|    394|	g_clear_pointer(&self->bytes, g_bytes_unref);
  ------------------
  |  |  136|    394|  G_STMT_START                                           \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  137|    394|  {                                                      \
  |  |  138|    394|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  139|    394|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  ------------------
  |  |  |  |   39|    394|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  140|    394|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  ------------------
  |  |  |  |   39|    394|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  141|    394|    *_pp = NULL;                                         \
  |  |  142|    394|    if (_ptr)                                            \
  |  |  ------------------
  |  |  |  Branch (142:9): [True: 394, False: 0]
  |  |  ------------------
  |  |  143|    394|      (destroy) (_ptr);                                  \
  |  |  144|    394|  }                                                      \
  |  |  145|    394|  G_STMT_END                                             \
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  146|    394|  GLIB_AVAILABLE_MACRO_IN_2_34
  ------------------
  126|    394|	G_OBJECT_CLASS(fu_memory_input_stream_parent_class)->finalize(object);
  ------------------
  |  |   61|    394|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|    394|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|    394|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  127|    394|}
fu-memory-input-stream.c:fu_memory_input_stream_read_fn:
   37|  3.29k|{
   38|  3.29k|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(stream);
   39|  3.29k|	gssize rc;
   40|       |
   41|  3.29k|	if (g_cancellable_set_error_if_cancelled(cancellable, error))
  ------------------
  |  Branch (41:6): [True: 0, False: 3.29k]
  ------------------
   42|      0|		return -1;
   43|       |
   44|  3.29k|	rc = fu_rs_borrowed_memory_input_stream_read(self->rust, buffer, count);
   45|  3.29k|	if (rc < 0) {
  ------------------
  |  Branch (45:6): [True: 0, False: 3.29k]
  ------------------
   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|  3.29k|	return rc;
   60|  3.29k|}
fu-memory-input-stream.c:fu_memory_input_stream_tell:
   64|    788|{
   65|    788|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(stream);
   66|    788|	return fu_rs_borrowed_memory_input_stream_tell(self->rust);
   67|    788|}
fu-memory-input-stream.c:fu_memory_input_stream_can_seek:
   71|  2.38k|{
   72|  2.38k|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(stream);
   73|  2.38k|	return fu_rs_borrowed_memory_input_stream_can_seek(self->rust);
   74|  2.38k|}
fu-memory-input-stream.c:fu_memory_input_stream_seek:
   82|  2.38k|{
   83|  2.38k|	FuMemoryInputStream *self = FU_MEMORY_INPUT_STREAM(stream);
   84|       |
   85|  2.38k|	switch (type) {
   86|  1.99k|	case G_SEEK_SET:
  ------------------
  |  Branch (86:2): [True: 1.99k, False: 394]
  ------------------
   87|  1.99k|	case G_SEEK_CUR:
  ------------------
  |  Branch (87:2): [True: 0, False: 2.38k]
  ------------------
   88|  2.38k|	case G_SEEK_END:
  ------------------
  |  Branch (88:2): [True: 394, False: 1.99k]
  ------------------
   89|  2.38k|		break;
   90|      0|	default:
  ------------------
  |  Branch (90:2): [True: 0, False: 2.38k]
  ------------------
   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|  2.38k|	}
   97|       |
   98|  2.38k|	if (!fu_rs_borrowed_memory_input_stream_seek(self->rust, offset, (gint32)type)) {
  ------------------
  |  Branch (98:6): [True: 0, False: 2.38k]
  ------------------
   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|  2.38k|	return TRUE;
  ------------------
  |  |  929|  2.38k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  2.38k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  117|  2.38k|}
fu-memory-input-stream.c:fu_memory_input_stream_init:
  151|    394|{
  152|    394|}

fu_strtoull:
   41|    202|{
   42|    202|	gchar *endptr = NULL;
   43|    202|	guint64 value_tmp;
   44|       |
   45|       |	/* sanity check */
   46|    202|	if (str == NULL) {
  ------------------
  |  Branch (46:6): [True: 4, False: 198]
  ------------------
   47|      4|		g_set_error_literal(error,
   48|      4|				    FWUPD_ERROR,
  ------------------
  |  |   15|      4|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   49|      4|				    FWUPD_ERROR_INVALID_DATA,
   50|      4|				    "cannot parse NULL");
   51|      4|		return FALSE;
  ------------------
  |  |  925|      4|#define	FALSE	(0)
  ------------------
   52|      4|	}
   53|       |
   54|       |	/* detect hex */
   55|    198|	if (base == FU_INTEGER_BASE_AUTO) {
  ------------------
  |  Branch (55:6): [True: 198, False: 0]
  ------------------
   56|    198|		if (g_str_has_prefix(str, "0x")) {
  ------------------
  |  |  160|    198|  (__builtin_constant_p (PREFIX)?                                             \
  |  |  ------------------
  |  |  |  Branch (160:3): [True: 53, False: 145]
  |  |  |  Branch (160:4): [True: 198, Folded]
  |  |  ------------------
  |  |  161|    198|    G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    198|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  162|    198|       const char * const __str = (STR);                                      \
  |  |  163|    198|       const char * const __prefix = (PREFIX);                                \
  |  |  164|    198|       gboolean __result = FALSE;                                             \
  |  |  ------------------
  |  |  |  |  925|    198|#define	FALSE	(0)
  |  |  ------------------
  |  |  165|    198|                                                                              \
  |  |  166|    198|       if G_UNLIKELY (__str == NULL || __prefix == NULL)                      \
  |  |  ------------------
  |  |  |  | 1245|    198|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    198|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    198| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    198|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    198|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    594|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 198]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    198|      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|    198|   else                                         \
  |  |  |  |  |  |  |  | 1240|    198|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    198|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    198|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    198|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    198|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    198|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    198|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1245:27): [True: 0, False: 198]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  167|    198|           __result = (g_str_has_prefix) (__str, __prefix);                   \
  |  |  168|    198|       else                                                                   \
  |  |  169|    198|         {                                                                    \
  |  |  170|    198|            const size_t __str_len = strlen (_G_STR_NONNULL (__str));         \
  |  |  ------------------
  |  |  |  |  157|    198|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  171|    198|            const size_t __prefix_len = strlen (_G_STR_NONNULL (__prefix));   \
  |  |  ------------------
  |  |  |  |  157|    198|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  172|    198|            if (__str_len >= __prefix_len)                                    \
  |  |  ------------------
  |  |  |  Branch (172:17): [True: 196, False: 2]
  |  |  ------------------
  |  |  173|    198|              __result = memcmp (_G_STR_NONNULL (__str),                      \
  |  |  ------------------
  |  |  |  |  157|    196|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  174|    196|                                 _G_STR_NONNULL (__prefix),                   \
  |  |  ------------------
  |  |  |  |  157|    196|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  175|    196|                                 __prefix_len) == 0;                          \
  |  |  176|    198|         }                                                                    \
  |  |  177|    198|         __result;                                                            \
  |  |  178|    198|    })                                                                        \
  |  |  179|    198|  :                                                                           \
  |  |  180|    198|    (g_str_has_prefix) (STR, PREFIX)                                          \
  |  |  181|    198|  )
  ------------------
   57|     53|			str += 2;
   58|     53|			base = FU_INTEGER_BASE_16;
   59|    145|		} else {
   60|    145|			base = FU_INTEGER_BASE_10;
   61|    145|		}
   62|    198|	} else if (base == FU_INTEGER_BASE_16 && g_str_has_prefix(str, "0x")) {
  ------------------
  |  |  160|      0|  (__builtin_constant_p (PREFIX)?                                             \
  |  |  ------------------
  |  |  |  Branch (160:3): [True: 0, False: 0]
  |  |  |  Branch (160:4): [True: 0, Folded]
  |  |  ------------------
  |  |  161|      0|    G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  162|      0|       const char * const __str = (STR);                                      \
  |  |  163|      0|       const char * const __prefix = (PREFIX);                                \
  |  |  164|      0|       gboolean __result = FALSE;                                             \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  165|      0|                                                                              \
  |  |  166|      0|       if G_UNLIKELY (__str == NULL || __prefix == NULL)                      \
  |  |  ------------------
  |  |  |  | 1245|      0|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 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): [Folded, 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 (1245:27): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  167|      0|           __result = (g_str_has_prefix) (__str, __prefix);                   \
  |  |  168|      0|       else                                                                   \
  |  |  169|      0|         {                                                                    \
  |  |  170|      0|            const size_t __str_len = strlen (_G_STR_NONNULL (__str));         \
  |  |  ------------------
  |  |  |  |  157|      0|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  171|      0|            const size_t __prefix_len = strlen (_G_STR_NONNULL (__prefix));   \
  |  |  ------------------
  |  |  |  |  157|      0|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  172|      0|            if (__str_len >= __prefix_len)                                    \
  |  |  ------------------
  |  |  |  Branch (172:17): [True: 0, False: 0]
  |  |  ------------------
  |  |  173|      0|              __result = memcmp (_G_STR_NONNULL (__str),                      \
  |  |  ------------------
  |  |  |  |  157|      0|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  174|      0|                                 _G_STR_NONNULL (__prefix),                   \
  |  |  ------------------
  |  |  |  |  157|      0|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  175|      0|                                 __prefix_len) == 0;                          \
  |  |  176|      0|         }                                                                    \
  |  |  177|      0|         __result;                                                            \
  |  |  178|      0|    })                                                                        \
  |  |  179|      0|  :                                                                           \
  |  |  180|      0|    (g_str_has_prefix) (STR, PREFIX)                                          \
  |  |  181|      0|  )
  ------------------
  |  Branch (62:13): [True: 0, False: 0]
  ------------------
   63|      0|		str += 2;
   64|      0|	} else if (base == FU_INTEGER_BASE_10 && g_str_has_prefix(str, "0x")) {
  ------------------
  |  |  160|      0|  (__builtin_constant_p (PREFIX)?                                             \
  |  |  ------------------
  |  |  |  Branch (160:3): [True: 0, False: 0]
  |  |  |  Branch (160:4): [True: 0, Folded]
  |  |  ------------------
  |  |  161|      0|    G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  162|      0|       const char * const __str = (STR);                                      \
  |  |  163|      0|       const char * const __prefix = (PREFIX);                                \
  |  |  164|      0|       gboolean __result = FALSE;                                             \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  165|      0|                                                                              \
  |  |  166|      0|       if G_UNLIKELY (__str == NULL || __prefix == NULL)                      \
  |  |  ------------------
  |  |  |  | 1245|      0|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 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): [Folded, 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 (1245:27): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  167|      0|           __result = (g_str_has_prefix) (__str, __prefix);                   \
  |  |  168|      0|       else                                                                   \
  |  |  169|      0|         {                                                                    \
  |  |  170|      0|            const size_t __str_len = strlen (_G_STR_NONNULL (__str));         \
  |  |  ------------------
  |  |  |  |  157|      0|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  171|      0|            const size_t __prefix_len = strlen (_G_STR_NONNULL (__prefix));   \
  |  |  ------------------
  |  |  |  |  157|      0|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  172|      0|            if (__str_len >= __prefix_len)                                    \
  |  |  ------------------
  |  |  |  Branch (172:17): [True: 0, False: 0]
  |  |  ------------------
  |  |  173|      0|              __result = memcmp (_G_STR_NONNULL (__str),                      \
  |  |  ------------------
  |  |  |  |  157|      0|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  174|      0|                                 _G_STR_NONNULL (__prefix),                   \
  |  |  ------------------
  |  |  |  |  157|      0|#define _G_STR_NONNULL(x) ((x) + !(x))
  |  |  ------------------
  |  |  175|      0|                                 __prefix_len) == 0;                          \
  |  |  176|      0|         }                                                                    \
  |  |  177|      0|         __result;                                                            \
  |  |  178|      0|    })                                                                        \
  |  |  179|      0|  :                                                                           \
  |  |  180|      0|    (g_str_has_prefix) (STR, PREFIX)                                          \
  |  |  181|      0|  )
  ------------------
  |  Branch (64:13): [True: 0, False: 0]
  ------------------
   65|      0|		g_set_error_literal(error,
   66|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   67|      0|				    FWUPD_ERROR_INVALID_DATA,
   68|      0|				    "cannot parse 0x-prefixed base-10 string");
   69|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
   70|      0|	}
   71|       |
   72|       |	/* convert */
   73|    198|	value_tmp = g_ascii_strtoull(str, &endptr, base); /* nocheck:blocked */
   74|    198|	if ((gsize)(endptr - str) != strlen(str) && *endptr != '\n') {
  ------------------
  |  Branch (74:6): [True: 25, False: 173]
  |  Branch (74:46): [True: 25, False: 0]
  ------------------
   75|     25|		g_set_error_literal(error,
   76|     25|				    FWUPD_ERROR,
  ------------------
  |  |   15|     25|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   77|     25|				    FWUPD_ERROR_INVALID_DATA,
   78|     25|				    "cannot parse datastream");
   79|     25|		return FALSE;
  ------------------
  |  |  925|     25|#define	FALSE	(0)
  ------------------
   80|     25|	}
   81|       |
   82|       |	/* overflow check */
   83|    173|	if (value_tmp == G_MAXUINT64) {
  ------------------
  |  |  107|    173|#define G_MAXUINT64	G_GUINT64_CONSTANT(0xffffffffffffffff)
  |  |  ------------------
  |  |  |  |   70|    173|#define G_GUINT64_CONSTANT(val)	(val##UL)
  |  |  ------------------
  ------------------
  |  Branch (83:6): [True: 1, False: 172]
  ------------------
   84|      1|		g_set_error_literal(error,
   85|      1|				    FWUPD_ERROR,
  ------------------
  |  |   15|      1|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   86|      1|				    FWUPD_ERROR_INVALID_DATA,
   87|      1|				    "parsing datastream caused overflow");
   88|      1|		return FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
   89|      1|	}
   90|       |
   91|       |	/* range check */
   92|    172|	if (value_tmp < min) {
  ------------------
  |  Branch (92:6): [True: 0, False: 172]
  ------------------
   93|      0|		g_set_error(error,
   94|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   95|      0|			    FWUPD_ERROR_INVALID_DATA,
   96|      0|			    "value %" G_GUINT64_FORMAT " was below minimum %" G_GUINT64_FORMAT,
  ------------------
  |  |   74|      0|#define G_GUINT64_FORMAT "lu"
  ------------------
   97|      0|			    value_tmp,
   98|      0|			    min);
   99|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  100|      0|	}
  101|    172|	if (value_tmp > max) {
  ------------------
  |  Branch (101:6): [True: 91, False: 81]
  ------------------
  102|     91|		g_set_error(error,
  103|     91|			    FWUPD_ERROR,
  ------------------
  |  |   15|     91|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  104|     91|			    FWUPD_ERROR_INVALID_DATA,
  105|     91|			    "value %" G_GUINT64_FORMAT " was above maximum %" G_GUINT64_FORMAT,
  ------------------
  |  |   74|     91|#define G_GUINT64_FORMAT "lu"
  ------------------
  106|     91|			    value_tmp,
  107|     91|			    max);
  108|     91|		return FALSE;
  ------------------
  |  |  925|     91|#define	FALSE	(0)
  ------------------
  109|     91|	}
  110|       |
  111|       |	/* success */
  112|     81|	if (value != NULL)
  ------------------
  |  Branch (112:6): [True: 81, False: 0]
  ------------------
  113|     81|		*value = value_tmp;
  114|     81|	return TRUE;
  ------------------
  |  |  929|     81|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     81|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  115|    172|}

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

_RNvMNtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB2_17MemoryInputStreamRShE9from_dataCshVnoLihkVxE_9fwupd_ffi:
   25|    394|    pub fn from_data(data: T) -> Self {
   26|    394|        Self { data, pos: 0 }
   27|    394|    }
_RNvXs2_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB5_17MemoryInputStreamRShENtB7_10IsSeekable11is_seekableCshVnoLihkVxE_9fwupd_ffi:
   61|  2.38k|    fn is_seekable(&self) -> bool {
   62|  2.38k|        true
   63|  2.38k|    }
_RNCNvXs4_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB7_17MemoryInputStreamRShENtNtCsjS9ICikYiHq_3std2io4Seek4seek0CshVnoLihkVxE_9fwupd_ffi:
   84|    788|            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|    394|                .and_then(|len| len.checked_add(n)),
_RNvXs3_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB5_17MemoryInputStreamRShENtNtCsjS9ICikYiHq_3std2io4Read4readCshVnoLihkVxE_9fwupd_ffi:
   67|  3.29k|    fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
   68|  3.29k|        let slice = self.data.as_ref();
   69|  3.29k|        let available = slice.len().saturating_sub(self.pos);
   70|  3.29k|        let count = buf.len().min(available);
   71|  3.29k|        if count > 0 {
   72|  3.27k|            buf[..count].copy_from_slice(&slice[self.pos..self.pos + count]);
   73|  3.27k|            self.pos += count;
   74|  3.27k|        }
   75|  3.29k|        Ok(count)
   76|  3.29k|    }
_RNvXs4_NtNtCshhFiJze6Khb_5fwupd7streams19memory_input_streamINtB5_17MemoryInputStreamRShENtNtCsjS9ICikYiHq_3std2io4Seek4seekCshVnoLihkVxE_9fwupd_ffi:
   80|  3.17k|    fn seek(&mut self, pos: SeekFrom) -> io::Result<u64> {
   81|  3.17k|        let slice = self.data.as_ref();
   82|  3.17k|        let new_pos = match pos {
   83|  1.99k|            SeekFrom::Start(n) => i64::try_from(n).ok(),
   84|    788|            SeekFrom::Current(n) => i64::try_from(self.pos).ok().and_then(|p| p.checked_add(n)),
   85|    394|            SeekFrom::End(n) => i64::try_from(slice.len())
   86|    394|                .ok()
   87|    394|                .and_then(|len| len.checked_add(n)),
   88|       |        }
   89|  3.17k|        .ok_or_else(|| std::io::Error::from(std::io::ErrorKind::InvalidInput))?;
   90|  3.17k|        let len =
   91|  3.17k|            i64::try_from(slice.len()).map_err(|_| io::Error::other("data length overflow"))?;
   92|  3.17k|        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|  3.17k|        }
   98|  3.17k|        self.pos = usize::try_from(new_pos).map_err(|_| io::Error::other("usize overflow"))?;
   99|  3.17k|        Ok(self.pos as u64)
  100|  3.17k|    }

g_cancellable_is_cancelled:
  303|  3.29k|{
  304|  3.29k|  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: 3.29k]
  ------------------
  305|  3.29k|}
g_cancellable_set_error_if_cancelled:
  320|  3.29k|{
  321|  3.29k|  if (g_cancellable_is_cancelled (cancellable))
  ------------------
  |  Branch (321:7): [True: 0, False: 3.29k]
  ------------------
  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|  3.29k|  return FALSE;
  ------------------
  |  |  925|  3.29k|#define	FALSE	(0)
  ------------------
  331|  3.29k|}

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

g_array_sized_new:
  336|  2.01k|{
  337|  2.01k|  GRealArray *array;
  338|       |  
  339|  2.01k|  g_return_val_if_fail (elt_size > 0, NULL);
  ------------------
  |  |  663|  2.01k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.01k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.01k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.01k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.01k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.01k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.01k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.01k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.01k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.01k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.01k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.01k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.01k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.01k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.01k|      G_PASTE (_g_boolean_var_, uniq) = 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.01k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.01k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.01k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.01k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.01k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.01k|      { } \
  |  |  666|  2.01k|    else \
  |  |  667|  2.01k|      { \
  |  |  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.01k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.01k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.01k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  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|  2.01k|  array = g_slice_new (GRealArray);
  ------------------
  |  |   48|  2.01k|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
  345|       |
  346|  2.01k|  array->data            = NULL;
  347|  2.01k|  array->len             = 0;
  348|  2.01k|  array->elt_capacity = 0;
  349|  2.01k|  array->zero_terminated = (zero_terminated ? 1 : 0);
  ------------------
  |  Branch (349:29): [True: 0, False: 2.01k]
  ------------------
  350|  2.01k|  array->clear           = (clear ? 1 : 0);
  ------------------
  |  Branch (350:29): [True: 0, False: 2.01k]
  ------------------
  351|  2.01k|  array->elt_size        = elt_size;
  352|  2.01k|  array->clear_func      = NULL;
  353|       |
  354|  2.01k|  g_atomic_ref_count_init (&array->ref_count);
  355|       |
  356|  2.01k|  if (array->zero_terminated || reserved_size != 0)
  ------------------
  |  Branch (356:7): [True: 0, False: 2.01k]
  |  Branch (356:33): [True: 421, False: 1.59k]
  ------------------
  357|    421|    {
  358|    421|      g_array_maybe_expand (array, reserved_size);
  359|    421|      g_assert (array->data != NULL);
  ------------------
  |  |  275|    421|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    421|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    421|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    421|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    421|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    421| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    421|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    421|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    421|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 421, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    421|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    421|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    421|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    421|   else                                         \
  |  |  |  |  |  |  |  | 1240|    421|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    421|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    421|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    421|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    421|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 421, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    421|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    421|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    421|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 421]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  360|    421|      g_array_zero_terminate (array);
  ------------------
  |  |  114|    421|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|    421|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|    421|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 421]
  |  |  ------------------
  |  |  116|    421|    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|    421|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    421|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 421]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  361|    421|    }
  362|       |
  363|  2.01k|  return (GArray*) array;
  364|  2.01k|}
g_array_unref:
  459|  1.62k|{
  460|  1.62k|  GRealArray *rarray = (GRealArray*) array;
  461|  1.62k|  g_return_if_fail (array);
  ------------------
  |  |  650|  1.62k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.62k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.62k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.62k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.62k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.62k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.62k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.62k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.62k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.62k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.62k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.62k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.62k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.62k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.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|  1.62k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.62k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.62k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.62k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.62k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.62k|      { } \
  |  |  653|  1.62k|    else \
  |  |  654|  1.62k|      { \
  |  |  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.62k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.62k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.62k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  462|       |
  463|  1.62k|  if (g_atomic_ref_count_dec (&rarray->ref_count))
  ------------------
  |  Branch (463:7): [True: 1.62k, False: 0]
  ------------------
  464|  1.62k|    array_free (rarray, FREE_SEGMENT);
  465|  1.62k|}
g_array_free:
  513|    394|{
  514|    394|  GRealArray *array = (GRealArray*) farray;
  515|    394|  ArrayFreeFlags flags;
  516|       |
  517|    394|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  518|       |
  519|    394|  flags = (free_segment ? FREE_SEGMENT : 0);
  ------------------
  |  Branch (519:12): [True: 0, False: 394]
  ------------------
  520|       |
  521|       |  /* if others are holding a reference, preserve the wrapper but do free/return the data */
  522|    394|  if (!g_atomic_ref_count_dec (&array->ref_count))
  ------------------
  |  Branch (522:7): [True: 0, False: 394]
  ------------------
  523|      0|    flags |= PRESERVE_WRAPPER;
  524|       |
  525|    394|  return array_free (array, flags);
  526|    394|}
g_array_append_vals:
  592|  3.27k|{
  593|  3.27k|  GRealArray *array = (GRealArray*) farray;
  594|       |
  595|  3.27k|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|  3.27k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.27k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.27k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.27k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.27k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.27k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.27k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.27k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.27k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.27k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.27k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.27k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.27k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.27k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.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|  3.27k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.27k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.27k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.27k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.27k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.27k|      { } \
  |  |  666|  3.27k|    else \
  |  |  667|  3.27k|      { \
  |  |  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.27k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.27k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.27k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  596|       |
  597|  3.27k|  if (len == 0)
  ------------------
  |  Branch (597:7): [True: 0, False: 3.27k]
  ------------------
  598|      0|    return farray;
  599|       |
  600|  3.27k|  g_array_maybe_expand (array, len);
  601|       |
  602|  3.27k|  memcpy (g_array_elt_pos (array, array->len), data, 
  ------------------
  |  |  111|  3.27k|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  ------------------
  |  |  |  |  110|  3.27k|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  ------------------
  ------------------
  603|  3.27k|          g_array_elt_len (array, len));
  ------------------
  |  |  110|  3.27k|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  ------------------
  604|       |
  605|  3.27k|  array->len += len;
  606|       |
  607|  3.27k|  g_array_zero_terminate (array);
  ------------------
  |  |  114|  3.27k|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|  3.27k|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|  3.27k|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 3.27k]
  |  |  ------------------
  |  |  116|  3.27k|    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|  3.27k|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.27k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.27k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  608|       |
  609|  3.27k|  return farray;
  610|  3.27k|}
g_array_set_size:
  759|    421|{
  760|    421|  GRealArray *array = (GRealArray*) farray;
  761|       |
  762|    421|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|    421|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    421|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    421|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    421|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    421|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    421| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    421|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    421|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    421|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 421, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    421|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    421|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    421|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    421|   else                                         \
  |  |  |  |  |  |  |  | 1240|    421|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    421|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    421|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    421|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    421|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 421, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    421|      { } \
  |  |  666|    421|    else \
  |  |  667|    421|      { \
  |  |  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|    421|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    421|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 421]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  763|       |
  764|    421|  if (length > array->len)
  ------------------
  |  Branch (764:7): [True: 421, False: 0]
  ------------------
  765|    421|    {
  766|    421|      g_array_maybe_expand (array, length - array->len);
  767|       |      
  768|    421|      if (array->clear)
  ------------------
  |  Branch (768:11): [True: 0, False: 421]
  ------------------
  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|    421|    }
  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|    421|  array->len = length;
  775|       |  
  776|    421|  g_array_zero_terminate (array);
  ------------------
  |  |  114|    421|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|    421|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|    421|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 421]
  |  |  ------------------
  |  |  116|    421|    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|    421|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    421|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 421]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  777|       |  
  778|    421|  return farray;
  779|    421|}
g_ptr_array_new_with_free_func:
 1616|    394|{
 1617|    394|  return ptr_array_new (0, element_free_func, FALSE);
  ------------------
  |  |  925|    394|#define	FALSE	(0)
  ------------------
 1618|    394|}
g_ptr_array_unref:
 1767|    394|{
 1768|    394|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 1769|       |
 1770|    394|  g_return_if_fail (array);
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1771|       |
 1772|    394|  if (g_atomic_ref_count_dec (&rarray->ref_count))
  ------------------
  |  Branch (1772:7): [True: 394, False: 0]
  ------------------
 1773|    394|    ptr_array_free (array, FREE_SEGMENT);
 1774|    394|}
g_byte_array_new:
 2694|  1.59k|{
 2695|  1.59k|  return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, 0);
  ------------------
  |  |  925|  1.59k|#define	FALSE	(0)
  ------------------
                return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, 0);
  ------------------
  |  |  925|  1.59k|#define	FALSE	(0)
  ------------------
 2696|  1.59k|}
g_byte_array_sized_new:
 2771|    421|{
 2772|    421|  return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, reserved_size);
  ------------------
  |  |  925|    421|#define	FALSE	(0)
  ------------------
                return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, reserved_size);
  ------------------
  |  |  925|    421|#define	FALSE	(0)
  ------------------
 2773|    421|}
g_byte_array_free:
 2791|    394|{
 2792|    394|  return (guint8 *)g_array_free ((GArray *)array, free_segment);
 2793|    394|}
g_byte_array_free_to_bytes:
 2815|    394|{
 2816|    394|  gsize length;
 2817|       |
 2818|    394|  g_return_val_if_fail (array != NULL, NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2819|       |
 2820|    394|  length = array->len;
 2821|    394|  return g_bytes_new_take (g_byte_array_free (array, FALSE), length);
  ------------------
  |  |  925|    394|#define	FALSE	(0)
  ------------------
 2822|    394|}
g_byte_array_unref:
 2854|  1.62k|{
 2855|  1.62k|  g_array_unref ((GArray *)array);
 2856|  1.62k|}
g_byte_array_append:
 2873|  3.27k|{
 2874|  3.27k|  g_array_append_vals ((GArray *)array, (guint8 *)data, len);
 2875|       |
 2876|  3.27k|  return array;
 2877|  3.27k|}
g_byte_array_set_size:
 2912|    421|{
 2913|    421|  g_array_set_size ((GArray *)array, length);
 2914|       |
 2915|    421|  return array;
 2916|    421|}
garray.c:array_free:
  531|  2.01k|{
  532|  2.01k|  gchar *segment;
  533|       |
  534|  2.01k|  if (flags & FREE_SEGMENT)
  ------------------
  |  Branch (534:7): [True: 1.62k, False: 394]
  ------------------
  535|  1.62k|    {
  536|  1.62k|      if (array->clear_func != NULL)
  ------------------
  |  Branch (536:11): [True: 0, False: 1.62k]
  ------------------
  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|  1.62k|      g_free (array->data);
  545|  1.62k|      segment = NULL;
  546|  1.62k|    }
  547|    394|  else
  548|    394|    segment = (gchar*) array->data;
  549|       |
  550|  2.01k|  if (flags & PRESERVE_WRAPPER)
  ------------------
  |  Branch (550:7): [True: 0, False: 2.01k]
  ------------------
  551|      0|    {
  552|      0|      array->data            = NULL;
  553|      0|      array->len             = 0;
  554|      0|      array->elt_capacity = 0;
  555|      0|    }
  556|  2.01k|  else
  557|  2.01k|    {
  558|  2.01k|      g_slice_free1 (sizeof (GRealArray), array);
  559|  2.01k|    }
  560|       |
  561|  2.01k|  return segment;
  562|  2.01k|}
garray.c:g_array_maybe_expand:
 1053|  4.11k|{
 1054|  4.11k|  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|  4.11k|  max_len = MIN (G_MAXSIZE / 2 / array->elt_size, G_MAXUINT) - array->zero_terminated;
  ------------------
  |  |  936|  4.11k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 0, False: 4.11k]
  |  |  ------------------
  ------------------
 1062|       |
 1063|       |  /* Detect potential overflow */
 1064|  4.11k|  if G_UNLIKELY ((max_len - array->len) < len)
  ------------------
  |  | 1245|  4.11k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  4.11k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  4.11k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  4.11k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  4.11k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  4.11k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 4.11k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  4.11k|      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|  4.11k|   else                                         \
  |  |  |  |  |  | 1240|  4.11k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.11k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.11k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  4.11k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.11k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.11k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  4.11k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 4.11k]
  |  |  ------------------
  ------------------
 1065|  4.11k|    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|  4.11k|  want_len = array->len + len + array->zero_terminated;
 1068|  4.11k|  if (want_len > array->elt_capacity)
  ------------------
  |  Branch (1068:7): [True: 2.35k, False: 1.76k]
  ------------------
 1069|  2.35k|    {
 1070|  2.35k|      gsize want_alloc = g_nearest_pow (g_array_elt_len (array, want_len));
  ------------------
  |  |  110|  2.35k|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  ------------------
 1071|  2.35k|      g_assert (want_alloc >= g_array_elt_len (array, want_len));
  ------------------
  |  |  275|  2.35k|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.35k|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|  2.35k|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|  2.35k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.35k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.35k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.35k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.35k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.35k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.35k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.35k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.35k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.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|  2.35k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.35k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 2.35k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|  2.35k|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|  2.35k|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.35k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1072|  2.35k|      want_alloc = MAX (want_alloc, MIN_ARRAY_SIZE);
  ------------------
  |  |  933|  2.35k|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 2.32k, False: 24]
  |  |  ------------------
  ------------------
 1073|       |
 1074|  2.35k|      array->data = g_realloc (array->data, want_alloc);
 1075|       |
 1076|  2.35k|      if (G_UNLIKELY (g_mem_gc_friendly))
  ------------------
  |  | 1245|  2.35k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.35k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.35k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.35k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.35k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.35k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.35k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.35k|      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.35k|   else                                         \
  |  |  |  |  |  | 1240|  2.35k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.35k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.35k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.35k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.35k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.35k]
  |  |  ------------------
  ------------------
 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|  2.35k|      array->elt_capacity = MIN (want_alloc / array->elt_size, G_MAXUINT);
  ------------------
  |  |  936|  2.35k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 2.35k, False: 0]
  |  |  ------------------
  ------------------
 1081|  2.35k|    }
 1082|  4.11k|}
garray.c:ptr_array_new:
 1131|    394|{
 1132|    394|  GRealPtrArray *array;
 1133|       |
 1134|    394|  array = g_slice_new (GRealPtrArray);
  ------------------
  |  |   48|    394|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
 1135|       |
 1136|    394|  array->pdata = NULL;
 1137|    394|  array->len = 0;
 1138|    394|  array->alloc = 0;
 1139|    394|  array->null_terminated = null_terminated ? 1 : 0;
  ------------------
  |  Branch (1139:28): [True: 0, False: 394]
  ------------------
 1140|    394|  array->element_free_func = element_free_func;
 1141|       |
 1142|    394|  g_atomic_ref_count_init (&array->ref_count);
 1143|       |
 1144|    394|  if (reserved_size != 0)
  ------------------
  |  Branch (1144:7): [True: 0, False: 394]
  ------------------
 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|    394|  return (GPtrArray *) array;
 1163|    394|}
garray.c:ptr_array_free:
 1831|    394|{
 1832|    394|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 1833|    394|  gpointer *segment;
 1834|       |
 1835|    394|  if (flags & FREE_SEGMENT)
  ------------------
  |  Branch (1835:7): [True: 394, False: 0]
  ------------------
 1836|    394|    {
 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|    394|      gpointer *stolen_pdata = g_steal_pointer (&rarray->pdata);
  ------------------
  |  |  247|    394|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 1844|    394|      if (rarray->element_free_func != NULL)
  ------------------
  |  Branch (1844:11): [True: 394, False: 0]
  ------------------
 1845|    394|        {
 1846|    394|          guint i;
 1847|       |
 1848|    394|          for (i = 0; i < rarray->len; ++i)
  ------------------
  |  Branch (1848:23): [True: 0, False: 394]
  ------------------
 1849|      0|            rarray->element_free_func (stolen_pdata[i]);
 1850|    394|        }
 1851|       |
 1852|    394|      g_free (stolen_pdata);
 1853|    394|      segment = NULL;
 1854|    394|    }
 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|    394|  if (flags & PRESERVE_WRAPPER)
  ------------------
  |  Branch (1862:7): [True: 0, False: 394]
  ------------------
 1863|      0|    {
 1864|      0|      rarray->pdata = NULL;
 1865|      0|      rarray->len = 0;
 1866|      0|      rarray->alloc = 0;
 1867|      0|    }
 1868|    394|  else
 1869|    394|    {
 1870|    394|      g_slice_free1 (sizeof (GRealPtrArray), rarray);
 1871|    394|    }
 1872|       |
 1873|    394|  return segment;
 1874|    394|}

g_bit_lock:
  214|  1.57k|{
  215|  1.57k|  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|  1.57k|  guint mask = 1u << lock_bit;
  245|  1.57k|  guint v;
  246|       |
  247|  1.57k| retry:
  248|  1.57k|  v = g_atomic_int_or (address_nonvolatile, mask);
  ------------------
  |  |  221|  1.57k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  222|  1.57k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  223|  1.57k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (223:13): [Folded, False: 1.57k]
  |  |  ------------------
  |  |  224|  1.57k|    (guint) __atomic_fetch_or ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  225|  1.57k|  }))
  ------------------
  249|  1.57k|  if (v & mask)
  ------------------
  |  Branch (249:7): [True: 0, False: 1.57k]
  ------------------
  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|  1.57k|#endif
  261|  1.57k|}
g_bit_unlock:
  331|  1.57k|{
  332|  1.57k|  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|  1.57k|  guint mask = 1u << lock_bit;
  341|       |
  342|  1.57k|  g_atomic_int_and (address_nonvolatile, ~mask);
  ------------------
  |  |  215|  1.57k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  216|  1.57k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  217|  1.57k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (217:13): [Folded, False: 1.57k]
  |  |  ------------------
  |  |  218|  1.57k|    (guint) __atomic_fetch_and ((atomic), (val), __ATOMIC_SEQ_CST);          \
  |  |  219|  1.57k|  }))
  ------------------
  343|  1.57k|#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|  1.57k|  {
  350|  1.57k|    guint class = bit_lock_contended_class (address_nonvolatile);
  351|       |
  352|  1.57k|    if (g_atomic_int_get (&g_bit_lock_contended[class]))
  ------------------
  |  |  110|  1.57k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (110:3): [True: 0, False: 1.57k]
  |  |  ------------------
  |  |  111|  1.57k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  1.57k|    gint gaig_temp;                                                          \
  |  |  113|  1.57k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 1.57k]
  |  |  ------------------
  |  |  114|  1.57k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  1.57k|    (gint) gaig_temp;                                                        \
  |  |  116|  1.57k|  }))
  ------------------
  353|      0|      g_futex_wake (address_nonvolatile);
  354|  1.57k|  }
  355|  1.57k|}
g_pointer_bit_lock_and_get:
  446|  5.51k|{
  447|  5.51k|  guint class = bit_lock_contended_class (address);
  448|  5.51k|  guintptr mask;
  449|  5.51k|  guintptr v;
  450|       |
  451|  5.51k|  g_return_if_fail (lock_bit < 32);
  ------------------
  |  |  650|  5.51k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.51k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  5.51k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.51k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.51k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.51k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.51k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.51k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  5.51k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.51k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.51k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.51k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.51k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.51k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.51k|      G_PASTE (_g_boolean_var_, uniq) = 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.51k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.51k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.51k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.51k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.51k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  5.51k|      { } \
  |  |  653|  5.51k|    else \
  |  |  654|  5.51k|      { \
  |  |  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.51k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.51k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.51k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  452|       |
  453|  5.51k|  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|  5.51k|retry:
  481|  5.51k|  v = g_atomic_pointer_or ((gpointer *) address, mask);
  ------------------
  |  |  295|  5.51k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  5.51k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  296|  5.51k|    guintptr *gapo_atomic = (guintptr *) (atomic);                           \
  |  |  297|  5.51k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|  5.51k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  298|  5.51k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr));                 \
  |  |  ------------------
  |  |  |  |  871|  5.51k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  299|  5.51k|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (299:13): [Folded, False: 5.51k]
  |  |  ------------------
  |  |  300|  5.51k|    (void) (0 ? (val) ^ (val) : 1);                                          \
  |  |  ------------------
  |  |  |  Branch (300:13): [Folded, False: 5.51k]
  |  |  ------------------
  |  |  301|  5.51k|    (guintptr) __atomic_fetch_or (gapo_atomic, (val), __ATOMIC_SEQ_CST);     \
  |  |  302|  5.51k|  }))
  ------------------
  482|  5.51k|  if (v & mask)
  ------------------
  |  Branch (482:7): [True: 0, False: 5.51k]
  ------------------
  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|  5.51k|  if (out_ptr)
  ------------------
  |  Branch (491:7): [True: 5.51k, False: 0]
  ------------------
  492|  5.51k|    *out_ptr = (v | mask);
  493|  5.51k|}
g_pointer_bit_unlock:
  588|  3.94k|{
  589|  3.94k|  void *address_nonvolatile = (void *) address;
  590|       |
  591|  3.94k|  g_return_if_fail (lock_bit < 32);
  ------------------
  |  |  650|  3.94k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.94k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  3.94k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.94k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.94k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.94k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.94k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.94k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.94k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.94k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.94k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.94k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.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|  3.94k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.94k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.94k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  3.94k|      { } \
  |  |  653|  3.94k|    else \
  |  |  654|  3.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|  3.94k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.94k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.94k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  592|       |
  593|  3.94k|  {
  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|  3.94k|    gpointer *pointer_address = address_nonvolatile;
  601|  3.94k|    gsize mask = 1u << lock_bit;
  602|       |
  603|  3.94k|    g_atomic_pointer_and (pointer_address, ~mask);
  ------------------
  |  |  286|  3.94k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  3.94k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  287|  3.94k|    guintptr *gapa_atomic = (guintptr *) (atomic);                           \
  |  |  288|  3.94k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|  3.94k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  289|  3.94k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (guintptr));                 \
  |  |  ------------------
  |  |  |  |  871|  3.94k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  290|  3.94k|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (290:13): [Folded, False: 3.94k]
  |  |  ------------------
  |  |  291|  3.94k|    (void) (0 ? (val) ^ (val) : 1);                                          \
  |  |  ------------------
  |  |  |  Branch (291:13): [Folded, False: 3.94k]
  |  |  ------------------
  |  |  292|  3.94k|    (guintptr) __atomic_fetch_and (gapa_atomic, (val), __ATOMIC_SEQ_CST);    \
  |  |  293|  3.94k|  }))
  ------------------
  604|  3.94k|#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|  3.94k|    {
  611|  3.94k|      guint class = bit_lock_contended_class (address_nonvolatile);
  612|       |
  613|  3.94k|      if (g_atomic_int_get (&g_bit_lock_contended[class]))
  ------------------
  |  |  110|  3.94k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  3.94k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (110:3): [True: 0, False: 3.94k]
  |  |  ------------------
  |  |  111|  3.94k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  3.94k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  3.94k|    gint gaig_temp;                                                          \
  |  |  113|  3.94k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 3.94k]
  |  |  ------------------
  |  |  114|  3.94k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  3.94k|    (gint) gaig_temp;                                                        \
  |  |  116|  3.94k|  }))
  ------------------
  614|      0|        g_futex_wake (g_futex_int_address (address_nonvolatile));
  615|  3.94k|    }
  616|  3.94k|  }
  617|  3.94k|}
g_pointer_bit_unlock_and_set:
  673|  1.57k|{
  674|  1.57k|  gpointer *pointer_address = address;
  675|  1.57k|  guint class = bit_lock_contended_class (address);
  676|  1.57k|  gpointer ptr2;
  677|       |
  678|  1.57k|  g_return_if_fail (lock_bit < 32u);
  ------------------
  |  |  650|  1.57k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.57k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.57k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.57k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.57k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.57k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.57k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.57k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.57k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.57k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.57k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.57k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.57k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.57k|      G_PASTE (_g_boolean_var_, uniq) = 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.57k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.57k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.57k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.57k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.57k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.57k|      { } \
  |  |  653|  1.57k|    else \
  |  |  654|  1.57k|      { \
  |  |  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.57k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.57k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.57k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  679|       |
  680|  1.57k|  if (preserve_mask != 0)
  ------------------
  |  Branch (680:7): [True: 1.57k, False: 0]
  ------------------
  681|  1.57k|    {
  682|  1.57k|      gpointer old_ptr = g_atomic_pointer_get ((gpointer *) address);
  ------------------
  |  |  127|  1.57k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|  1.57k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|  1.57k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|  1.57k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|  1.57k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|  1.57k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|  1.57k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|  1.57k|    gapg_temp_newval;                                                      \
  |  |  133|  1.57k|  }))
  ------------------
  683|       |
  684|  1.57k|    again:
  685|  1.57k|      ptr2 = pointer_bit_lock_mask_ptr (ptr, lock_bit, FALSE, preserve_mask, old_ptr);
  ------------------
  |  |  925|  1.57k|#define	FALSE	(0)
  ------------------
  686|  1.57k|      if (!g_atomic_pointer_compare_and_exchange_full (pointer_address, old_ptr, ptr2, &old_ptr))
  ------------------
  |  |  262|  1.57k|  (G_GNUC_EXTENSION ({                                                             \
  |  |  ------------------
  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  263|  1.57k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                       \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  264|  1.57k|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gpointer));                       \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  265|  1.57k|    (void) (0 ? (gpointer) *(atomic) : NULL);                                      \
  |  |  ------------------
  |  |  |  Branch (265:13): [Folded, False: 1.57k]
  |  |  ------------------
  |  |  266|  1.57k|    (void) (0 ? (gpointer) *(preval) : NULL);                                      \
  |  |  ------------------
  |  |  |  Branch (266:13): [Folded, False: 1.57k]
  |  |  ------------------
  |  |  267|  1.57k|    *(preval) = (oldval);                                                          \
  |  |  268|  1.57k|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,              \
  |  |  ------------------
  |  |  |  |  925|  1.57k|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (268:5): [True: 1.57k, False: 0]
  |  |  ------------------
  |  |  269|  1.57k|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ?             \
  |  |  270|  1.57k|                                 TRUE : FALSE;                                     \
  |  |  ------------------
  |  |  |  |  929|  1.57k|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|  1.57k|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                TRUE : FALSE;                                     \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  271|  1.57k|  }))
  ------------------
  |  Branch (686:11): [True: 0, False: 1.57k]
  ------------------
  687|      0|        goto again;
  688|  1.57k|    }
  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|  1.57k|  if (g_atomic_int_get (&g_bit_lock_contended[class]) > 0)
  ------------------
  |  |  110|  1.57k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  1.57k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  1.57k|    gint gaig_temp;                                                          \
  |  |  113|  1.57k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 1.57k]
  |  |  ------------------
  |  |  114|  1.57k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  1.57k|    (gint) gaig_temp;                                                        \
  |  |  116|  1.57k|  }))
  ------------------
  |  Branch (695:7): [True: 0, False: 1.57k]
  ------------------
  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|  1.57k|  g_return_if_fail (ptr == pointer_bit_lock_mask_ptr (ptr, lock_bit, FALSE, 0, NULL));
  ------------------
  |  |  650|  1.57k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.57k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.57k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.57k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.57k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.57k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.57k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.57k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.57k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.57k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.57k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.57k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.57k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.57k|      G_PASTE (_g_boolean_var_, uniq) = 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.57k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.57k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.57k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.57k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.57k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.57k|      { } \
  |  |  653|  1.57k|    else \
  |  |  654|  1.57k|      { \
  |  |  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.57k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.57k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.57k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  704|  1.57k|}
gbitlock.c:bit_lock_contended_class:
  179|  12.6k|{
  180|  12.6k|  return ((gsize) address) % G_N_ELEMENTS (g_bit_lock_contended);
  ------------------
  |  |  951|  12.6k|#define G_N_ELEMENTS(arr)		(sizeof (arr) / sizeof ((arr)[0]))
  ------------------
  181|  12.6k|}
gbitlock.c:pointer_bit_lock_mask_ptr:
  402|  3.15k|{
  403|  3.15k|  guintptr x_ptr;
  404|  3.15k|  guintptr x_preserve_ptr;
  405|  3.15k|  guintptr lock_mask;
  406|       |
  407|  3.15k|  x_ptr = (guintptr) ptr;
  408|       |
  409|  3.15k|  if (preserve_mask != 0)
  ------------------
  |  Branch (409:7): [True: 1.57k, False: 1.57k]
  ------------------
  410|  1.57k|    {
  411|  1.57k|      x_preserve_ptr = (guintptr) preserve_ptr;
  412|  1.57k|      x_ptr = (x_preserve_ptr & preserve_mask) | (x_ptr & ~preserve_mask);
  413|  1.57k|    }
  414|       |
  415|  3.15k|  if (lock_bit == G_MAXUINT)
  ------------------
  |  |   40|  3.15k|#define G_MAXUINT	UINT_MAX
  ------------------
  |  Branch (415:7): [True: 0, False: 3.15k]
  ------------------
  416|      0|    return (gpointer) x_ptr;
  417|       |
  418|  3.15k|  lock_mask = (guintptr) (1u << lock_bit);
  419|  3.15k|  if (set)
  ------------------
  |  Branch (419:7): [True: 0, False: 3.15k]
  ------------------
  420|      0|    return (gpointer) (x_ptr | lock_mask);
  421|  3.15k|  else
  422|  3.15k|    return (gpointer) (x_ptr & ~lock_mask);
  423|  3.15k|}

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_take:
  127|    394|{
  128|    394|  return g_bytes_new_with_free_func (data, size, g_free, data);
  129|    394|}
g_bytes_new_with_free_func:
  181|    788|{
  182|    788|  GBytes *bytes;
  183|       |
  184|    788|  g_return_val_if_fail (data != NULL || size == 0, NULL);
  ------------------
  |  |  663|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.57k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    788|      { } \
  |  |  666|    788|    else \
  |  |  667|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  185|       |
  186|    788|  bytes = g_slice_new (GBytes);
  ------------------
  |  |   48|    788|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
  187|    788|  bytes->data = data;
  188|    788|  bytes->size = size;
  189|    788|  bytes->free_func = free_func;
  190|    788|  bytes->user_data = user_data;
  191|    788|  g_atomic_ref_count_init (&bytes->ref_count);
  192|       |
  193|    788|  return (GBytes *)bytes;
  194|    788|}
g_bytes_get_data:
  272|    394|{
  273|    394|  g_return_val_if_fail (bytes != NULL, NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  274|    394|  if (size)
  ------------------
  |  Branch (274:7): [True: 394, False: 0]
  ------------------
  275|    394|    *size = bytes->size;
  276|    394|  return bytes->data;
  277|    394|}
g_bytes_ref:
  311|    788|{
  312|    788|  g_return_val_if_fail (bytes != NULL, NULL);
  ------------------
  |  |  663|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    788|      { } \
  |  |  666|    788|    else \
  |  |  667|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  313|       |
  314|    788|  g_atomic_ref_count_inc (&bytes->ref_count);
  315|       |
  316|    788|  return bytes;
  317|    788|}
g_bytes_unref:
  330|  1.57k|{
  331|  1.57k|  if (bytes == NULL)
  ------------------
  |  Branch (331:7): [True: 0, False: 1.57k]
  ------------------
  332|      0|    return;
  333|       |
  334|  1.57k|  if (g_atomic_ref_count_dec (&bytes->ref_count))
  ------------------
  |  Branch (334:7): [True: 788, False: 788]
  ------------------
  335|    788|    {
  336|    788|      if (bytes->free_func != NULL)
  ------------------
  |  Branch (336:11): [True: 394, False: 394]
  ------------------
  337|    394|        bytes->free_func (bytes->user_data);
  338|    788|      g_slice_free (GBytes, bytes);
  ------------------
  |  |   81|    788|#define g_slice_free(type, mem)                                 \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |   82|    788|G_STMT_START {                                                  \
  |  |   83|    788|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  ------------------
  |  |  |  Branch (83:7): [True: 788, Folded]
  |  |  ------------------
  |  |   84|    788|  else   (void) ((type*) 0 == (mem)); 				\
  |  |   85|    788|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|    788|    }
  340|  1.57k|}

g_datalist_clear:
  311|    788|{
  312|    788|  GData *data;
  313|    788|  guint i;
  314|       |
  315|    788|  g_return_if_fail (datalist != NULL);
  ------------------
  |  |  650|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    788|      { } \
  |  |  653|    788|    else \
  |  |  654|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|       |
  317|    788|  data = g_datalist_lock_and_get (datalist);
  318|       |
  319|    788|  if (!data)
  ------------------
  |  Branch (319:7): [True: 0, False: 788]
  ------------------
  320|      0|    {
  321|      0|      g_datalist_unlock (datalist);
  322|      0|      return;
  323|      0|    }
  324|       |
  325|    788|  g_datalist_unlock_and_set (datalist, NULL);
  326|       |
  327|  1.57k|  for (i = 0; i < data->len; i++)
  ------------------
  |  Branch (327:15): [True: 788, False: 788]
  ------------------
  328|    788|    {
  329|    788|      if (data->data[i].data && data->data[i].destroy)
  ------------------
  |  Branch (329:11): [True: 788, False: 0]
  |  Branch (329:33): [True: 788, False: 0]
  ------------------
  330|    788|        data->data[i].destroy (data->data[i].data);
  331|    788|    }
  332|       |
  333|    788|  g_free (data);
  334|    788|}
g_datalist_id_set_data_full:
  780|  3.94k|{
  781|  3.94k|  g_return_if_fail (datalist != NULL);
  ------------------
  |  |  650|  3.94k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.94k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  3.94k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.94k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.94k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.94k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.94k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.94k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.94k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.94k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.94k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.94k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.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|  3.94k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.94k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.94k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.94k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.94k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  3.94k|      { } \
  |  |  653|  3.94k|    else \
  |  |  654|  3.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|  3.94k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.94k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.94k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  782|  3.94k|  if (!data)
  ------------------
  |  Branch (782:7): [True: 3.15k, False: 788]
  ------------------
  783|  3.94k|    g_return_if_fail (destroy_func == NULL);
  ------------------
  |  |  650|  3.15k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.15k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  3.15k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.15k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.15k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.15k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.15k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.15k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.15k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.15k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.15k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.15k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.15k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.15k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.15k|      G_PASTE (_g_boolean_var_, uniq) = 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.15k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.15k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.15k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.15k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.15k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  3.15k|      { } \
  |  |  653|  3.15k|    else \
  |  |  654|  3.15k|      { \
  |  |  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.15k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.15k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.15k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  784|  3.94k|  if (!key_id)
  ------------------
  |  Branch (784:7): [True: 0, False: 3.94k]
  ------------------
  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|  3.94k|  g_data_set_internal (datalist, key_id, data, destroy_func, NULL);
  793|  3.94k|}
g_datalist_id_get_data:
 1054|    788|{
 1055|    788|  return g_datalist_id_dup_data (datalist, key_id, NULL, NULL);
 1056|    788|}
g_datalist_id_dup_data:
 1105|    788|{
 1106|    788|  gpointer val = NULL;
 1107|    788|  gpointer retval = NULL;
 1108|    788|  GData *d;
 1109|    788|  GDataElt *data;
 1110|       |
 1111|    788|  d = g_datalist_lock_and_get (datalist);
 1112|       |
 1113|    788|  data = datalist_find (d, key_id, NULL);
 1114|    788|  if (data)
  ------------------
  |  Branch (1114:7): [True: 0, False: 788]
  ------------------
 1115|      0|    val = data->data;
 1116|       |
 1117|    788|  if (dup_func)
  ------------------
  |  Branch (1117:7): [True: 0, False: 788]
  ------------------
 1118|      0|    retval = dup_func (val, user_data);
 1119|    788|  else
 1120|    788|    retval = val;
 1121|       |
 1122|    788|  g_datalist_unlock (datalist);
 1123|       |
 1124|    788|  return retval;
 1125|    788|}
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|    788|{
 1456|    788|  g_return_val_if_fail (datalist != NULL, 0);
  ------------------
  |  |  663|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    788|      { } \
  |  |  666|    788|    else \
  |  |  667|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1457|       |  
 1458|    788|  return G_DATALIST_GET_FLAGS (datalist); /* atomic macro */
  ------------------
  |  |   39|    788|  ((gsize) g_atomic_pointer_get (datalist) & G_DATALIST_FLAGS_MASK)
  |  |  ------------------
  |  |  |  |  127|    788|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|    788|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    788|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|    788|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    788|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|    788|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|    788|    gapg_temp_newval;                                                      \
  |  |  |  |  133|    788|  }))
  |  |  ------------------
  |  |                 ((gsize) g_atomic_pointer_get (datalist) & G_DATALIST_FLAGS_MASK)
  |  |  ------------------
  |  |  |  |   93|    788|#define G_DATALIST_FLAGS_MASK 0x3
  |  |  ------------------
  ------------------
 1459|    788|}
gdataset.c:g_datalist_lock_and_get:
  142|  5.51k|{
  143|  5.51k|  guintptr ptr;
  144|       |
  145|  5.51k|  g_pointer_bit_lock_and_get ((void **) datalist, DATALIST_LOCK_BIT, &ptr);
  ------------------
  |  |   82|  5.51k|  (G_GNUC_EXTENSION ({                                             \
  |  |  ------------------
  |  |  |  |   62|  5.51k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |   83|  5.51k|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));      \
  |  |  ------------------
  |  |  |  |  871|  5.51k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |   84|  5.51k|    g_pointer_bit_lock_and_get ((address), (lock_bit), (out_ptr)); \
  |  |   85|  5.51k|  }))
  ------------------
  146|  5.51k|  return G_DATALIST_CLEAN_POINTER (ptr);
  ------------------
  |  |   72|  5.51k|  ((GData *) ((gpointer) (((guintptr) (ptr)) & ~((guintptr) G_DATALIST_FLAGS_MASK_INTERNAL))))
  |  |  ------------------
  |  |  |  |   69|  5.51k|#define G_DATALIST_FLAGS_MASK_INTERNAL 0x7
  |  |  ------------------
  ------------------
  147|  5.51k|}
gdataset.c:g_datalist_unlock:
  151|  3.94k|{
  152|       |  g_pointer_bit_unlock ((void **)datalist, DATALIST_LOCK_BIT);
  ------------------
  |  |   94|  3.94k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  3.94k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |   95|  3.94k|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));                \
  |  |  ------------------
  |  |  |  |  871|  3.94k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |   96|  3.94k|    g_pointer_bit_unlock ((address), (lock_bit));                            \
  |  |   97|  3.94k|  }))
  ------------------
  153|  3.94k|}
gdataset.c:g_datalist_unlock_and_set:
  157|  1.57k|{
  158|       |  g_pointer_bit_unlock_and_set ((void **) datalist, DATALIST_LOCK_BIT, ptr, G_DATALIST_FLAGS_MASK_INTERNAL);
  ------------------
  |  |  100|  1.57k|  (G_GNUC_EXTENSION ({                                                            \
  |  |  ------------------
  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  101|  1.57k|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));                     \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  102|  1.57k|    g_pointer_bit_unlock_and_set ((address), (lock_bit), (ptr), (preserve_mask)); \
  |  |  103|  1.57k|  }))
  ------------------
  159|  1.57k|}
gdataset.c:g_data_set_internal:
  422|  3.94k|{
  423|  3.94k|  GData *d;
  424|  3.94k|  GData *new_d = NULL;
  425|  3.94k|  GDataElt old, *data;
  426|  3.94k|  guint32 idx;
  427|       |
  428|  3.94k|  d = g_datalist_lock_and_get (datalist);
  429|       |
  430|  3.94k|  data = datalist_find (d, key_id, &idx);
  431|       |
  432|  3.94k|  if (new_data == NULL) /* remove */
  ------------------
  |  Branch (432:7): [True: 3.15k, False: 788]
  ------------------
  433|  3.15k|    {
  434|  3.15k|      if (data)
  ------------------
  |  Branch (434:11): [True: 0, False: 3.15k]
  ------------------
  435|      0|        {
  436|      0|          GData *d_to_free;
  437|       |
  438|      0|          old = *data;
  439|       |
  440|      0|          datalist_remove (d, idx);
  441|      0|          if (datalist_shrink (&d, &d_to_free))
  ------------------
  |  Branch (441:15): [True: 0, False: 0]
  ------------------
  442|      0|            {
  443|      0|              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|      0|              if (dataset && !d)
  ------------------
  |  Branch (448:19): [True: 0, False: 0]
  |  Branch (448:30): [True: 0, False: 0]
  ------------------
  449|      0|                g_dataset_destroy_internal (dataset);
  450|       |
  451|      0|              if (d_to_free)
  ------------------
  |  Branch (451:19): [True: 0, False: 0]
  ------------------
  452|      0|                g_free (d_to_free);
  453|      0|            }
  454|      0|          else
  455|      0|            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|      0|          if (old.destroy && !new_destroy_func)
  ------------------
  |  Branch (464:15): [True: 0, False: 0]
  |  Branch (464:30): [True: 0, False: 0]
  ------------------
  465|      0|            {
  466|      0|              if (dataset)
  ------------------
  |  Branch (466:19): [True: 0, False: 0]
  ------------------
  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|      0|              old.destroy (old.data);
  469|      0|              if (dataset)
  ------------------
  |  Branch (469:19): [True: 0, False: 0]
  ------------------
  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|      0|              old.data = NULL;
  472|      0|            }
  473|       |
  474|      0|          return old.data;
  475|      0|        }
  476|  3.15k|    }
  477|    788|  else
  478|    788|    {
  479|    788|      if (data)
  ------------------
  |  Branch (479:11): [True: 0, False: 788]
  ------------------
  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|    788|      if (datalist_append (&d, key_id, new_data, new_destroy_func))
  ------------------
  |  Branch (509:11): [True: 788, False: 0]
  ------------------
  510|    788|        new_d = d;
  511|    788|    }
  512|       |
  513|  3.94k|  if (new_d)
  ------------------
  |  Branch (513:7): [True: 788, False: 3.15k]
  ------------------
  514|    788|    g_datalist_unlock_and_set (datalist, new_d);
  515|  3.15k|  else
  516|  3.15k|    g_datalist_unlock (datalist);
  517|       |
  518|  3.94k|  return NULL;
  519|       |
  520|  3.94k|}
gdataset.c:datalist_find:
  279|  4.72k|{
  280|  4.72k|  guint32 i;
  281|       |
  282|  4.72k|  if (data)
  ------------------
  |  Branch (282:7): [True: 3.15k, False: 1.57k]
  ------------------
  283|  3.15k|    {
  284|  6.30k|      for (i = 0; i < data->len; i++)
  ------------------
  |  Branch (284:19): [True: 3.15k, False: 3.15k]
  ------------------
  285|  3.15k|        {
  286|  3.15k|          GDataElt *data_elt = &data->data[i];
  287|       |
  288|  3.15k|          if (data_elt->key == key_id)
  ------------------
  |  Branch (288:15): [True: 0, False: 3.15k]
  ------------------
  289|      0|            {
  290|      0|              if (out_idx)
  ------------------
  |  Branch (290:19): [True: 0, False: 0]
  ------------------
  291|      0|                *out_idx = i;
  292|      0|              return data_elt;
  293|      0|            }
  294|  3.15k|        }
  295|  3.15k|    }
  296|  4.72k|  if (out_idx)
  ------------------
  |  Branch (296:7): [True: 3.94k, False: 788]
  ------------------
  297|  3.94k|    *out_idx = G_MAXUINT32;
  ------------------
  |  |   98|  3.94k|#define G_MAXUINT32	((guint32) 0xffffffff)
  ------------------
  298|       |  return NULL;
  299|  4.72k|}
gdataset.c:datalist_append:
  163|    788|{
  164|    788|  gboolean reallocated;
  165|    788|  GData *d;
  166|       |
  167|    788|  d = *data;
  168|    788|  if (!d)
  ------------------
  |  Branch (168:7): [True: 788, False: 0]
  ------------------
  169|    788|    {
  170|    788|      d = g_malloc (G_STRUCT_OFFSET (GData, data) + 2u * sizeof (GDataElt));
  ------------------
  |  |  964|    788|      ((glong) offsetof (struct_type, member))
  ------------------
  171|    788|      d->len = 0;
  172|    788|      d->alloc = 2u;
  173|    788|      *data = d;
  174|    788|      reallocated = TRUE;
  ------------------
  |  |  929|    788|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    788|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  175|    788|    }
  176|      0|  else if (d->len == d->alloc)
  ------------------
  |  Branch (176:12): [True: 0, False: 0]
  ------------------
  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|      0|  else
  193|      0|    reallocated = FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  194|       |
  195|    788|  d->data[d->len] = (GDataElt){
  196|    788|    .key = key_id,
  197|    788|    .data = new_data,
  198|    788|    .destroy = destroy_func,
  199|    788|  };
  200|    788|  d->len++;
  201|       |
  202|    788|  return reallocated;
  203|    788|}

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|    788|{
  296|    788|  gint result;
  297|       |#ifndef HAVE_SETENV
  298|       |  gchar *string;
  299|       |#endif
  300|       |
  301|    788|  g_return_val_if_fail (variable != NULL, FALSE);
  ------------------
  |  |  663|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    788|      { } \
  |  |  666|    788|    else \
  |  |  667|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  302|    788|  g_return_val_if_fail (strchr (variable, '=') == NULL, FALSE);
  ------------------
  |  |  663|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    788|      { } \
  |  |  666|    788|    else \
  |  |  667|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  303|    788|  g_return_val_if_fail (value != NULL, FALSE);
  ------------------
  |  |  663|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    788|      { } \
  |  |  666|    788|    else \
  |  |  667|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  304|       |
  305|    788|#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|    788|  if (g_thread_n_created () > 0)
  ------------------
  |  Branch (308:7): [True: 0, False: 788]
  ------------------
  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|    788|#endif
  311|       |
  312|    788|#ifdef HAVE_SETENV
  313|    788|  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|    788|  return result == 0;
  326|    788|}

g_error_init:
   49|      2|{
   50|      2|  error_domain_ht = g_hash_table_new (NULL, NULL);
   51|      2|}
g_set_error:
  481|    115|{
  482|    115|  GError *new;
  483|       |
  484|    115|  va_list args;
  485|       |
  486|    115|  if (err == NULL)
  ------------------
  |  Branch (486:7): [True: 115, False: 0]
  ------------------
  487|    115|    return;
  488|       |
  489|    115|  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|    198|{
  523|    198|  if (err == NULL)
  ------------------
  |  Branch (523:7): [True: 198, False: 0]
  ------------------
  524|    198|    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_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|  1.99k|{
 1478|  1.99k|  guint node_index;
 1479|  1.99k|  guint node_hash;
 1480|       |
 1481|  1.99k|  g_return_val_if_fail (hash_table != NULL, NULL);
  ------------------
  |  |  663|  1.99k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.99k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.99k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.99k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.99k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.99k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.99k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.99k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.99k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.99k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.99k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.99k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.99k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.99k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.99k|      G_PASTE (_g_boolean_var_, uniq) = 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.99k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.99k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.99k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.99k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.99k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.99k|      { } \
  |  |  666|  1.99k|    else \
  |  |  667|  1.99k|      { \
  |  |  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.99k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.99k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.99k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1482|       |
 1483|  1.99k|  node_index = g_hash_table_lookup_node (hash_table, key, &node_hash);
 1484|       |
 1485|  1.99k|  return HASH_IS_REAL (hash_table->hashes[node_index])
  ------------------
  |  |  185|  1.99k|#define HASH_IS_REAL(h_) ((h_) >= 2)
  |  |  ------------------
  |  |  |  Branch (185:26): [True: 107, False: 1.88k]
  |  |  ------------------
  ------------------
 1486|  1.99k|    ? g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values)
 1487|       |    : NULL;
 1488|  1.99k|}
g_hash_table_insert:
 1600|    264|{
 1601|    264|  return g_hash_table_insert_internal (hash_table, key, value, FALSE);
  ------------------
  |  |  925|    264|#define	FALSE	(0)
  ------------------
 1602|    264|}
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|    107|{
 2430|    107|  const gchar *string1 = v1;
 2431|    107|  const gchar *string2 = v2;
 2432|       |
 2433|    107|  return strcmp (string1, string2) == 0;
 2434|    107|}
g_str_hash:
 2459|    637|{
 2460|    637|  const signed char *p;
 2461|    637|  guint32 h = 5381;
 2462|       |
 2463|  8.00k|  for (p = v; *p != '\0'; p++)
  ------------------
  |  Branch (2463:15): [True: 7.36k, False: 637]
  ------------------
 2464|  7.36k|    h = (h << 5) + h + *p;
 2465|       |
 2466|    637|  return h;
 2467|    637|}
g_direct_hash:
 2485|  1.57k|{
 2486|  1.57k|  return GPOINTER_TO_UINT (v);
  ------------------
  |  |  104|  1.57k|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 2487|  1.57k|}
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|    246|{
  333|       |#ifndef USE_SMALL_ARRAYS
  334|       |  is_big = TRUE;
  335|       |#endif
  336|    246|  return is_big ? *(((gpointer *) a) + index) : GUINT_TO_POINTER (*(((guint *) a) + index));
  ------------------
  |  |  107|    107|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
  |  Branch (336:10): [True: 139, False: 107]
  ------------------
  337|    246|}
ghash.c:g_hash_table_insert_node:
 1244|    265|{
 1245|    265|  gboolean already_exists;
 1246|    265|  guint old_hash;
 1247|    265|  gpointer key_to_free = NULL;
 1248|    265|  gpointer key_to_keep = NULL;
 1249|    265|  gpointer value_to_free = NULL;
 1250|       |
 1251|    265|  old_hash = hash_table->hashes[node_index];
 1252|    265|  already_exists = HASH_IS_REAL (old_hash);
  ------------------
  |  |  185|    265|#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|    265|  if (already_exists)
  ------------------
  |  Branch (1272:7): [True: 0, False: 265]
  ------------------
 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|    265|  else
 1292|    265|    {
 1293|    265|      hash_table->hashes[node_index] = key_hash;
 1294|    265|      key_to_keep = new_key;
 1295|    265|    }
 1296|       |
 1297|       |  /* Resize key/value arrays and split table as necessary */
 1298|    265|  g_hash_table_ensure_keyval_fits (hash_table, key_to_keep, new_value);
 1299|    265|  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|    265|  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|    265|  if (!already_exists)
  ------------------
  |  Branch (1305:7): [True: 265, False: 0]
  ------------------
 1306|    265|    {
 1307|    265|      hash_table->nnodes++;
 1308|       |
 1309|    265|      if (HASH_IS_UNUSED (old_hash))
  ------------------
  |  |  183|    265|#define HASH_IS_UNUSED(h_) ((h_) == UNUSED_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  181|    265|#define UNUSED_HASH_VALUE 0
  |  |  ------------------
  |  |  |  Branch (183:28): [True: 265, False: 0]
  |  |  ------------------
  ------------------
 1310|    265|        {
 1311|       |          /* We replaced an empty node, and not a tombstone */
 1312|    265|          hash_table->noccupied++;
 1313|    265|          g_hash_table_maybe_resize (hash_table);
 1314|    265|        }
 1315|       |
 1316|    265|#ifndef G_DISABLE_ASSERT
 1317|    265|      hash_table->version++;
 1318|    265|#endif
 1319|    265|    }
 1320|       |
 1321|    265|  if (already_exists)
  ------------------
  |  Branch (1321:7): [True: 0, False: 265]
  ------------------
 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|    265|  return !already_exists;
 1330|    265|}
ghash.c:g_hash_table_ensure_keyval_fits:
  899|    265|{
  900|    265|  gboolean is_a_set = (hash_table->keys == hash_table->values);
  901|       |
  902|    265|#ifdef USE_SMALL_ARRAYS
  903|       |
  904|       |  /* Convert from set to map? */
  905|    265|  if (is_a_set)
  ------------------
  |  Branch (905:7): [True: 28, False: 237]
  ------------------
  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|    244|  if (!hash_table->have_big_keys)
  ------------------
  |  Branch (925:7): [True: 7, False: 237]
  ------------------
  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|    244|  if (!is_a_set && !hash_table->have_big_values)
  ------------------
  |  Branch (937:7): [True: 242, False: 2]
  |  Branch (937:20): [True: 124, False: 118]
  ------------------
  938|    124|    {
  939|    124|      hash_table->have_big_values = g_hash_table_maybe_make_big_keys_or_values (&hash_table->values, value, hash_table->size);
  940|    124|    }
  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|    244|}
ghash.c:g_hash_table_maybe_make_big_keys_or_values:
  873|    131|{
  874|    131|  if (entry_is_big (v))
  ------------------
  |  Branch (874:7): [True: 10, False: 121]
  ------------------
  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|    121|  return FALSE;
  ------------------
  |  |  925|    121|#define	FALSE	(0)
  ------------------
  893|    131|}
ghash.c:entry_is_big:
  867|    131|{
  868|    131|  return (((guintptr) v) >> ((BIG_ENTRY_SIZE - SMALL_ENTRY_SIZE) * 8)) != 0;
  ------------------
  |  |  192|    131|#define BIG_ENTRY_SIZE (SIZEOF_VOID_P)
  |  |  ------------------
  |  |  |  |  408|    131|#define SIZEOF_VOID_P 8
  |  |  ------------------
  ------------------
                return (((guintptr) v) >> ((BIG_ENTRY_SIZE - SMALL_ENTRY_SIZE) * 8)) != 0;
  ------------------
  |  |  193|    131|#define SMALL_ENTRY_SIZE (SIZEOF_INT)
  |  |  ------------------
  |  |  |  |  396|    131|#define SIZEOF_INT 4
  |  |  ------------------
  ------------------
  869|    131|}
ghash.c:g_hash_table_lookup_node:
  408|  2.26k|{
  409|  2.26k|  guint node_index;
  410|  2.26k|  guint node_hash;
  411|  2.26k|  guint hash_value;
  412|  2.26k|  guint first_tombstone = 0;
  413|  2.26k|  gboolean have_tombstone = FALSE;
  ------------------
  |  |  925|  2.26k|#define	FALSE	(0)
  ------------------
  414|  2.26k|  guint step = 0;
  415|       |
  416|  2.26k|  hash_value = hash_table->hash_func (key);
  417|  2.26k|  if (G_UNLIKELY (!HASH_IS_REAL (hash_value)))
  ------------------
  |  | 1245|  2.26k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.26k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.26k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.26k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.26k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.26k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.26k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.26k|      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.26k|   else                                         \
  |  |  |  |  |  | 1240|  2.26k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.26k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.26k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.26k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.26k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.26k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.26k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 2.26k]
  |  |  ------------------
  ------------------
  418|      0|    hash_value = 2;
  419|       |
  420|  2.26k|  *hash_return = hash_value;
  421|       |
  422|  2.26k|  node_index = g_hash_table_hash_to_index (hash_table, hash_value);
  423|  2.26k|  node_hash = hash_table->hashes[node_index];
  424|       |
  425|  4.04k|  while (!HASH_IS_UNUSED (node_hash))
  ------------------
  |  |  183|  4.04k|#define HASH_IS_UNUSED(h_) ((h_) == UNUSED_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  181|  4.04k|#define UNUSED_HASH_VALUE 0
  |  |  ------------------
  ------------------
  |  Branch (425:10): [True: 1.89k, False: 2.15k]
  ------------------
  426|  1.89k|    {
  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.89k|      if (node_hash == hash_value)
  ------------------
  |  Branch (431:11): [True: 107, False: 1.78k]
  ------------------
  432|    107|        {
  433|    107|          gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
  434|       |
  435|    107|          if (hash_table->key_equal_func)
  ------------------
  |  Branch (435:15): [True: 107, False: 0]
  ------------------
  436|    107|            {
  437|    107|              if (hash_table->key_equal_func (node_key, key))
  ------------------
  |  Branch (437:19): [True: 107, False: 0]
  ------------------
  438|    107|                return node_index;
  439|    107|            }
  440|      0|          else if (node_key == key)
  ------------------
  |  Branch (440:20): [True: 0, False: 0]
  ------------------
  441|      0|            {
  442|      0|              return node_index;
  443|      0|            }
  444|    107|        }
  445|  1.78k|      else if (HASH_IS_TOMBSTONE (node_hash) && !have_tombstone)
  ------------------
  |  |  184|  3.57k|#define HASH_IS_TOMBSTONE(h_) ((h_) == TOMBSTONE_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  182|  1.78k|#define TOMBSTONE_HASH_VALUE 1
  |  |  ------------------
  |  |  |  Branch (184:31): [True: 0, False: 1.78k]
  |  |  ------------------
  ------------------
  |  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.78k|      step++;
  452|  1.78k|      node_index += step;
  453|  1.78k|      node_index &= hash_table->mask;
  454|  1.78k|      node_hash = hash_table->hashes[node_index];
  455|  1.78k|    }
  456|       |
  457|  2.15k|  if (have_tombstone)
  ------------------
  |  Branch (457:7): [True: 0, False: 2.15k]
  ------------------
  458|      0|    return first_tombstone;
  459|       |
  460|  2.15k|  return node_index;
  461|  2.15k|}
ghash.c:g_hash_table_hash_to_index:
  373|  2.58k|{
  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|  2.58k|  return (hash * 11) % hash_table->mod;
  379|  2.58k|}
ghash.c:g_hash_table_insert_internal:
 1564|    265|{
 1565|    265|  guint key_hash;
 1566|    265|  guint node_index;
 1567|       |
 1568|    265|  g_return_val_if_fail (hash_table != NULL, FALSE);
  ------------------
  |  |  663|    265|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    265|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    265|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    265|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    265|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    265| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    265|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    265|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    265|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 265, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    265|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    265|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    265|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    265|   else                                         \
  |  |  |  |  |  |  |  | 1240|    265|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    265|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    265|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    265|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    265|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 265, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    265|      { } \
  |  |  666|    265|    else \
  |  |  667|    265|      { \
  |  |  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|    265|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    265|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 265]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1569|       |
 1570|    265|  node_index = g_hash_table_lookup_node (hash_table, key, &key_hash);
 1571|       |
 1572|    265|  return g_hash_table_insert_node (hash_table, node_index, key_hash, key, value, keep_new_key, FALSE);
  ------------------
  |  |  925|    265|#define	FALSE	(0)
  ------------------
 1573|    265|}
ghash.c:g_hash_table_assign_key_or_value:
  341|    993|{
  342|       |#ifndef USE_SMALL_ARRAYS
  343|       |  is_big = TRUE;
  344|       |#endif
  345|    993|  if (is_big)
  ------------------
  |  Branch (345:7): [True: 748, False: 245]
  ------------------
  346|    748|    *(((gpointer *) a) + index) = v;
  347|    245|  else
  348|    245|    *(((guint *) a) + index) = GPOINTER_TO_UINT (v);
  ------------------
  |  |  104|    245|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
  349|    993|}
ghash.c:g_hash_table_maybe_resize:
  854|    265|{
  855|    265|  gsize noccupied = hash_table->noccupied;
  856|    265|  gsize size = hash_table->size;
  857|       |
  858|    265|  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: 258]
  |  Branch (858:41): [True: 0, False: 7]
  ------------------
  859|    265|      (size <= noccupied + (noccupied / 16)))
  ------------------
  |  Branch (859:7): [True: 17, False: 248]
  ------------------
  860|     17|    g_hash_table_resize (hash_table);
  861|    265|}
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: 7, False: 17]
  ------------------
  718|     24|        continue;                                                       \
  719|     24|                                                                        \
  720|     24|      hash_table->hashes[i] = UNUSED_HASH_VALUE;                        \
  ------------------
  |  |  181|     17|#define UNUSED_HASH_VALUE 0
  ------------------
  721|     17|      EVICT_KEYVAL (hash_table, i, NULL, NULL, key, value);             \
  ------------------
  |  |  773|     17|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  ------------------
  |  |  774|     17|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  775|     17|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  722|     17|                                                                        \
  723|     17|      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: 17, False: 7]
  ------------------
  743|     24|            {                                                           \
  744|     17|              ASSIGN_KEYVAL (hash_table, hash_val, key, value);         \
  ------------------
  |  |  769|     17|#define ASSIGN_KEYVAL(ht, index, key, value) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  ------------------
  |  |  770|     17|    g_hash_table_assign_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  771|     17|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  745|     17|              break;                                                    \
  746|     17|            }                                                           \
  747|     24|                                                                        \
  748|     24|          node_hash = replaced_hash;                                    \
  749|      7|          EVICT_KEYVAL (hash_table, hash_val, key, value, key, value);  \
  ------------------
  |  |  773|      7|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|      7|#define G_STMT_START  do
  |  |  ------------------
  |  |  774|      7|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  775|      7|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      7|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  750|      7|        }                                                               \
  751|     17|    }                                                                   \
  752|      2|}
ghash.c:get_status_bit:
  685|    825|{
  686|    825|  return (bitmap[index / 32] >> (index % 32)) & 1;
  687|    825|}
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: 6, False: 306]
  ------------------
  710|    312|        {                                                               \
  711|      6|          /* Clear tombstones */                                        \
  712|      6|          hash_table->hashes[i] = UNUSED_HASH_VALUE;                    \
  ------------------
  |  |  181|      6|#define UNUSED_HASH_VALUE 0
  ------------------
  713|      6|          continue;                                                     \
  714|      6|        }                                                               \
  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: 223]
  ------------------
  718|    306|        continue;                                                       \
  719|    306|                                                                        \
  720|    306|      hash_table->hashes[i] = UNUSED_HASH_VALUE;                        \
  ------------------
  |  |  181|    223|#define UNUSED_HASH_VALUE 0
  ------------------
  721|    223|      EVICT_KEYVAL (hash_table, i, NULL, NULL, key, value);             \
  ------------------
  |  |  759|    223|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|    223|#define G_STMT_START  do
  |  |  ------------------
  |  |  760|    223|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  761|    223|    (outvalue) = g_hash_table_evict_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  762|    223|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    223|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 223]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  722|    223|                                                                        \
  723|    223|      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|    471|          while (get_status_bit (reallocated_buckets_bitmap, hash_val)) \
  ------------------
  |  Branch (731:18): [True: 166, False: 305]
  ------------------
  732|    305|            {                                                           \
  733|    166|              step++;                                                   \
  734|    166|              hash_val += step;                                         \
  735|    166|              hash_val &= hash_table->mask;                             \
  736|    166|            }                                                           \
  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: 223, False: 82]
  ------------------
  743|    305|            {                                                           \
  744|    223|              ASSIGN_KEYVAL (hash_table, hash_val, key, value);         \
  ------------------
  |  |  754|    223|#define ASSIGN_KEYVAL(ht, index, key, value) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|    223|#define G_STMT_START  do
  |  |  ------------------
  |  |  755|    223|    g_hash_table_assign_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  756|    223|    g_hash_table_assign_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  757|    223|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    223|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 223]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  745|    223|              break;                                                    \
  746|    223|            }                                                           \
  747|    305|                                                                        \
  748|    305|          node_hash = replaced_hash;                                    \
  749|     82|          EVICT_KEYVAL (hash_table, hash_val, key, value, key, value);  \
  ------------------
  |  |  759|     82|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|     82|#define G_STMT_START  do
  |  |  ------------------
  |  |  760|     82|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  761|     82|    (outvalue) = g_hash_table_evict_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  762|     82|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     82|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 82]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  750|     82|        }                                                               \
  751|    223|    }                                                                   \
  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|  4.80k|{
   96|  4.80k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  4.80k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  4.80k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  4.80k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  4.80k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  4.80k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  4.80k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 4.80k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  4.80k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.80k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.80k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  4.80k|   else                                         \
  |  |  |  |  |  | 1240|  4.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|  4.80k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.80k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.80k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  4.80k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 4.80k, False: 0]
  |  |  ------------------
  ------------------
   97|  4.80k|    {
   98|  4.80k|      gpointer mem;
   99|       |
  100|  4.80k|      mem = malloc (n_bytes);
  101|  4.80k|      TRACE (GLIB_MEM_ALLOC((void*) mem, (unsigned int) n_bytes, 0, 0));
  102|  4.80k|      if (mem)
  ------------------
  |  Branch (102:11): [True: 4.80k, False: 0]
  ------------------
  103|  4.80k|	return mem;
  104|       |
  105|  4.80k|      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|  4.80k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  4.80k|#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|  4.80k|}
g_malloc0:
  128|  3.61k|{
  129|  3.61k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  3.61k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  3.61k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  3.61k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  3.61k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  3.61k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  3.61k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.61k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  3.61k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  3.61k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  3.61k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  3.61k|   else                                         \
  |  |  |  |  |  | 1240|  3.61k|      G_PASTE (_g_boolean_var_, uniq) = 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.61k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  3.61k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  3.61k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  3.61k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 3.61k, False: 0]
  |  |  ------------------
  ------------------
  130|  3.61k|    {
  131|  3.61k|      gpointer mem;
  132|       |
  133|  3.61k|      mem = calloc (1, n_bytes);
  134|  3.61k|      TRACE (GLIB_MEM_ALLOC((void*) mem, (unsigned int) n_bytes, 1, 0));
  135|  3.61k|      if (mem)
  ------------------
  |  Branch (135:11): [True: 3.61k, False: 0]
  ------------------
  136|  3.61k|	return mem;
  137|       |
  138|  3.61k|      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|  3.61k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.61k|#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|  3.61k|}
g_realloc:
  166|  2.83k|{
  167|  2.83k|  gpointer newmem;
  168|       |
  169|  2.83k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  2.83k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  2.83k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.83k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.83k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.83k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.83k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.83k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.83k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.83k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.83k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.83k|   else                                         \
  |  |  |  |  |  | 1240|  2.83k|      G_PASTE (_g_boolean_var_, uniq) = 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.83k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.83k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.83k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.83k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 2.83k, False: 0]
  |  |  ------------------
  ------------------
  170|  2.83k|    {
  171|  2.83k|      newmem = realloc (mem, n_bytes);
  172|  2.83k|      TRACE (GLIB_MEM_REALLOC((void*) newmem, (void*)mem, (unsigned int) n_bytes, 0));
  173|  2.83k|      if (newmem)
  ------------------
  |  Branch (173:11): [True: 2.83k, False: 0]
  ------------------
  174|  2.83k|	return newmem;
  175|       |
  176|  2.83k|      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|  2.83k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.83k|#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|  2.83k|}
g_free:
  207|  8.90k|{
  208|  8.90k|  free (mem);
  209|  8.90k|  TRACE(GLIB_MEM_FREE((void*) mem));
  210|  8.90k|}
g_free_sized:
  234|  5.07k|{
  235|       |#ifdef HAVE_FREE_SIZED
  236|       |  free_sized (mem, size);
  237|       |#else
  238|  5.07k|  free (mem);
  239|  5.07k|#endif
  240|  5.07k|  TRACE (GLIB_MEM_FREE ((void*) mem));
  241|  5.07k|}
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|    185|{
  437|    185|  if (SIZE_OVERFLOWS (n_blocks, n_block_bytes))
  ------------------
  |  |  361|    185|#define SIZE_OVERFLOWS(a,b) (G_UNLIKELY ((b) > 0 && (a) > G_MAXSIZE / (b)))
  |  |  ------------------
  |  |  |  | 1245|    185|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    185|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    185| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    185|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    185|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    555|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 185, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 185]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    185|      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|    185|   else                                         \
  |  |  |  |  |  |  |  | 1240|    185|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    185|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    185|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    185|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    185|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    185|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    185|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (361:29): [True: 0, False: 185]
  |  |  ------------------
  ------------------
  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|    185|  return g_realloc (mem, n_blocks * n_block_bytes);
  444|    185|}

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|    394|{
  236|    394|  gpointer *ptr = (gpointer *) pp;
  237|    394|  gpointer ref;
  238|       |
  239|    394|  ref = *ptr;
  240|    394|  *ptr = NULL;
  241|       |
  242|    394|  return ref;
  243|    394|}

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

g_vasprintf:
  327|    401|{
  328|    401|  gint len;
  329|    401|  g_return_val_if_fail (string != NULL, -1);
  ------------------
  |  |  663|    401|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    401|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    401|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    401|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    401|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    401| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    401|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    401|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    401|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 401, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    401|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    401|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    401|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    401|   else                                         \
  |  |  |  |  |  |  |  | 1240|    401|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    401|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    401|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    401|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    401|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 401, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    401|      { } \
  |  |  666|    401|    else \
  |  |  667|    401|      { \
  |  |  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|    401|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    401|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 401]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  330|       |
  331|       |#if !defined(USE_SYSTEM_PRINTF)
  332|       |
  333|       |  len = _g_gnulib_vasprintf (string, format, args);
  334|       |  if (len < 0)
  335|       |    *string = NULL;
  336|       |
  337|       |#elif defined (HAVE_VASPRINTF)
  338|       |
  339|    401|  {
  340|    401|    int saved_errno;
  341|    401|    len = vasprintf (string, format, args);
  342|    401|    saved_errno = errno;
  343|    401|    if (len < 0)
  ------------------
  |  Branch (343:9): [True: 0, False: 401]
  ------------------
  344|      0|      {
  345|      0|        if (saved_errno == ENOMEM)
  ------------------
  |  Branch (345:13): [True: 0, False: 0]
  ------------------
  346|      0|          {
  347|       |            /* Try and print a message to be a bit helpful, but stick to the
  348|       |             * bare minimum to avoid any code path which could try and fail to
  349|       |             * allocate additional memory. */
  350|      0|            fputs (G_STRLOC, stderr);
  ------------------
  |  |  886|      0|#define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
  |  |  ------------------
  |  |  |  |  861|      0|#define G_STRINGIFY(macro_or_string)	G_STRINGIFY_ARG (macro_or_string)
  |  |  |  |  ------------------
  |  |  |  |  |  |  862|      0|#define	G_STRINGIFY_ARG(contents)	#contents
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  351|      0|            fputs (": failed to allocate memory\n", stderr);
  352|      0|            g_abort ();
  ------------------
  |  |  427|      0|#  define g_abort() abort ()
  ------------------
  353|      0|          }
  354|      0|        else
  355|      0|          *string = NULL;
  356|      0|      }
  357|    401|  }
  358|       |
  359|       |#else
  360|       |
  361|       |  {
  362|       |    va_list args2;
  363|       |    char c;
  364|       |    int max_len;
  365|       |
  366|       |    va_copy (args2, args);
  367|       |
  368|       |    max_len = _g_vsnprintf (&c, 1, format, args);
  369|       |    if (max_len < 0)
  370|       |      {
  371|       |        /* This can happen if @format contains `%ls` or `%lc` and @args contains
  372|       |         * something not representable in the current locale’s encoding (which
  373|       |         * should be UTF-8, but ymmv). Basically: don’t use `%ls` or `%lc`. */
  374|       |        va_end (args2);
  375|       |        *string = NULL;
  376|       |        return -1;
  377|       |      }
  378|       |
  379|       |    *string = g_new (gchar, (size_t) max_len + 1);
  380|       |
  381|       |    len = _g_vsprintf (*string, format, args2);
  382|       |    va_end (args2);
  383|       |
  384|       |    /* _g_vsprintf() should have exactly the same failure modes as _g_vsnprintf() */
  385|       |    g_assert (len >= 0);
  386|       |  }
  387|       |#endif
  388|       |
  389|    401|  return len;
  390|    401|}

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|    105|{
  226|    105|  return quark_from_string_locked (string, TRUE);
  ------------------
  |  |  929|    105|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    105|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  227|    105|}
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|    149|{
  269|    149|  gchar* result = NULL;
  270|    149|  gchar **strings;
  271|    149|  guint seq_id;
  272|       |
  273|    149|  seq_id = (guint) g_atomic_int_get (&quark_seq_id);
  ------------------
  |  |  110|    149|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    149|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    149|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    149|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    149|    gint gaig_temp;                                                          \
  |  |  113|    149|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 149]
  |  |  ------------------
  |  |  114|    149|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    149|    (gint) gaig_temp;                                                        \
  |  |  116|    149|  }))
  ------------------
  274|    149|  strings = g_atomic_pointer_get (&quarks);
  ------------------
  |  |  127|    149|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|    149|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|    149|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|    149|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|    149|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|    149|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|    149|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|    149|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|    149|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|    149|    gapg_temp_newval;                                                      \
  |  |  133|    149|  }))
  ------------------
  275|       |
  276|    149|  if (quark < seq_id)
  ------------------
  |  Branch (276:7): [True: 149, False: 0]
  ------------------
  277|    149|    result = strings[quark];
  278|       |
  279|    149|  return result;
  280|    149|}
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|    105|{
  371|    105|  return quark_intern_string_locked (string, FALSE);
  ------------------
  |  |  925|    105|#define	FALSE	(0)
  ------------------
  372|    105|}
gquark.c:quark_from_string_locked:
  196|    117|{
  197|    117|  GQuark quark = 0;
  198|       |
  199|    117|  if (!string)
  ------------------
  |  Branch (199:7): [True: 0, False: 117]
  ------------------
  200|      0|    return 0;
  201|       |
  202|    117|  G_LOCK (quark_global);
  ------------------
  |  |  137|    117|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|    117|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  203|    117|  quark = quark_from_string (string, duplicate);
  204|    117|  G_UNLOCK (quark_global);
  ------------------
  |  |  138|    117|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|    117|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  205|       |
  206|    117|  return quark;
  207|    117|}
gquark.c:quark_from_string:
  179|    223|{
  180|    223|  GQuark quark = 0;
  181|       |
  182|    223|  quark = GPOINTER_TO_UINT (g_hash_table_lookup (quark_ht, string));
  ------------------
  |  |  104|    223|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
  183|       |
  184|    223|  if (!quark)
  ------------------
  |  Branch (184:7): [True: 117, False: 106]
  ------------------
  185|    117|    {
  186|    117|      quark = quark_new (duplicate ? quark_strdup (string) : (gchar *)string);
  ------------------
  |  Branch (186:26): [True: 0, False: 117]
  ------------------
  187|    117|      TRACE(GLIB_QUARK_NEW(string, quark));
  188|    117|    }
  189|       |
  190|    223|  return quark;
  191|    223|}
gquark.c:quark_new:
  285|    117|{
  286|    117|  GQuark quark;
  287|    117|  gchar **quarks_new;
  288|       |
  289|    117|  if (quark_seq_id % QUARK_BLOCK_SIZE == 0)
  ------------------
  |  |   48|    117|#define QUARK_BLOCK_SIZE         2048
  ------------------
  |  Branch (289:7): [True: 0, False: 117]
  ------------------
  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|    117|  quark = quark_seq_id;
  304|    117|  g_atomic_pointer_set (&quarks[quark], string);
  ------------------
  |  |  135|    117|  (G_GNUC_EXTENSION ({                                                      \
  |  |  ------------------
  |  |  |  |   62|    117|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  136|    117|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                \
  |  |  ------------------
  |  |  |  |  871|    117|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  137|    117|    glib_typeof ((atomic)) gaps_temp_atomic = (atomic);                     \
  |  |  ------------------
  |  |  |  |   39|    117|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  138|    117|    glib_typeof (*(atomic)) gaps_temp_newval = (newval);                    \
  |  |  ------------------
  |  |  |  |   39|    117|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  139|    117|    (void) (0 ? (gpointer) * (atomic) : NULL);                              \
  |  |  ------------------
  |  |  |  Branch (139:13): [Folded, False: 117]
  |  |  ------------------
  |  |  140|    117|    __atomic_store (gaps_temp_atomic, &gaps_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  141|    117|  }))
  ------------------
  305|    117|  g_hash_table_insert (quark_ht, string, GUINT_TO_POINTER (quark));
  ------------------
  |  |  107|    117|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
  306|    117|  g_atomic_int_inc (&quark_seq_id);
  ------------------
  |  |  162|    117|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    117|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|    117|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    117|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|    117|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 117]
  |  |  ------------------
  |  |  165|    117|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|    117|  }))
  ------------------
  307|       |
  308|    117|  return quark;
  309|    117|}
gquark.c:quark_intern_string_locked:
  314|    106|{
  315|    106|  const gchar *result;
  316|    106|  GQuark quark;
  317|       |
  318|    106|  if (!string)
  ------------------
  |  Branch (318:7): [True: 0, False: 106]
  ------------------
  319|      0|    return NULL;
  320|       |
  321|    106|  G_LOCK (quark_global);
  ------------------
  |  |  137|    106|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|    106|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  322|    106|  quark = quark_from_string (string, duplicate);
  323|    106|  result = quarks[quark];
  324|    106|  G_UNLOCK (quark_global);
  ------------------
  |  |  138|    106|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|    106|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  325|       |
  326|    106|  return result;
  327|    106|}

g_atomic_ref_count_init:
  191|  3.21k|{
  192|  3.21k|  g_return_if_fail (arc != NULL);
  ------------------
  |  |  650|  3.21k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.21k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  3.21k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.21k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.21k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.21k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.21k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.21k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.21k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.21k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.21k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.21k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.21k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.21k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.21k|      G_PASTE (_g_boolean_var_, uniq) = 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.21k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.21k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.21k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.21k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.21k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  3.21k|      { } \
  |  |  653|  3.21k|    else \
  |  |  654|  3.21k|      { \
  |  |  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.21k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.21k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.21k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  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|  3.21k|  *arc = 1;
  204|  3.21k|}
g_atomic_ref_count_inc:
  216|    788|{
  217|    788|  gint old_value;
  218|       |
  219|    788|  g_return_if_fail (arc != NULL);
  ------------------
  |  |  650|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    788|      { } \
  |  |  653|    788|    else \
  |  |  654|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  220|    788|  old_value = g_atomic_int_add (arc, 1);
  ------------------
  |  |  209|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|    788|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 788]
  |  |  ------------------
  |  |  212|    788|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|    788|  }))
  ------------------
  221|    788|  g_return_if_fail (old_value > 0);
  ------------------
  |  |  650|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    788|      { } \
  |  |  653|    788|    else \
  |  |  654|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|       |
  223|    788|  if (old_value == G_MAXINT)
  ------------------
  |  |   39|    788|#define G_MAXINT	INT_MAX
  ------------------
  |  Branch (223:7): [True: 0, False: 788]
  ------------------
  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|    788|}
g_atomic_ref_count_dec:
  243|  3.98k|{
  244|  3.98k|  gint old_value;
  245|       |
  246|  3.98k|  g_return_val_if_fail (arc != NULL, FALSE);
  ------------------
  |  |  663|  3.98k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.98k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.98k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.98k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.98k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.98k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.98k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.98k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.98k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.98k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.98k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.98k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.98k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.98k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.98k|      G_PASTE (_g_boolean_var_, uniq) = 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.98k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.98k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.98k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.98k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.98k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.98k|      { } \
  |  |  666|  3.98k|    else \
  |  |  667|  3.98k|      { \
  |  |  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.98k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.98k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.98k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  247|  3.98k|  old_value = g_atomic_int_add (arc, -1);
  ------------------
  |  |  209|  3.98k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  3.98k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|  3.98k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  3.98k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|  3.98k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 3.98k]
  |  |  ------------------
  |  |  212|  3.98k|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|  3.98k|  }))
  ------------------
  248|  3.98k|  g_return_val_if_fail (old_value > 0, FALSE);
  ------------------
  |  |  663|  3.98k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  3.98k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  3.98k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  3.98k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  3.98k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  3.98k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  3.98k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  3.98k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  3.98k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 3.98k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  3.98k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.98k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.98k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  3.98k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  3.98k|      G_PASTE (_g_boolean_var_, uniq) = 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.98k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  3.98k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  3.98k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  3.98k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 3.98k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  3.98k|      { } \
  |  |  666|  3.98k|    else \
  |  |  667|  3.98k|      { \
  |  |  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.98k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  3.98k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3.98k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  249|       |
  250|  3.98k|  return old_value == 1;
  251|  3.98k|}

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

g_slist_free:
   99|    839|{
  100|       |  g_slice_free_chain (GSList, list, next);
  ------------------
  |  |   86|    839|#define g_slice_free_chain(type, mem_chain, next)               \
  |  |  ------------------
  |  |  |  |  985|    839|#define G_STMT_START  do
  |  |  ------------------
  |  |   87|    839|G_STMT_START {                                                  \
  |  |   88|    839|  if (1) g_slice_free_chain_with_offset (sizeof (type),		\
  |  |  ------------------
  |  |  |  Branch (88:7): [True: 839, Folded]
  |  |  ------------------
  |  |   89|    839|                 (mem_chain), G_STRUCT_OFFSET (type, next)); 	\
  |  |  ------------------
  |  |  |  |  964|    839|      ((glong) offsetof (struct_type, member))
  |  |  ------------------
  |  |   90|    839|  else   (void) ((type*) 0 == (mem_chain));			\
  |  |   91|    839|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    839|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 839]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|    839|}
g_slist_free_1:
  119|     15|{
  120|     15|  _g_slist_free1 (list);
  ------------------
  |  |   62|     15|#define _g_slist_free1(slist)   g_slice_free (GSList, slist)
  |  |  ------------------
  |  |  |  |   81|     15|#define g_slice_free(type, mem)                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     15|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |   82|     15|G_STMT_START {                                                  \
  |  |  |  |   83|     15|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:7): [True: 15, Folded]
  |  |  |  |  ------------------
  |  |  |  |   84|     15|  else   (void) ((type*) 0 == (mem)); 				\
  |  |  |  |   85|     15|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     15|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 15]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  121|     15|}
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|     62|{
  229|     62|  GSList *new_list;
  230|       |
  231|     62|  new_list = _g_slist_alloc ();
  ------------------
  |  |   61|     62|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|     62|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  232|     62|  new_list->data = data;
  233|     62|  new_list->next = list;
  234|       |
  235|     62|  return new_list;
  236|     62|}
g_slist_remove:
  404|     15|{
  405|     15|  return _g_slist_remove_data (list, data, FALSE);
  ------------------
  |  |  925|     15|#define	FALSE	(0)
  ------------------
  406|     15|}
g_slist_copy:
  517|      4|{
  518|      4|  return g_slist_copy_deep (list, NULL, NULL);
  519|      4|}
g_slist_copy_deep:
  554|      4|{
  555|      4|  GSList *new_list = NULL;
  556|       |
  557|      4|  if (list)
  ------------------
  |  Branch (557:7): [True: 1, False: 3]
  ------------------
  558|      1|    {
  559|      1|      GSList *last;
  560|       |
  561|      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)))
  |  |  ------------------
  ------------------
  562|      1|      if (func)
  ------------------
  |  Branch (562:11): [True: 0, False: 1]
  ------------------
  563|      0|        new_list->data = func (list->data, user_data);
  564|      1|      else
  565|      1|        new_list->data = list->data;
  566|      1|      last = new_list;
  567|      1|      list = list->next;
  568|      1|      while (list)
  ------------------
  |  Branch (568:14): [True: 0, False: 1]
  ------------------
  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|      1|      last->next = NULL;
  579|      1|    }
  580|       |
  581|      4|  return new_list;
  582|      4|}
g_slist_find:
  664|     15|{
  665|     24|  while (list)
  ------------------
  |  Branch (665:10): [True: 9, False: 15]
  ------------------
  666|      9|    {
  667|      9|      if (list->data == data)
  ------------------
  |  Branch (667:11): [True: 0, False: 9]
  ------------------
  668|      0|        break;
  669|      9|      list = list->next;
  670|      9|    }
  671|       |
  672|     15|  return list;
  673|     15|}
g_slist_length:
  804|      5|{
  805|      5|  guint length;
  806|       |
  807|      5|  length = 0;
  808|      6|  while (list)
  ------------------
  |  Branch (808:10): [True: 1, False: 5]
  ------------------
  809|      1|    {
  810|      1|      length++;
  811|      1|      list = list->next;
  812|      1|    }
  813|       |
  814|      5|  return length;
  815|      5|}
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|     15|{
  369|     15|  GSList *tmp = NULL;
  370|     15|  GSList **previous_ptr = &list;
  371|       |
  372|     15|  while (*previous_ptr)
  ------------------
  |  Branch (372:10): [True: 15, False: 0]
  ------------------
  373|     15|    {
  374|     15|      tmp = *previous_ptr;
  375|     15|      if (tmp->data == data)
  ------------------
  |  Branch (375:11): [True: 15, False: 0]
  ------------------
  376|     15|        {
  377|     15|          *previous_ptr = tmp->next;
  378|     15|          g_slist_free_1 (tmp);
  379|     15|          if (!all)
  ------------------
  |  Branch (379:15): [True: 15, False: 0]
  ------------------
  380|     15|            break;
  381|     15|        }
  382|      0|      else
  383|      0|        {
  384|      0|          previous_ptr = &tmp->next;
  385|      0|        }
  386|     15|    }
  387|       |
  388|     15|  return list;
  389|     15|}
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|    425|{
  317|    425|  gchar *new_str;
  318|    425|  gsize length;
  319|       |
  320|    425|  if G_LIKELY (str)
  ------------------
  |  | 1244|    425|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    425|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    425| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    425|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    425|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    425|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 423, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    425|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    423|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    423|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    425|   else                                         \
  |  |  |  |  |  | 1240|    425|      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|    425|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    425|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    425|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    425|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:25): [True: 423, False: 2]
  |  |  ------------------
  ------------------
  321|    423|    {
  322|    423|      length = strlen (str) + 1;
  323|    423|      new_str = g_new (char, length);
  ------------------
  |  |  315|    423|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|    423|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    423|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    423|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    423|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    423|	  gpointer __p;						\
  |  |  |  |  264|    423|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 423, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|    423|	    __p = g_##func (__n);				\
  |  |  |  |  266|    423|	  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|    423|	  __p;							\
  |  |  |  |  272|    423|	}))
  |  |  ------------------
  ------------------
  324|    423|      memcpy (new_str, str, length);
  325|    423|    }
  326|      2|  else
  327|      2|    new_str = NULL;
  328|       |
  329|    425|  return new_str;
  330|    425|}
g_memdup2:
  381|     11|{
  382|     11|  gpointer new_mem;
  383|       |
  384|     11|  if (mem && byte_size != 0)
  ------------------
  |  Branch (384:7): [True: 11, False: 0]
  |  Branch (384:14): [True: 11, False: 0]
  ------------------
  385|     11|    {
  386|     11|      new_mem = g_malloc (byte_size);
  387|     11|      memcpy (new_mem, mem, byte_size);
  388|     11|    }
  389|      0|  else
  390|      0|    new_mem = NULL;
  391|       |
  392|     11|  return new_mem;
  393|     11|}
g_strdup_vprintf:
  508|    401|{
  509|    401|  gchar *string = NULL;
  510|       |
  511|    401|  g_vasprintf (&string, format, args);
  512|       |
  513|    401|  return string;
  514|    401|}
g_strdup_printf:
  536|    401|{
  537|    401|  gchar *buffer;
  538|    401|  va_list args;
  539|       |
  540|    401|  va_start (args, format);
  541|    401|  buffer = g_strdup_vprintf (format, args);
  542|    401|  va_end (args);
  543|       |
  544|    401|  return buffer;
  545|    401|}
g_ascii_strtoull:
 1177|    198|{
 1178|    198|#if defined(USE_XLOCALE) && defined(HAVE_STRTOULL_L)
 1179|    198|  return strtoull_l (nptr, endptr, base, get_C_locale ());
 1180|       |#else
 1181|       |  gboolean negative;
 1182|       |  guint64 result;
 1183|       |
 1184|       |  result = g_parse_long_long (nptr, (const gchar **) endptr, base, &negative);
 1185|       |
 1186|       |  /* Return the result of the appropriate sign.  */
 1187|       |  return negative ? -result : result;
 1188|       |#endif
 1189|    198|}
gstrfuncs.c:get_C_locale:
  292|    198|{
  293|    198|  static gsize initialized = FALSE;
  ------------------
  |  |  925|    198|#define	FALSE	(0)
  ------------------
  294|    198|  static locale_t C_locale = NULL;
  295|       |
  296|    198|  if (g_once_init_enter (&initialized))
  ------------------
  |  |  269|    198|  (G_GNUC_EXTENSION ({                                               \
  |  |  ------------------
  |  |  |  |   62|    198|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (269:3): [True: 1, False: 197]
  |  |  ------------------
  |  |  270|    198|    G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer));       \
  |  |  ------------------
  |  |  |  |  871|    198|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  271|    198|    (void) (0 ? (gpointer) *(location) : NULL);                      \
  |  |  ------------------
  |  |  |  Branch (271:13): [Folded, False: 198]
  |  |  ------------------
  |  |  272|    198|    (!g_atomic_pointer_get (location) &&                             \
  |  |  ------------------
  |  |  |  |  127|    396|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    198|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|    396|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    198|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|    396|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    198|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|    396|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    198|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|    396|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|    396|    gapg_temp_newval;                                                      \
  |  |  |  |  133|    396|  }))
  |  |  ------------------
  |  |  |  Branch (272:6): [True: 1, False: 197]
  |  |  ------------------
  |  |  273|    198|     g_once_init_enter (location));                                  \
  |  |  ------------------
  |  |  |  Branch (273:6): [True: 1, False: 0]
  |  |  ------------------
  |  |  274|    198|  }))
  ------------------
  297|      1|    {
  298|      1|      C_locale = newlocale (LC_ALL_MASK, "C", NULL);
  299|      1|      g_once_init_leave (&initialized, TRUE);
  ------------------
  |  |  276|      1|  (G_GNUC_EXTENSION ({                                               \
  |  |  ------------------
  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  277|      1|    G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer));       \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  278|      1|    0 ? (void) (*(location) = (result)) : (void) 0;                  \
  |  |  ------------------
  |  |  |  Branch (278:5): [Folded, False: 1]
  |  |  ------------------
  |  |  279|      1|    g_once_init_leave ((location), (gsize) (result));                \
  |  |  280|      1|  }))
  ------------------
  300|      1|    }
  301|       |
  302|    198|  return C_locale;
  303|    198|}

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|    234|{
  107|    234|  GString *string = g_slice_new (GString);
  ------------------
  |  |   48|    234|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
  108|       |
  109|    234|  string->allocated_len = 0;
  110|    234|  string->len   = 0;
  111|    234|  string->str   = NULL;
  112|       |
  113|    234|  g_string_expand (string, MAX (dfl_size, 64));
  ------------------
  |  |  933|    234|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 0, False: 234]
  |  |  ------------------
  ------------------
  114|    234|  string->str[0] = 0;
  115|       |
  116|    234|  return string;
  117|    234|}
g_string_new:
  130|    234|{
  131|    234|  GString *string;
  132|       |
  133|    234|  if (init == NULL || *init == '\0')
  ------------------
  |  Branch (133:7): [True: 234, False: 0]
  |  Branch (133:23): [True: 0, False: 0]
  ------------------
  134|    234|    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|    234|  return string;
  146|    234|}
g_string_free:
  236|    234|{
  237|    234|  gchar *segment;
  238|       |
  239|    234|  g_return_val_if_fail (string != NULL, NULL);
  ------------------
  |  |  663|    234|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    234|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    234|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    234|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    234|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    234| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    234|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    234|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    234|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 234, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    234|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    234|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    234|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    234|   else                                         \
  |  |  |  |  |  |  |  | 1240|    234|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    234|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    234|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    234|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    234|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 234, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    234|      { } \
  |  |  666|    234|    else \
  |  |  667|    234|      { \
  |  |  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|    234|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    234|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 234]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  240|       |
  241|    234|  if (free_segment)
  ------------------
  |  Branch (241:7): [True: 26, False: 208]
  ------------------
  242|     26|    {
  243|     26|      g_free (string->str);
  244|     26|      segment = NULL;
  245|     26|    }
  246|    208|  else
  247|    208|    segment = string->str;
  248|       |
  249|    234|  g_slice_free (GString, string);
  ------------------
  |  |   81|    234|#define g_slice_free(type, mem)                                 \
  |  |  ------------------
  |  |  |  |  985|    234|#define G_STMT_START  do
  |  |  ------------------
  |  |   82|    234|G_STMT_START {                                                  \
  |  |   83|    234|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  ------------------
  |  |  |  Branch (83:7): [True: 234, Folded]
  |  |  ------------------
  |  |   84|    234|  else   (void) ((type*) 0 == (mem)); 				\
  |  |   85|    234|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    234|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 234]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  250|       |
  251|    234|  return segment;
  252|    234|}
g_string_free_and_steal:
  269|    208|{
  270|    208|  return (g_string_free) (string, FALSE);
  ------------------
  |  |  925|    208|#define	FALSE	(0)
  ------------------
  271|    208|}
gstring.c:g_string_expand:
   70|    234|{
   71|       |  /* Detect potential overflow */
   72|    234|  if G_UNLIKELY ((G_MAXSIZE - string->len - 1) < len)
  ------------------
  |  | 1245|    234|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    234|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    234| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    234|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    234|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    234|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 234]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    234|      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|    234|   else                                         \
  |  |  |  |  |  | 1240|    234|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    234|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    234|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    234|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    234|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    234|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    234|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 234]
  |  |  ------------------
  ------------------
   73|    234|    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|    234|  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|    234|  if (string->allocated_len == 0)
  ------------------
  |  Branch (79:7): [True: 0, False: 234]
  ------------------
   80|      0|    string->allocated_len = string->len + len + 1;
   81|       |
   82|    234|  string->str = g_realloc (string->str, string->allocated_len);
   83|    234|}

g_strcmp0:
 3534|    401|{
 3535|    401|  if (!str1)
  ------------------
  |  Branch (3535:7): [True: 401, False: 0]
  ------------------
 3536|    401|    return -(str1 != str2);
 3537|      0|  if (!str2)
  ------------------
  |  Branch (3537:7): [True: 0, False: 0]
  ------------------
 3538|      0|    return str1 != str2;
 3539|      0|  return strcmp (str1, str2);
 3540|      0|}

g_rec_mutex_lock:
  396|     52|{
  397|     52|  pthread_mutex_lock (g_rec_mutex_get_impl (mutex));
  398|     52|}
g_rec_mutex_unlock:
  415|     52|{
  416|     52|  pthread_mutex_unlock (rec_mutex->p);
  417|     52|}
g_rw_lock_writer_lock:
  553|    262|{
  554|    262|  int retval = pthread_rwlock_wrlock (g_rw_lock_get_impl (rw_lock));
  555|       |
  556|    262|  if (retval != 0)
  ------------------
  |  Branch (556:7): [True: 0, False: 262]
  ------------------
  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|    262|}
g_rw_lock_writer_unlock:
  595|    262|{
  596|    262|  pthread_rwlock_unlock (g_rw_lock_get_impl (rw_lock));
  597|    262|}
g_rw_lock_reader_lock:
  623|    154|{
  624|    154|  int retval = pthread_rwlock_rdlock (g_rw_lock_get_impl (rw_lock));
  625|       |
  626|    154|  if (retval != 0)
  ------------------
  |  Branch (626:7): [True: 0, False: 154]
  ------------------
  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|    154|}
g_rw_lock_reader_unlock:
  664|    154|{
  665|    154|  pthread_rwlock_unlock (g_rw_lock_get_impl (rw_lock));
  666|    154|}
g_mutex_lock:
 1489|  1.93k|{
 1490|       |  /* empty -> owned and we're done.  Anything else, and we need to wait... */
 1491|  1.93k|  if G_UNLIKELY (!g_atomic_int_compare_and_exchange (&mutex->i[0],
  ------------------
  |  | 1245|  1.93k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  1.93k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.93k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.93k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.93k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  9.65k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 1.93k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.93k, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1.93k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.93k|      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.93k|   else                                         \
  |  |  |  |  |  | 1240|  1.93k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.93k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.93k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  1.93k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.93k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.93k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.93k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 1.93k]
  |  |  ------------------
  ------------------
 1492|  1.93k|                                                     G_MUTEX_STATE_EMPTY,
 1493|  1.93k|                                                     G_MUTEX_STATE_OWNED))
 1494|      0|    g_mutex_lock_slowpath (mutex);
 1495|  1.93k|}
g_mutex_unlock:
 1499|  1.93k|{
 1500|  1.93k|  guint prev;
 1501|       |
 1502|  1.93k|  prev = exchange_release (&mutex->i[0], G_MUTEX_STATE_EMPTY);
  ------------------
  |  | 1389|  1.93k|  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|  1.93k|  if G_UNLIKELY (prev != G_MUTEX_STATE_OWNED)
  ------------------
  |  | 1245|  1.93k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  1.93k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.93k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.93k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.93k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.93k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1.93k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.93k|      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.93k|   else                                         \
  |  |  |  |  |  | 1240|  1.93k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.93k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.93k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  1.93k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.93k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.93k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.93k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 1.93k]
  |  |  ------------------
  ------------------
 1506|      0|    g_mutex_unlock_slowpath (mutex, prev);
 1507|  1.93k|}
g_cond_broadcast:
 1566|     15|{
 1567|     15|  g_atomic_int_inc (&cond->i[0]);
  ------------------
  |  |  162|     15|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     15|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|     15|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     15|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|     15|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 15]
  |  |  ------------------
  |  |  165|     15|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|     15|  }))
  ------------------
 1568|       |
 1569|       |  g_futex_simple (&cond->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) INT_MAX, NULL);
  ------------------
  |  |  101|     15|  G_STMT_START                                                            \
  |  |  ------------------
  |  |  |  |  985|     15|#define G_STMT_START  do
  |  |  ------------------
  |  |  102|     15|  {                                                                       \
  |  |  103|     15|    int saved_errno = errno;                                              \
  |  |  104|     15|    int res = syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
  |  |  105|     15|    if (res < 0 && errno == EAGAIN)                                       \
  |  |  ------------------
  |  |  |  Branch (105:9): [True: 0, False: 15]
  |  |  |  Branch (105:20): [True: 0, False: 0]
  |  |  ------------------
  |  |  106|     15|      {                                                                   \
  |  |  107|      0|        errno = saved_errno;                                              \
  |  |  108|      0|      }                                                                   \
  |  |  109|     15|  }                                                                       \
  |  |  110|     15|  G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     15|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 15]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1570|     15|}
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|     52|{
  308|     52|  pthread_mutex_t *impl = g_atomic_pointer_get (&rec_mutex->p);
  ------------------
  |  |  127|     52|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|     52|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|     52|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|     52|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|     52|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|     52|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|     52|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|     52|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|     52|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|     52|    gapg_temp_newval;                                                      \
  |  |  133|     52|  }))
  ------------------
  309|       |
  310|     52|  if G_UNLIKELY (impl == NULL)
  ------------------
  |  | 1245|     52|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|     52|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|     52| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     52|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|     52|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|     52|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 50]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|     52|      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|     52|   else                                         \
  |  |  |  |  |  | 1240|     52|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     50|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     50|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|     52|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     52|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     52|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|     52|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 2, False: 50]
  |  |  ------------------
  ------------------
  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|     52|  return impl;
  319|     52|}
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|    832|{
  468|    832|  pthread_rwlock_t *impl = g_atomic_pointer_get (&lock->p);
  ------------------
  |  |  127|    832|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|    832|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|    832|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|    832|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|    832|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|    832|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|    832|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|    832|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|    832|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|    832|    gapg_temp_newval;                                                      \
  |  |  133|    832|  }))
  ------------------
  469|       |
  470|    832|  if G_UNLIKELY (impl == NULL)
  ------------------
  |  | 1245|    832|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    832|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    832| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    832|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    832|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    832|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 830]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    832|      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|    832|   else                                         \
  |  |  |  |  |  | 1240|    832|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    830|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    830|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    832|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    832|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    832|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    832|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 2, False: 830]
  |  |  ------------------
  ------------------
  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|    832|  return impl;
  479|    832|}

g_once_init_enter:
  622|      1|{
  623|      1|  gsize *value_location = (gsize *) location;
  624|      1|  gboolean need_init = FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
  625|      1|  g_mutex_lock (&g_once_mutex);
  626|      1|  if (g_atomic_pointer_get (value_location) == 0)
  ------------------
  |  |  127|      1|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|      1|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|      1|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|      1|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|      1|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|      1|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|      1|    gapg_temp_newval;                                                      \
  |  |  133|      1|  }))
  ------------------
  |  Branch (626:7): [True: 1, False: 0]
  ------------------
  627|      1|    {
  628|      1|      if (!g_slist_find (g_once_init_list, (void*) value_location))
  ------------------
  |  Branch (628:11): [True: 1, False: 0]
  ------------------
  629|      1|        {
  630|      1|          need_init = TRUE;
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  631|      1|          g_once_init_list = g_slist_prepend (g_once_init_list, (void*) value_location);
  632|      1|        }
  633|      0|      else
  634|      0|        do
  635|      0|          g_cond_wait (&g_once_cond, &g_once_mutex);
  636|      0|        while (g_slist_find (g_once_init_list, (void*) value_location));
  ------------------
  |  Branch (636:16): [True: 0, False: 0]
  ------------------
  637|      1|    }
  638|      1|  g_mutex_unlock (&g_once_mutex);
  639|      1|  return need_init;
  640|      1|}
g_once_init_enter_pointer:
  670|     14|{
  671|     14|  gpointer *value_location = (gpointer *) location;
  672|     14|  gboolean need_init = FALSE;
  ------------------
  |  |  925|     14|#define	FALSE	(0)
  ------------------
  673|     14|  g_mutex_lock (&g_once_mutex);
  674|     14|  if (g_atomic_pointer_get (value_location) == 0)
  ------------------
  |  |  127|     14|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|     14|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|     14|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|     14|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|     14|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|     14|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|     14|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|     14|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|     14|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|     14|    gapg_temp_newval;                                                      \
  |  |  133|     14|  }))
  ------------------
  |  Branch (674:7): [True: 14, False: 0]
  ------------------
  675|     14|    {
  676|     14|      if (!g_slist_find (g_once_init_list, (void *) value_location))
  ------------------
  |  Branch (676:11): [True: 14, False: 0]
  ------------------
  677|     14|        {
  678|     14|          need_init = TRUE;
  ------------------
  |  |  929|     14|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     14|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  679|     14|          g_once_init_list = g_slist_prepend (g_once_init_list, (void *) value_location);
  680|     14|        }
  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|     14|    }
  686|     14|  g_mutex_unlock (&g_once_mutex);
  687|     14|  return need_init;
  688|     14|}
g_once_init_leave:
  710|      1|{
  711|      1|  gsize *value_location = (gsize *) location;
  712|      1|  gsize old_value;
  713|       |
  714|      1|  g_return_if_fail (result != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  715|       |
  716|      1|  old_value = (gsize) g_atomic_pointer_exchange (value_location, result);
  ------------------
  |  |  273|      1|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  274|      1|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      1|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  275|      1|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (275:13): [Folded, False: 1]
  |  |  ------------------
  |  |  276|      1|    (gpointer) __atomic_exchange_n ((atomic), (newval), __ATOMIC_SEQ_CST);   \
  |  |  277|      1|  }))
  ------------------
  717|      1|  g_return_if_fail (old_value == 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  718|       |
  719|      1|  g_mutex_lock (&g_once_mutex);
  720|      1|  g_return_if_fail (g_once_init_list != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  721|      1|  g_once_init_list = g_slist_remove (g_once_init_list, (void*) value_location);
  722|      1|  g_cond_broadcast (&g_once_cond);
  723|      1|  g_mutex_unlock (&g_once_mutex);
  724|      1|}
g_once_init_leave_pointer:
  746|     14|{
  747|     14|  gpointer *value_location = (gpointer *) location;
  748|     14|  gpointer old_value;
  749|       |
  750|     14|  g_return_if_fail (result != 0);
  ------------------
  |  |  650|     14|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     14|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     14|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     14|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     14|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     14| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     14|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     14|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     14|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 14, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     14|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     14|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     14|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     14|   else                                         \
  |  |  |  |  |  |  |  | 1240|     14|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     14|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     14|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     14|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 14, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     14|      { } \
  |  |  653|     14|    else \
  |  |  654|     14|      { \
  |  |  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|     14|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     14|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 14]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  751|       |
  752|     14|  old_value = g_atomic_pointer_exchange (value_location, result);
  ------------------
  |  |  273|     14|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     14|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  274|     14|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|     14|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  275|     14|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (275:13): [Folded, False: 14]
  |  |  ------------------
  |  |  276|     14|    (gpointer) __atomic_exchange_n ((atomic), (newval), __ATOMIC_SEQ_CST);   \
  |  |  277|     14|  }))
  ------------------
  753|     14|  g_return_if_fail (old_value == 0);
  ------------------
  |  |  650|     14|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     14|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     14|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     14|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     14|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     14| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     14|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     14|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     14|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 14, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     14|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     14|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     14|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     14|   else                                         \
  |  |  |  |  |  |  |  | 1240|     14|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     14|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     14|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     14|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 14, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     14|      { } \
  |  |  653|     14|    else \
  |  |  654|     14|      { \
  |  |  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|     14|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     14|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 14]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  754|       |
  755|     14|  g_mutex_lock (&g_once_mutex);
  756|     14|  g_return_if_fail (g_once_init_list != NULL);
  ------------------
  |  |  650|     14|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     14|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     14|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     14|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     14|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     14| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     14|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     14|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     14|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 14, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     14|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     14|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     14|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     14|   else                                         \
  |  |  |  |  |  |  |  | 1240|     14|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     14|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     14|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     14|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 14, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     14|      { } \
  |  |  653|     14|    else \
  |  |  654|     14|      { \
  |  |  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|     14|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     14|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 14]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  757|     14|  g_once_init_list = g_slist_remove (g_once_init_list, (void *) value_location);
  758|     14|  g_cond_broadcast (&g_once_cond);
  759|     14|  g_mutex_unlock (&g_once_mutex);
  760|     14|}
g_thread_n_created:
  842|    788|{
  843|       |  return g_atomic_int_get (&g_thread_n_created_counter);
  ------------------
  |  |  110|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    788|    gint gaig_temp;                                                          \
  |  |  113|    788|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 788]
  |  |  ------------------
  |  |  114|    788|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    788|    (gint) gaig_temp;                                                        \
  |  |  116|    788|  }))
  ------------------
  844|    788|}

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

_g_atomic_array_init:
  105|     40|{
  106|       |  array->data = NULL;
  107|     40|}
_g_atomic_array_copy:
  129|     62|{
  130|     62|  guint8 *new, *old;
  131|     62|  gsize old_size, new_size;
  132|       |
  133|     62|  G_LOCK (array);
  ------------------
  |  |  137|     62|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     62|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  134|     62|  old = g_atomic_pointer_get (&array->data);
  ------------------
  |  |  127|     62|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|     62|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|     62|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|     62|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|     62|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|     62|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|     62|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|     62|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|     62|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|     62|    gapg_temp_newval;                                                      \
  |  |  133|     62|  }))
  ------------------
  135|     62|  if (old)
  ------------------
  |  Branch (135:7): [True: 3, False: 59]
  ------------------
  136|      3|    {
  137|      3|      old_size = G_ATOMIC_ARRAY_DATA_SIZE (old);
  ------------------
  |  |   39|      3|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
  138|      3|      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|      3|      new = freelist_alloc (new_size, additional_element_size != 0);
  143|      3|      memcpy (new, old, old_size);
  144|      3|    }
  145|     59|  else if (additional_element_size != 0)
  ------------------
  |  Branch (145:12): [True: 6, False: 53]
  ------------------
  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|     53|  else
  151|     53|    new = NULL;
  152|     62|  G_UNLOCK (array);
  ------------------
  |  |  138|     62|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     62|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  153|     62|  return new;
  154|     62|}
_g_atomic_array_update:
  163|      9|{
  164|      9|  guint8 *old;
  165|       |
  166|      9|  G_LOCK (array);
  ------------------
  |  |  137|      9|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|      9|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  167|      9|  old = g_atomic_pointer_exchange (&array->data, new_data);
  ------------------
  |  |  273|      9|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      9|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  274|      9|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      9|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  275|      9|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (275:13): [Folded, False: 9]
  |  |  ------------------
  |  |  276|      9|    (gpointer) __atomic_exchange_n ((atomic), (newval), __ATOMIC_SEQ_CST);   \
  |  |  277|      9|  }))
  ------------------
  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|      9|  g_assert (old == NULL || G_ATOMIC_ARRAY_DATA_SIZE (old) <= G_ATOMIC_ARRAY_DATA_SIZE (new_data));
  ------------------
  |  |  275|      9|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      9|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      9|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      9|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      9|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      9| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      9|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      9|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     18|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 9, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      9|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      9|   else                                         \
  |  |  |  |  |  |  |  | 1240|      9|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      9|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 9, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      9|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      9|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      9|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 9]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  177|      9|#endif
  178|       |
  179|      9|  if (old)
  ------------------
  |  Branch (179:7): [True: 0, False: 9]
  ------------------
  180|      0|    freelist_free (old);
  181|      9|  G_UNLOCK (array);
  ------------------
  |  |  138|      9|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|      9|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  182|      9|}
gatomicarray.c:freelist_alloc:
   62|      9|{
   63|      9|  gpointer mem;
   64|      9|  FreeListNode *free, **prev;
   65|      9|  gsize real_size;
   66|       |
   67|      9|  if (reuse)
  ------------------
  |  Branch (67:7): [True: 6, False: 3]
  ------------------
   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|      9|  real_size = sizeof (GAtomicArrayMetadata) + MAX (size, sizeof (FreeListNode));
  ------------------
  |  |  933|      9|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 6, False: 3]
  |  |  ------------------
  ------------------
   80|      9|  mem = g_slice_alloc (real_size);
   81|      9|  mem = ((char *) mem) + sizeof (GAtomicArrayMetadata);
   82|      9|  G_ATOMIC_ARRAY_DATA_SIZE (mem) = size;
  ------------------
  |  |   39|      9|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
   83|       |
   84|      9|#if ENABLE_VALGRIND
   85|      9|  VALGRIND_MALLOCLIKE_BLOCK (mem, real_size - sizeof (GAtomicArrayMetadata),
  ------------------
  |  | 6480|      9|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|      9|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|      9|    __extension__                                                 \
  |  |  |  |  |  |  415|      9|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|      9|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|      9|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|      9|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|      9|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  420|      9|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|      9|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|      9|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|      9|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|      9|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|      9|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|      9|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|      9|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|      9|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|      9|                    );                                            \
  |  |  |  |  |  |  430|      9|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|      9|    })
  |  |  |  |  ------------------
  |  |  |  |  205|      9|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|      9|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 9]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|      9|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
   86|      9|                             FALSE, FALSE);
   87|      9|#endif
   88|       |
   89|      9|  return mem;
   90|      9|}

_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|    788|{
 2410|    788|  GObject *object;
 2411|    788|  va_list var_args;
 2412|       |  
 2413|       |  /* short circuit for calls supplying no properties */
 2414|    788|  if (!first_property_name)
  ------------------
  |  Branch (2414:7): [True: 788, False: 0]
  ------------------
 2415|    788|    return g_object_new_with_properties (object_type, 0, NULL, NULL);
 2416|       |
 2417|    788|  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|    788|}
g_object_new_with_properties:
 2736|    788|{
 2737|    788|  GObjectClass *class, *unref_class = NULL;
 2738|    788|  GObject *object;
 2739|       |
 2740|    788|  g_return_val_if_fail (G_TYPE_IS_OBJECT (object_type), NULL);
  ------------------
  |  |  663|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    788|      { } \
  |  |  666|    788|    else \
  |  |  667|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2741|       |
 2742|       |  /* Try to avoid thrashing the ref_count if we don't need to (since
 2743|       |   * it's a locked operation).
 2744|       |   */
 2745|    788|  class = g_type_class_peek_static (object_type);
 2746|       |
 2747|    788|  if (class == NULL)
  ------------------
  |  Branch (2747:7): [True: 2, False: 786]
  ------------------
 2748|      2|    class = unref_class = g_type_class_ref (object_type);
 2749|       |
 2750|    788|  if (n_properties > 0)
  ------------------
  |  Branch (2750:7): [True: 0, False: 788]
  ------------------
 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|    788|  else
 2769|    788|    object = g_object_new_internal (class, NULL, 0);
 2770|       |
 2771|    788|  if (unref_class != NULL)
  ------------------
  |  Branch (2771:7): [True: 2, False: 786]
  ------------------
 2772|      2|    g_type_class_unref (unref_class);
 2773|       |
 2774|    788|  return object;
 2775|    788|}
g_object_ref:
 4233|    788|{
 4234|    788|  GObject *object = _object;
 4235|    788|  GToggleNotify toggle_notify;
 4236|    788|  gpointer toggle_data;
 4237|       |
 4238|    788|  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
  ------------------
  |  |  663|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    788|      { } \
  |  |  666|    788|    else \
  |  |  667|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4239|       |
 4240|    788|  object = object_ref (object, &toggle_notify, &toggle_data);
 4241|       |
 4242|    788|  if (toggle_notify)
  ------------------
  |  Branch (4242:7): [True: 0, False: 788]
  ------------------
 4243|      0|    toggle_notify (toggle_data, object, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4244|       |
 4245|    788|  return object;
 4246|    788|}
g_object_unref:
 4317|  1.57k|{
 4318|  1.57k|  GObject *object = _object;
 4319|  1.57k|  gint old_ref;
 4320|  1.57k|  GToggleNotify toggle_notify;
 4321|  1.57k|  gpointer toggle_data;
 4322|  1.57k|  GObjectNotifyQueue *nqueue;
 4323|  1.57k|  GType obj_gtype;
 4324|       |
 4325|  1.57k|  g_return_if_fail (G_IS_OBJECT (object));
  ------------------
  |  |  650|  1.57k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.57k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.57k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.57k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.57k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.57k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.57k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.57k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.57k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.57k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.57k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.57k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.57k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.57k|      G_PASTE (_g_boolean_var_, uniq) = 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.57k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.57k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.57k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.57k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.57k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.57k|      { } \
  |  |  653|  1.57k|    else \
  |  |  654|  1.57k|      { \
  |  |  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.57k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.57k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.57k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|  1.57k|  obj_gtype = G_TYPE_FROM_INSTANCE (object);
  ------------------
  |  |  646|  1.57k|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  ------------------
  |  |  |  |  657|  1.57k|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  ------------------
  ------------------
 4341|  1.57k|  (void) obj_gtype;
 4342|       |
 4343|  1.57k|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|  1.57k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  1.57k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  1.57k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  1.57k|    gint gaig_temp;                                                          \
  |  |  113|  1.57k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 1.57k]
  |  |  ------------------
  |  |  114|  1.57k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  1.57k|    (gint) gaig_temp;                                                        \
  |  |  116|  1.57k|  }))
  ------------------
 4344|       |
 4345|  1.57k|retry_beginning:
 4346|       |
 4347|  1.57k|  if (old_ref > 2)
  ------------------
  |  Branch (4347:7): [True: 394, False: 1.18k]
  ------------------
 4348|    394|    {
 4349|       |      /* We have many references. If we can decrement the ref counter, we are done. */
 4350|    394|      if (!g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|    394|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|    394|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|    394|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|    394|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 394]
  |  |  ------------------
  |  |  197|    394|    *(preval) = (oldval);                                                      \
  |  |  198|    394|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|    394|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 394, False: 0]
  |  |  ------------------
  |  |  199|    394|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|    394|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|    394|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    394|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|    394|  }))
  ------------------
  |  Branch (4350:11): [True: 0, False: 394]
  ------------------
 4351|    394|                                                   old_ref, old_ref - 1, &old_ref))
 4352|      0|        goto retry_beginning;
 4353|       |
 4354|       |      /* Beware: object might be a dangling pointer. */
 4355|    394|      TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4356|    394|      return;
 4357|    394|    }
 4358|       |
 4359|  1.18k|  if (old_ref == 2)
  ------------------
  |  Branch (4359:7): [True: 394, False: 788]
  ------------------
 4360|    394|    {
 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|    394|      if (!toggle_refs_check_and_ref_or_deref (object, FALSE, &old_ref, &toggle_notify, &toggle_data))
  ------------------
  |  |  925|    394|#define	FALSE	(0)
  ------------------
  |  Branch (4371:11): [True: 0, False: 394]
  ------------------
 4372|      0|        goto retry_beginning;
 4373|       |
 4374|       |      /* Beware: object might be a dangling pointer. */
 4375|    394|      TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4376|    394|      if (toggle_notify)
  ------------------
  |  Branch (4376:11): [True: 0, False: 394]
  ------------------
 4377|      0|        toggle_notify (toggle_data, object, TRUE);
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4378|    394|      return;
 4379|    394|    }
 4380|       |
 4381|    788|  if (G_UNLIKELY (old_ref != 1))
  ------------------
  |  | 1245|    788|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 788]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    788|      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|    788|   else                                         \
  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 788]
  |  |  ------------------
  ------------------
 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|    788|  if (!_object_unref_clear_weak_locations (object, &old_ref, FALSE))
  ------------------
  |  |  925|    788|#define	FALSE	(0)
  ------------------
  |  Branch (4390:7): [True: 0, False: 788]
  ------------------
 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|    788|  nqueue = g_object_notify_queue_freeze (object);
 4411|       |
 4412|    788|  TRACE (GOBJECT_OBJECT_DISPOSE (object, G_TYPE_FROM_INSTANCE (object), 1));
 4413|    788|  G_OBJECT_GET_CLASS (object)->dispose (object);
  ------------------
  |  |   89|    788|#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  571|    788|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    788|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4414|    788|  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|    788|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    788|    gint gaig_temp;                                                          \
  |  |  113|    788|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 788]
  |  |  ------------------
  |  |  114|    788|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    788|    (gint) gaig_temp;                                                        \
  |  |  116|    788|  }))
  ------------------
 4419|       |
 4420|    788|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|    788|  if (old_ref > 1 && nqueue)
  ------------------
  |  Branch (4424:7): [True: 0, False: 788]
  |  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|    788|  if (old_ref > 2)
  ------------------
  |  Branch (4441:7): [True: 0, False: 788]
  ------------------
 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|    788|  if (old_ref == 2)
  ------------------
  |  Branch (4453:7): [True: 0, False: 788]
  ------------------
 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|    788|  if (!_object_unref_clear_weak_locations (object, &old_ref, TRUE))
  ------------------
  |  |  929|    788|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    788|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (4472:7): [True: 0, False: 788]
  ------------------
 4473|      0|    goto retry_decrement;
 4474|       |
 4475|    788|  TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4476|       |
 4477|       |  /* The object is almost gone. Finalize. */
 4478|       |
 4479|    788|  g_datalist_id_set_data (&object->qdata, quark_closure_array, NULL);
  ------------------
  |  |  105|    788|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 4480|    788|  g_signal_handlers_destroy (object);
 4481|    788|  g_datalist_id_set_data (&object->qdata, quark_weak_notifies, NULL);
  ------------------
  |  |  105|    788|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 4482|       |
 4483|    788|  TRACE (GOBJECT_OBJECT_FINALIZE (object, G_TYPE_FROM_INSTANCE (object)));
 4484|    788|  G_OBJECT_GET_CLASS (object)->finalize (object);
  ------------------
  |  |   89|    788|#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  571|    788|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    788|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4485|    788|  TRACE (GOBJECT_OBJECT_FINALIZE_END (object, G_TYPE_FROM_INSTANCE (object)));
 4486|       |
 4487|    788|  GOBJECT_IF_DEBUG (OBJECTS,
 4488|    788|                    {
 4489|    788|                      gboolean was_present;
 4490|       |
 4491|       |                      /* catch objects not chaining finalize handlers */
 4492|    788|                      G_LOCK (debug_objects);
 4493|    788|                      was_present = g_hash_table_remove (debug_objects_ht, object);
 4494|    788|                      G_UNLOCK (debug_objects);
 4495|       |
 4496|    788|                      if (was_present)
 4497|    788|                        g_critical ("Object %p of type %s not finalized correctly.",
 4498|    788|                                    object, G_OBJECT_TYPE_NAME (object));
 4499|    788|                    });
 4500|    788|  g_type_free_instance ((GTypeInstance *) object);
 4501|    788|}
g_clear_object:
 4523|    789|{
 4524|       |  g_clear_pointer (object_ptr, g_object_unref);
  ------------------
  |  |  136|    789|  G_STMT_START                                           \
  |  |  ------------------
  |  |  |  |  985|    789|#define G_STMT_START  do
  |  |  ------------------
  |  |  137|    789|  {                                                      \
  |  |  138|    789|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|    789|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  139|    789|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  ------------------
  |  |  |  |   39|    789|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  140|    789|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  ------------------
  |  |  |  |   39|    789|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  141|    789|    *_pp = NULL;                                         \
  |  |  142|    789|    if (_ptr)                                            \
  |  |  ------------------
  |  |  |  Branch (142:9): [True: 0, False: 789]
  |  |  ------------------
  |  |  143|    789|      (destroy) (_ptr);                                  \
  |  |  144|    789|  }                                                      \
  |  |  145|    789|  G_STMT_END                                             \
  |  |  ------------------
  |  |  |  |  993|    789|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 789]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  146|    789|  GLIB_AVAILABLE_MACRO_IN_2_34
  ------------------
 4525|    789|}
g_value_get_object:
 5113|    394|{
 5114|    394|  g_return_val_if_fail (G_VALUE_HOLDS_OBJECT (value), NULL);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.97k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 394]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 394]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5115|       |  
 5116|    394|  return value->data[0].v_pointer;
 5117|    394|}
gobject.c:g_object_base_class_init:
  935|      5|{
  936|      5|  GObjectClass *pclass = g_type_class_peek_parent (class);
  937|       |
  938|       |  /* Don't inherit HAS_DERIVED_CLASS flag from parent class */
  939|      5|  class->flags &= ~CLASS_HAS_DERIVED_CLASS_FLAG;
  ------------------
  |  |   89|      5|#define CLASS_HAS_DERIVED_CLASS_FLAG 0x2
  ------------------
  940|       |
  941|      5|  if (pclass)
  ------------------
  |  Branch (941:7): [True: 4, False: 1]
  ------------------
  942|      4|    pclass->flags |= CLASS_HAS_DERIVED_CLASS_FLAG;
  ------------------
  |  |   89|      4|#define CLASS_HAS_DERIVED_CLASS_FLAG 0x2
  ------------------
  943|       |
  944|       |  /* reset instance specific fields and methods that don't get inherited */
  945|      5|  class->construct_properties = pclass ? g_slist_copy (pclass->construct_properties) : NULL;
  ------------------
  |  Branch (945:33): [True: 4, False: 1]
  ------------------
  946|      5|  class->n_construct_properties = g_slist_length (class->construct_properties);
  947|      5|  class->get_property = NULL;
  948|      5|  class->set_property = NULL;
  949|       |  class->pspecs = NULL;
  950|      5|  class->n_pspecs = 0;
  951|      5|}
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|    788|{
 3010|       |  /* empty default impl to allow unconditional upchaining */
 3011|    788|}
gobject.c:g_object_real_dispose:
 1751|    788|{
 1752|    788|  g_signal_handlers_destroy (object);
 1753|       |
 1754|       |  /* GWeakNotify and GClosure can call into user code */
 1755|    788|  g_datalist_id_set_data (&object->qdata, quark_weak_notifies, NULL);
  ------------------
  |  |  105|    788|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 1756|       |  g_datalist_id_set_data (&object->qdata, quark_closure_array, NULL);
  ------------------
  |  |  105|    788|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 1757|    788|}
gobject.c:g_object_finalize:
 1781|    788|{
 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|    788|  g_datalist_clear (&object->qdata);
 1800|       |  
 1801|    788|  GOBJECT_IF_DEBUG (OBJECTS,
 1802|    788|    {
 1803|    788|      G_LOCK (debug_objects);
 1804|    788|      g_assert (g_hash_table_contains (debug_objects_ht, object));
 1805|    788|      g_hash_table_remove (debug_objects_ht, object);
 1806|    788|      debug_objects_count--;
 1807|    788|      G_UNLOCK (debug_objects);
 1808|    788|    });
 1809|    788|}
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|    394|{
 1424|    394|  if (((GTypeInstance *) (*pspec))->g_class->g_type == G_TYPE_PARAM_OVERRIDE)
  ------------------
  |  |  509|    394|#define	G_TYPE_PARAM_OVERRIDE		   (g_param_spec_types[20])
  ------------------
  |  Branch (1424:7): [True: 0, False: 394]
  ------------------
 1425|      0|    *pspec = ((GParamSpecOverride *) (*pspec))->overridden;
 1426|    394|}
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|  1.97k|{
 1638|       |  return g_atomic_int_get (object_get_optional_flags_p (object));
  ------------------
  |  |  110|  1.97k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  1.97k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|  1.97k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  1.97k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|  1.97k|    gint gaig_temp;                                                          \
  |  |  113|  1.97k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 1.97k]
  |  |  ------------------
  |  |  114|  1.97k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|  1.97k|    (gint) gaig_temp;                                                        \
  |  |  116|  1.97k|  }))
  ------------------
 1639|  1.97k|}
gobject.c:object_get_optional_flags_p:
  246|  6.69k|{
  247|  6.69k|#if HAVE_OPTIONAL_FLAGS_IN_GOBJECT
  248|  6.69k|  return &(((GObjectReal *) object)->optional_flags);
  249|       |#else
  250|       |  return &g_object_get_instance_private (object)->optional_flags;
  251|       |#endif
  252|  6.69k|}
gobject.c:object_set_optional_flags:
 1644|    788|{
 1645|       |  g_atomic_int_or (object_get_optional_flags_p (object), flags);
  ------------------
  |  |  221|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  222|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  223|    788|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (223:13): [Folded, False: 788]
  |  |  ------------------
  |  |  224|    788|    (guint) __atomic_fetch_or ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  225|    788|  }))
  ------------------
 1646|    788|}
gobject.c:g_object_init:
 1699|    788|{
 1700|    788|  object->ref_count = 1;
 1701|    788|  object->qdata = NULL;
 1702|       |
 1703|    788|  if (CLASS_HAS_PROPS (class) && CLASS_NEEDS_NOTIFY (class))
  ------------------
  |  |   78|  1.57k|    ((class)->flags & CLASS_HAS_PROPS_FLAG)
  |  |  ------------------
  |  |  |  |   76|    788|#define CLASS_HAS_PROPS_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (78:5): [True: 394, False: 394]
  |  |  ------------------
  ------------------
                if (CLASS_HAS_PROPS (class) && CLASS_NEEDS_NOTIFY (class))
  ------------------
  |  |   87|    394|    (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   83|    788|#define CLASS_HAS_NOTIFY(class) ((class)->notify != NULL)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:33): [True: 0, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   85|    394|    ((class)->dispatch_properties_changed != g_object_dispatch_properties_changed)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (85:5): [True: 0, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|    788|  set_object_in_construction (object);
 1711|       |
 1712|    788|  GOBJECT_IF_DEBUG (OBJECTS,
 1713|    788|    {
 1714|    788|      G_LOCK (debug_objects);
 1715|    788|      debug_objects_count++;
 1716|    788|      g_hash_table_add (debug_objects_ht, object);
 1717|    788|      G_UNLOCK (debug_objects);
 1718|    788|    });
 1719|    788|}
gobject.c:set_object_in_construction:
 1686|    788|{
 1687|    788|  object_set_optional_flags (object, OPTIONAL_FLAG_IN_CONSTRUCTION);
  ------------------
  |  |  107|    788|#define OPTIONAL_FLAG_IN_CONSTRUCTION    (1 << 0)
  ------------------
 1688|    788|}
gobject.c:g_object_notify_queue_freeze:
  682|    788|{
  683|    788|  GObjectNotifyQueue *nqueue;
  684|       |
  685|    788|  object_bit_lock (object, OPTIONAL_BIT_LOCK_NOTIFY);
  ------------------
  |  |  128|    788|#define OPTIONAL_BIT_LOCK_NOTIFY         2
  ------------------
  686|    788|  nqueue = g_datalist_id_get_data (&object->qdata, quark_notify_queue);
  687|    788|  if (!nqueue)
  ------------------
  |  Branch (687:7): [True: 788, False: 0]
  ------------------
  688|    788|    {
  689|    788|      nqueue = g_object_notify_queue_create_queue_frozen (object);
  690|    788|      goto out;
  691|    788|    }
  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|    788|out:
  702|    788|  object_bit_unlock (object, OPTIONAL_BIT_LOCK_NOTIFY);
  ------------------
  |  |  128|    788|#define OPTIONAL_BIT_LOCK_NOTIFY         2
  ------------------
  703|       |
  704|    788|  return nqueue;
  705|      0|}
gobject.c:g_object_notify_queue_create_queue_frozen:
  665|    788|{
  666|    788|  GObjectNotifyQueue *nqueue;
  667|       |
  668|    788|  nqueue = g_new0 (GObjectNotifyQueue, 1);
  ------------------
  |  |  332|    788|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    788|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    788|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    788|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    788|	  gpointer __p;						\
  |  |  |  |  264|    788|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 788]
  |  |  |  |  ------------------
  |  |  |  |  265|    788|	    __p = g_##func (__n);				\
  |  |  |  |  266|    788|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    788|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    788|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    788|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 788]
  |  |  |  |  |  Branch (267:26): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    788|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    788|	  else							\
  |  |  |  |  270|    788|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    788|	  __p;							\
  |  |  |  |  272|    788|	}))
  |  |  ------------------
  ------------------
  669|       |
  670|    788|  *nqueue = (GObjectNotifyQueue){
  671|    788|    .freeze_count = 1,
  672|    788|  };
  673|       |
  674|    788|  g_datalist_id_set_data_full (&object->qdata, quark_notify_queue,
  675|    788|                               nqueue, g_object_notify_queue_free);
  676|       |
  677|    788|  return nqueue;
  678|    788|}
gobject.c:g_object_notify_queue_free:
  656|    788|{
  657|    788|  GObjectNotifyQueue *nqueue = data;
  658|       |
  659|    788|  g_slist_free (nqueue->pspecs);
  660|    788|  g_free_sized (nqueue, sizeof (GObjectNotifyQueue));
  661|    788|}
gobject.c:g_object_new_internal:
 2598|    788|{
 2599|    788|  GObjectNotifyQueue *nqueue = NULL;
 2600|    788|  GObject *object;
 2601|    788|  guint i;
 2602|       |
 2603|    788|  if G_UNLIKELY (CLASS_HAS_CUSTOM_CONSTRUCTOR (class))
  ------------------
  |  | 1245|    788|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 788]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    788|      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|    788|   else                                         \
  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 788]
  |  |  ------------------
  ------------------
 2604|      0|    return g_object_new_with_custom_constructor (class, params, n_params);
 2605|       |
 2606|    788|  object = (GObject *) g_type_create_instance (class->g_type_class.g_type);
 2607|       |
 2608|    788|  g_assert (g_object_is_aligned (object));
  ------------------
  |  |  275|    788|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    788|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    788|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    788|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    788|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2609|       |
 2610|    788|  unset_object_in_construction (object);
 2611|       |
 2612|    788|  if (CLASS_HAS_PROPS (class))
  ------------------
  |  |   78|    788|    ((class)->flags & CLASS_HAS_PROPS_FLAG)
  |  |  ------------------
  |  |  |  |   76|    788|#define CLASS_HAS_PROPS_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (78:5): [True: 394, False: 394]
  |  |  ------------------
  ------------------
 2613|    394|    {
 2614|    394|      GSList *node;
 2615|       |
 2616|    394|      if (_g_object_has_notify_handler (object))
  ------------------
  |  Branch (2616:11): [True: 0, False: 394]
  ------------------
 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|    788|      for (node = class->construct_properties; node; node = node->next)
  ------------------
  |  Branch (2630:48): [True: 394, False: 394]
  ------------------
 2631|    394|        {
 2632|    394|          const GValue *value;
 2633|    394|          GParamSpec *pspec;
 2634|    394|          guint j;
 2635|    394|          gboolean user_specified = FALSE;
  ------------------
  |  |  925|    394|#define	FALSE	(0)
  ------------------
 2636|       |
 2637|    394|          pspec = node->data;
 2638|    394|          value = NULL; /* to silence gcc... */
 2639|       |
 2640|    394|          for (j = 0; j < n_params; j++)
  ------------------
  |  Branch (2640:23): [True: 0, False: 394]
  ------------------
 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|    394|          if (value == NULL)
  ------------------
  |  Branch (2648:15): [True: 394, False: 0]
  ------------------
 2649|    394|            value = g_param_spec_get_default_value (pspec);
 2650|       |
 2651|    394|          object_set_property (object, pspec, value, nqueue, user_specified);
 2652|    394|        }
 2653|    394|    }
 2654|       |
 2655|       |  /* run 'constructed' handler if there is a custom one */
 2656|    788|  if (CLASS_HAS_CUSTOM_CONSTRUCTED (class))
  ------------------
  |  |   82|    788|    ((class)->constructed != g_object_constructed)
  |  |  ------------------
  |  |  |  Branch (82:5): [True: 788, False: 0]
  |  |  ------------------
  ------------------
 2657|    788|    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|    788|  for (i = 0; i < n_params; i++)
  ------------------
  |  Branch (2662:15): [True: 0, False: 788]
  ------------------
 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|    788|  if (nqueue)
  ------------------
  |  Branch (2666:7): [True: 0, False: 788]
  ------------------
 2667|      0|    g_object_notify_queue_thaw (object, nqueue, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2668|       |
 2669|    788|  return object;
 2670|    788|}
gobject.c:g_object_is_aligned:
 2436|    788|{
 2437|    788|  return ((((guintptr) (void *) object) %
 2438|    788|             MAX (G_ALIGNOF (gdouble),
  ------------------
  |  |  933|  4.72k|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [Folded, False: 788]
  |  |  |  Branch (933:29): [Folded, False: 788]
  |  |  |  Branch (933:29): [Folded, False: 788]
  |  |  |  Branch (933:29): [Folded, False: 788]
  |  |  |  Branch (933:42): [Folded, False: 788]
  |  |  |  Branch (933:42): [Folded, False: 788]
  |  |  |  Branch (933:42): [Folded, False: 788]
  |  |  ------------------
  ------------------
 2439|    788|                  MAX (G_ALIGNOF (guint64),
 2440|    788|                       MAX (G_ALIGNOF (gint),
 2441|    788|                            G_ALIGNOF (glong))))) == 0);
 2442|    788|}
gobject.c:unset_object_in_construction:
 1692|    788|{
 1693|    788|  object_unset_optional_flags (object, OPTIONAL_FLAG_IN_CONSTRUCTION);
  ------------------
  |  |  107|    788|#define OPTIONAL_FLAG_IN_CONSTRUCTION    (1 << 0)
  ------------------
 1694|    788|}
gobject.c:object_unset_optional_flags:
 1651|    788|{
 1652|       |  g_atomic_int_and (object_get_optional_flags_p (object), ~flags);
  ------------------
  |  |  215|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  216|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  217|    788|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (217:13): [Folded, False: 788]
  |  |  ------------------
  |  |  218|    788|    (guint) __atomic_fetch_and ((atomic), (val), __ATOMIC_SEQ_CST);          \
  |  |  219|    788|  }))
  ------------------
 1653|    788|}
gobject.c:_g_object_has_notify_handler:
 1663|    394|{
 1664|    394|  return CLASS_NEEDS_NOTIFY (G_OBJECT_GET_CLASS (object)) ||
  ------------------
  |  |   87|    788|    (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   83|    788|#define CLASS_HAS_NOTIFY(class) ((class)->notify != NULL)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:33): [True: 0, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   85|    394|    ((class)->dispatch_properties_changed != g_object_dispatch_properties_changed)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (85:5): [True: 0, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1665|    394|         (object_get_optional_flags (object) & OPTIONAL_FLAG_HAS_NOTIFY_HANDLER) != 0;
  ------------------
  |  |  109|    394|#define OPTIONAL_FLAG_HAS_NOTIFY_HANDLER (1 << 2) /* Same, specifically for "notify" */
  ------------------
  |  Branch (1665:10): [True: 0, False: 394]
  ------------------
 1666|    394|}
gobject.c:object_set_property:
 2149|    394|{
 2150|    394|  GTypeInstance *inst = (GTypeInstance *) object;
 2151|    394|  GObjectClass *class;
 2152|    394|  GParamSpecClass *pclass;
 2153|    394|  guint param_id = PARAM_SPEC_PARAM_ID (pspec);
  ------------------
  |  |   68|    394|#define PARAM_SPEC_PARAM_ID(pspec)		((pspec)->param_id)
  ------------------
 2154|       |
 2155|    394|  if (G_LIKELY (inst->g_class->g_type == pspec->owner_type))
  ------------------
  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 394]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    394|      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|    394|   else                                         \
  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 0, False: 394]
  |  |  ------------------
  ------------------
 2156|      0|    class = (GObjectClass *) inst->g_class;
 2157|    394|  else
 2158|    394|    class = g_type_class_peek (pspec->owner_type);
 2159|       |
 2160|    394|  g_assert (class != NULL);
  ------------------
  |  |  275|    394|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    394|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    394|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    394|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2161|       |
 2162|    394|  param_spec_follow_override (&pspec);
 2163|       |
 2164|    394|  if (user_specified)
  ------------------
  |  Branch (2164:7): [True: 0, False: 394]
  ------------------
 2165|      0|    consider_issuing_property_deprecation_warning (pspec);
 2166|       |
 2167|    394|  pclass = G_PARAM_SPEC_GET_CLASS (pspec);
  ------------------
  |  |   81|    394|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|    394|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    394|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2168|    394|  if (g_value_type_compatible (G_VALUE_TYPE (value), pspec->value_type) &&
  ------------------
  |  |   62|    394|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (2168:7): [True: 394, False: 0]
  ------------------
 2169|    394|      (pclass->value_validate == NULL ||
  ------------------
  |  Branch (2169:8): [True: 0, False: 394]
  ------------------
 2170|    394|       (pclass->value_is_valid != NULL && pclass->value_is_valid (pspec, value))))
  ------------------
  |  Branch (2170:9): [True: 394, False: 0]
  |  Branch (2170:43): [True: 0, False: 394]
  ------------------
 2171|      0|    {
 2172|      0|      class->set_property (object, param_id, value, pspec);
 2173|      0|    }
 2174|    394|  else
 2175|    394|    {
 2176|       |      /* provide a copy to work from, convert (if necessary) and validate */
 2177|    394|      GValue tmp_value = G_VALUE_INIT;
  ------------------
  |  |  207|    394|#define G_VALUE_INIT  { 0, { { 0 } } }
  ------------------
 2178|       |
 2179|    394|      g_value_init (&tmp_value, pspec->value_type);
 2180|       |
 2181|    394|      if (!g_value_transform (value, &tmp_value))
  ------------------
  |  Branch (2181:11): [True: 0, False: 394]
  ------------------
 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|    394|                    pspec->name,
 2184|    394|                    g_type_name (pspec->value_type),
 2185|    394|                    G_VALUE_TYPE_NAME (value));
 2186|    394|      else if (g_param_value_validate (pspec, &tmp_value) && !(pspec->flags & G_PARAM_LAX_VALIDATION))
  ------------------
  |  Branch (2186:16): [True: 0, False: 394]
  |  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|    394|      else
 2198|    394|        {
 2199|    394|          class->set_property (object, param_id, &tmp_value, pspec);
 2200|    394|        }
 2201|       |
 2202|    394|      g_value_unset (&tmp_value);
 2203|    394|    }
 2204|       |
 2205|    394|  if ((pspec->flags & (G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE)) == G_PARAM_READABLE &&
  ------------------
  |  Branch (2205:7): [True: 394, False: 0]
  ------------------
 2206|    394|      nqueue != NULL)
  ------------------
  |  Branch (2206:7): [True: 0, False: 394]
  ------------------
 2207|      0|    g_object_notify_queue_add (object, nqueue, pspec, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2208|    394|}
gobject.c:object_bit_lock:
  623|  1.57k|{
  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|  1.57k|  g_bit_lock ((gint *) object_get_optional_flags_p (object), _OPTIONAL_BIT_LOCK);
  ------------------
  |  |  105|  1.57k|#define _OPTIONAL_BIT_LOCK               3
  ------------------
  634|  1.57k|}
gobject.c:object_bit_unlock:
  638|  1.57k|{
  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|  1.57k|  g_bit_unlock ((gint *) object_get_optional_flags_p (object), _OPTIONAL_BIT_LOCK);
  ------------------
  |  |  105|  1.57k|#define _OPTIONAL_BIT_LOCK               3
  ------------------
  651|  1.57k|}
gobject.c:object_ref:
 4177|    788|{
 4178|    788|  GToggleNotify toggle_notify;
 4179|    788|  gpointer toggle_data;
 4180|    788|  gint old_ref;
 4181|       |
 4182|    788|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    788|    gint gaig_temp;                                                          \
  |  |  113|    788|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 788]
  |  |  ------------------
  |  |  114|    788|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    788|    (gint) gaig_temp;                                                        \
  |  |  116|    788|  }))
  ------------------
 4183|       |
 4184|    788|retry:
 4185|    788|  toggle_notify = NULL;
 4186|    788|  toggle_data = NULL;
 4187|    788|  if (old_ref > 1 && old_ref < G_MAXINT)
  ------------------
  |  |   39|    394|#define G_MAXINT	INT_MAX
  ------------------
  |  Branch (4187:7): [True: 394, False: 394]
  |  Branch (4187:22): [True: 394, False: 0]
  ------------------
 4188|    394|    {
 4189|       |      /* Fast-path. We have apparently more than 1 references already. No
 4190|       |       * special handling for toggle references, just increment the ref count. */
 4191|    394|      if (!g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|    394|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|    394|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|    394|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|    394|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 394]
  |  |  ------------------
  |  |  197|    394|    *(preval) = (oldval);                                                      \
  |  |  198|    394|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|    394|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 394, False: 0]
  |  |  ------------------
  |  |  199|    394|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|    394|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|    394|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    394|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|    394|  }))
  ------------------
  |  Branch (4191:11): [True: 0, False: 394]
  ------------------
 4192|    394|                                                   old_ref, old_ref + 1, &old_ref))
 4193|      0|        goto retry;
 4194|    394|    }
 4195|    394|  else if (old_ref == 1)
  ------------------
  |  Branch (4195:12): [True: 394, False: 0]
  ------------------
 4196|    394|    {
 4197|       |      /* With ref count 1, check whether we need to emit a toggle notification. */
 4198|    394|      if (!toggle_refs_check_and_ref_or_deref (object, TRUE, &old_ref, &toggle_notify, &toggle_data))
  ------------------
  |  |  929|    394|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    394|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (4198:11): [True: 0, False: 394]
  ------------------
 4199|      0|        goto retry;
 4200|    394|    }
 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|    788|  TRACE (GOBJECT_OBJECT_REF (object, G_TYPE_FROM_INSTANCE (object), old_ref));
 4212|       |
 4213|    788|  *out_toggle_notify = toggle_notify;
 4214|    788|  *out_toggle_data = toggle_data;
 4215|    788|  return object;
 4216|    788|}
gobject.c:toggle_refs_check_and_ref_or_deref:
 3961|    788|{
 3962|    788|  const gint ref_curr = is_ref ? 1 : 2;
  ------------------
  |  Branch (3962:25): [True: 394, False: 394]
  ------------------
 3963|    788|  const gint ref_next = is_ref ? 2 : 1;
  ------------------
  |  Branch (3963:25): [True: 394, False: 394]
  ------------------
 3964|    788|  gboolean success;
 3965|       |
 3966|       |#if G_ENABLE_DEBUG
 3967|       |  g_assert (ref_curr == *old_ref);
 3968|       |#endif
 3969|       |
 3970|    788|  *toggle_notify = NULL;
 3971|    788|  *toggle_data = NULL;
 3972|       |
 3973|    788|  object_bit_lock (object, OPTIONAL_BIT_LOCK_TOGGLE_REFS);
  ------------------
  |  |  129|    788|#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|    788|  success = g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|    788|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|    788|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|    788|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 788]
  |  |  ------------------
  |  |  197|    788|    *(preval) = (oldval);                                                      \
  |  |  198|    788|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|    788|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 788, False: 0]
  |  |  ------------------
  |  |  199|    788|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|    788|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|    788|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    788|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|    788|  }))
  ------------------
 3979|    788|                                                    ref_curr,
 3980|    788|                                                    ref_next,
 3981|    788|                                                    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|    788|  if (success && OBJECT_HAS_TOGGLE_REF (object))
  ------------------
  |  |   73|    788|    ((g_datalist_get_flags (&(object)->qdata) & OBJECT_HAS_TOGGLE_REF_FLAG) != 0)
  |  |  ------------------
  |  |  |  |   71|    788|#define OBJECT_HAS_TOGGLE_REF_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (73:5): [True: 0, False: 788]
  |  |  ------------------
  ------------------
  |  Branch (3997:7): [True: 788, 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|    788|  object_bit_unlock (object, OPTIONAL_BIT_LOCK_TOGGLE_REFS);
  ------------------
  |  |  129|    788|#define OPTIONAL_BIT_LOCK_TOGGLE_REFS    3
  ------------------
 4015|       |
 4016|    788|  return success;
 4017|    788|}
gobject.c:_object_unref_clear_weak_locations:
 4250|  1.57k|{
 4251|  1.57k|  WeakRefData *wrdata;
 4252|  1.57k|  gboolean success;
 4253|       |
 4254|       |  /* Fast path, for objects that never had a GWeakRef registered. */
 4255|  1.57k|  if (!(object_get_optional_flags (object) & OPTIONAL_FLAG_EVER_HAD_WEAK_REF))
  ------------------
  |  |  111|  1.57k|#define OPTIONAL_FLAG_EVER_HAD_WEAK_REF  (1 << 4) /* whether on the object ever g_weak_ref_set() was called. */
  ------------------
  |  Branch (4255:7): [True: 1.57k, False: 0]
  ------------------
 4256|  1.57k|    {
 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|  1.57k|      if (do_unref)
  ------------------
  |  Branch (4264:11): [True: 788, False: 788]
  ------------------
 4265|    788|        {
 4266|    788|          if (!g_atomic_int_compare_and_exchange ((gint *) &object->ref_count, 1, 0))
  ------------------
  |  |  185|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|    788|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|    788|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 788]
  |  |  ------------------
  |  |  189|    788|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|    788|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|    788|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    788|#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: 788, False: 0]
  |  |  ------------------
  |  |  190|    788|  }))
  ------------------
  |  Branch (4266:15): [True: 0, False: 788]
  ------------------
 4267|      0|            {
 4268|       |#if G_ENABLE_DEBUG
 4269|       |              g_assert_not_reached ();
 4270|       |#endif
 4271|      0|            }
 4272|    788|        }
 4273|  1.57k|      return TRUE;
  ------------------
  |  |  929|  1.57k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.57k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4274|  1.57k|    }
 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|  1.57k|}
gobject.c:g_value_object_init:
 4929|    396|{
 4930|       |  value->data[0].v_pointer = NULL;
 4931|    396|}
gobject.c:g_value_object_free_value:
 4935|    789|{
 4936|    789|  g_clear_object ((GObject**) &value->data[0].v_pointer);
 4937|    789|}
gobject.c:g_value_object_copy_value:
 4942|    394|{
 4943|       |  g_set_object ((GObject**) &dest_value->data[0].v_pointer,
  ------------------
  |  |  763|    394|  (G_GNUC_EXTENSION ({ \
  |  |  ------------------
  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  764|    394|    G_STATIC_ASSERT (sizeof *(object_ptr) == sizeof (new_object)); \
  |  |  ------------------
  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  765|    394|    /* Only one access, please; work around type aliasing */ \
  |  |  766|    394|    union { char *in; GObject **out; } _object_ptr; \
  |  |  767|    394|    _object_ptr.in = (char *) (object_ptr); \
  |  |  768|    394|    /* Check types match */ \
  |  |  769|    394|    (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |                   (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
  |  |  ------------------
  |  |  |  |  925|    394|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (769:13): [Folded, False: 394]
  |  |  ------------------
  |  |  770|    394|    (g_set_object) (_object_ptr.out, (GObject *) new_object); \
  |  |  771|    394|  })) \
  |  |  772|    394|  GOBJECT_AVAILABLE_MACRO_IN_2_44
  ------------------
 4944|    394|                src_value->data[0].v_pointer);
 4945|    394|}

gobject.c:g_set_object:
  736|    394|{
  737|    394|  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|    394|  if (old_object == new_object)
  ------------------
  |  Branch (745:7): [True: 394, False: 0]
  ------------------
  746|    394|    return FALSE;
  ------------------
  |  |  925|    394|#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|    394|}

_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|    394|{
  693|    394|  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  694|    394|  g_return_val_if_fail (G_IS_VALUE (value), FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  695|    394|  g_return_val_if_fail (PSPEC_APPLIES_TO_VALUE (pspec, value), FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.97k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 394]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  696|       |
  697|    394|  if (G_PARAM_SPEC_GET_CLASS (pspec)->value_validate)
  ------------------
  |  |   81|    394|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|    394|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    394|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (697:7): [True: 394, False: 0]
  ------------------
  698|    394|    {
  699|    394|      GValue oval = *value;
  700|       |
  701|    394|      if (G_PARAM_SPEC_GET_CLASS (pspec)->value_validate (pspec, value) ||
  ------------------
  |  |   81|    394|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|    394|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    394|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (701:11): [True: 0, False: 394]
  ------------------
  702|    394|	  memcmp (&oval.data, &value->data, sizeof (oval.data)))
  ------------------
  |  Branch (702:4): [True: 0, False: 394]
  ------------------
  703|      0|	return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  704|    394|    }
  705|       |
  706|    394|  return FALSE;
  ------------------
  |  |  925|    394|#define	FALSE	(0)
  ------------------
  707|    394|}
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|    394|{
 1636|    394|  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|    394|  if (g_once_init_enter_pointer (&priv->default_value.g_type))
  ------------------
  |  |  282|    394|  (G_GNUC_EXTENSION ({                                         \
  |  |  ------------------
  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (282:3): [True: 1, False: 393]
  |  |  ------------------
  |  |  283|    394|    G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  284|    394|    (void) (0 ? (gpointer) * (location) : NULL);               \
  |  |  ------------------
  |  |  |  Branch (284:13): [Folded, False: 394]
  |  |  ------------------
  |  |  285|    394|    (!g_atomic_pointer_get (location) &&                       \
  |  |  ------------------
  |  |  |  |  127|    788|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|    788|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    394|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|    788|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    394|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|    788|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|    788|    gapg_temp_newval;                                                      \
  |  |  |  |  133|    788|  }))
  |  |  ------------------
  |  |  |  Branch (285:6): [True: 1, False: 393]
  |  |  ------------------
  |  |  286|    394|     g_once_init_enter_pointer (location));                    \
  |  |  ------------------
  |  |  |  Branch (286:6): [True: 1, False: 0]
  |  |  ------------------
  |  |  287|    394|  })) 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|    394|  return &priv->default_value;
 1665|    394|}
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|    395|{
   96|    395|  return &G_STRUCT_MEMBER (GParamSpecPrivate, pspec, g_param_private_offset);
  ------------------
  |  |  973|    395|    (*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
  |  |  ------------------
  |  |  |  |  971|    395|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  ------------------
   97|    395|}
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|    394|{
 1129|    394|  GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec);
  ------------------
  |  |  500|    394|#define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
  |  |  ------------------
  |  |  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1130|    394|  GObject *object = value->data[0].v_pointer;
 1131|    394|  guint changed = 0;
 1132|       |  
 1133|    394|  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: 394]
  |  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|    394|  return changed;
 1141|    394|}
gparamspecs.c:param_object_is_valid:
 1117|    394|{
 1118|    394|  GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec);
  ------------------
  |  |  500|    394|#define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
  |  |  ------------------
  |  |  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1119|    394|  GObject *object = value->data[0].v_pointer;
 1120|       |
 1121|    394|  return object &&
  ------------------
  |  Branch (1121:10): [True: 0, False: 394]
  ------------------
 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|    394|}

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|  1.57k|{
 2725|  1.57k|  GBSearchArray *hlbsa;
 2726|       |  
 2727|  1.57k|  g_return_if_fail (G_TYPE_CHECK_INSTANCE (instance));
  ------------------
  |  |  650|  1.57k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.57k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.57k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.57k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.57k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.57k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.57k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.57k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.57k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.57k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.57k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.57k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.57k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.57k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.57k|      G_PASTE (_g_boolean_var_, uniq) = 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.57k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.57k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.57k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.57k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.57k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.57k|      { } \
  |  |  653|  1.57k|    else \
  |  |  654|  1.57k|      { \
  |  |  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.57k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.57k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.57k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2728|       |  
 2729|  1.57k|  SIGNAL_LOCK ();
  ------------------
  |  |  237|  1.57k|#define	SIGNAL_LOCK()		G_LOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  137|  1.57k|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|  1.57k|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2730|  1.57k|  hlbsa = g_hash_table_lookup (g_handler_list_bsa_ht, instance);
 2731|  1.57k|  if (hlbsa)
  ------------------
  |  Branch (2731:7): [True: 0, False: 1.57k]
  ------------------
 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|  1.57k|  SIGNAL_UNLOCK ();
  ------------------
  |  |  238|  1.57k|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|  1.57k|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|  1.57k|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2764|  1.57k|}
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|    789|{
 1870|    789|  TypeNode *node;
 1871|    789|  GTypeInstance *instance;
 1872|    789|  GTypeClass *class;
 1873|    789|  gchar *allocated;
 1874|    789|  gint private_size;
 1875|    789|  gint ivar_size;
 1876|    789|  guint i;
 1877|       |
 1878|    789|  node = lookup_type_node_I (type);
 1879|    789|  if (G_UNLIKELY (!node || !node->is_instantiatable))
  ------------------
  |  | 1245|    789|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    789|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    789| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    789|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    789|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.36k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 789]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 789]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    789|      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|    789|   else                                         \
  |  |  |  |  |  | 1240|    789|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    789|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    789|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    789|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    789|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    789|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    789|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 789]
  |  |  ------------------
  ------------------
 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|    789|  if (G_UNLIKELY (!node->mutatable_check_cache && G_TYPE_IS_ABSTRACT (type)))
  ------------------
  |  | 1245|    789|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    789|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    789| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    789|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    789|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.57k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 789]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    789|      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|    789|   else                                         \
  |  |  |  |  |  | 1240|    789|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    789|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    789|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    789|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    789|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    789|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    789|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 789]
  |  |  ------------------
  ------------------
 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|    789|  if (G_UNLIKELY (G_TYPE_IS_DEPRECATED (type)))
  ------------------
  |  | 1245|    789|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    789|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    789| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    789|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    789|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    789|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 789]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    789|      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|    789|   else                                         \
  |  |  |  |  |  | 1240|    789|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    789|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    789|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    789|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    789|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    789|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    789|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 789]
  |  |  ------------------
  ------------------
 1891|      0|    {
 1892|      0|      maybe_issue_deprecation_warning (type);
 1893|      0|    }
 1894|       |
 1895|    789|  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|    789|  private_size = node->data->instance.private_size;
 1915|    789|  ivar_size = node->data->instance.instance_size;
 1916|       |
 1917|    789|#ifdef ENABLE_VALGRIND
 1918|    789|  if (G_UNLIKELY (private_size && RUNNING_ON_VALGRIND))
  ------------------
  |  | 1245|    789|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    789|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    789| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    789|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    789|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.97k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 395, False: 394]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 395]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    789|      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|    789|   else                                         \
  |  |  |  |  |  | 1240|    789|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    789|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    789|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    789|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    789|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    789|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    789|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 789]
  |  |  ------------------
  ------------------
 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|    789|  else
 1932|    789|#endif
 1933|    789|    allocated = g_malloc0 (private_size + ivar_size);
 1934|       |
 1935|    789|  instance = (GTypeInstance *) (allocated + private_size);
 1936|       |
 1937|  2.36k|  for (i = node->n_supers; i > 0; i--)
  ------------------
  |  Branch (1937:28): [True: 1.57k, False: 789]
  ------------------
 1938|  1.57k|    {
 1939|  1.57k|      TypeNode *pnode;
 1940|       |      
 1941|  1.57k|      pnode = lookup_type_node_I (node->supers[i]);
 1942|  1.57k|      if (pnode->data->instance.instance_init)
  ------------------
  |  Branch (1942:11): [True: 1.57k, False: 0]
  ------------------
 1943|  1.57k|	{
 1944|  1.57k|	  instance->g_class = pnode->data->instance.class;
 1945|  1.57k|	  pnode->data->instance.instance_init (instance, class);
 1946|  1.57k|	}
 1947|  1.57k|    }
 1948|       |
 1949|    789|  instance->g_class = class;
 1950|    789|  if (node->data->instance.instance_init)
  ------------------
  |  Branch (1950:7): [True: 789, False: 0]
  ------------------
 1951|    789|    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|    789|  TRACE(GOBJECT_OBJECT_NEW(instance, type));
 1961|       |
 1962|    789|  return instance;
 1963|    789|}
g_type_free_instance:
 1977|    788|{
 1978|    788|  TypeNode *node;
 1979|    788|  GTypeClass *class;
 1980|    788|  gchar *allocated;
 1981|    788|  gint private_size;
 1982|    788|  gint ivar_size;
 1983|       |
 1984|    788|  g_return_if_fail (instance != NULL && instance->g_class != NULL);
  ------------------
  |  |  650|    788|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    788|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    788|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    788|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.36k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 788, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    788|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    788|   else                                         \
  |  |  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 788, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    788|      { } \
  |  |  653|    788|    else \
  |  |  654|    788|      { \
  |  |  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|    788|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    788|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1985|       |  
 1986|    788|  class = instance->g_class;
 1987|    788|  node = lookup_type_node_I (class->g_type);
 1988|    788|  if (G_UNLIKELY (!node || !node->is_instantiatable || !node->data || node->data->class.class != (gpointer) class))
  ------------------
  |  | 1245|    788|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  5.51k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 788]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 788]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 788]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 788]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    788|      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|    788|   else                                         \
  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 788]
  |  |  ------------------
  ------------------
 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|    788|  if (G_UNLIKELY (!node->mutatable_check_cache && G_TYPE_IS_ABSTRACT (NODE_TYPE (node))))
  ------------------
  |  | 1245|    788|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.57k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 788]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    788|      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|    788|   else                                         \
  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 788]
  |  |  ------------------
  ------------------
 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|    788|  instance->g_class = NULL;
 2003|    788|  private_size = node->data->instance.private_size;
 2004|    788|  ivar_size = node->data->instance.instance_size;
 2005|    788|  allocated = ((gchar *) instance) - private_size;
 2006|       |
 2007|       |#ifdef G_ENABLE_DEBUG
 2008|       |  memset (allocated, 0xaa, ivar_size + private_size);
 2009|       |#endif
 2010|       |
 2011|    788|#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|    788|  if (G_UNLIKELY (private_size && RUNNING_ON_VALGRIND))
  ------------------
  |  | 1245|    788|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    788|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    788| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    788|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.97k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 394]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 394]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    788|      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|    788|   else                                         \
  |  |  |  |  |  | 1240|    788|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    788|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    788|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    788|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    788|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 788]
  |  |  ------------------
  ------------------
 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|    788|  else
 2029|    788|#endif
 2030|    788|    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|    788|  g_type_class_unref (class);
 2040|    788|}
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|      9|{
 2784|      9|  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|      9|  g_return_val_if_fail (class_size <= G_MAXUINT16, G_TYPE_INVALID);
  ------------------
  |  |  663|      9|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      9|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      9|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      9|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      9|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      9| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      9|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      9|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      9|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 9, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      9|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      9|   else                                         \
  |  |  |  |  |  |  |  | 1240|      9|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      9|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 9, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      9|      { } \
  |  |  666|      9|    else \
  |  |  667|      9|      { \
  |  |  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|      9|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      9|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 9]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2790|      9|  g_return_val_if_fail (instance_size <= G_MAXUINT16, G_TYPE_INVALID);
  ------------------
  |  |  663|      9|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      9|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      9|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      9|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      9|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      9| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      9|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      9|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      9|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 9, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      9|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      9|   else                                         \
  |  |  |  |  |  |  |  | 1240|      9|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      9|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 9, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      9|      { } \
  |  |  666|      9|    else \
  |  |  667|      9|      { \
  |  |  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|      9|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      9|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 9]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2791|       |
 2792|      9|  info.class_size = class_size;
 2793|      9|  info.base_init = NULL;
 2794|      9|  info.base_finalize = NULL;
 2795|      9|  info.class_init = class_init;
 2796|      9|  info.class_finalize = NULL;
 2797|      9|  info.class_data = NULL;
 2798|      9|  info.instance_size = instance_size;
 2799|      9|  info.n_preallocs = 0;
 2800|      9|  info.instance_init = instance_init;
 2801|      9|  info.value_table = NULL;
 2802|       |
 2803|      9|  return g_type_register_static (parent_type, type_name, &info, flags);
 2804|      9|}
g_type_register_static:
 2826|     61|{
 2827|     61|  TypeNode *pnode, *node;
 2828|     61|  GType type = 0;
 2829|       |  
 2830|     61|  g_assert_type_system_initialized ();
  ------------------
  |  |   97|     61|  g_assert (static_quark_type_flags)
  |  |  ------------------
  |  |  |  |  275|     61|#define g_assert(expr)                  G_STMT_START { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     61|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  276|     61|                                             if G_LIKELY (expr) ; else \
  |  |  |  |  ------------------
  |  |  |  |  |  | 1244|     61|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1243|     61|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1235|     61| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1236|     61|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  |  |  | 1237|     61|   if (expr)                                    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 61, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1241|     61|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1242|     61|})
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1244:25): [True: 61, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  277|     61|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  |  |  ------------------
  |  |  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  |  |  ------------------
  |  |  |  |  278|      0|                                                                         #expr); \
  |  |  |  |  279|     61|                                        } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     61|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 61]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2831|     61|  g_return_val_if_fail (parent_type > 0, 0);
  ------------------
  |  |  663|     61|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     61|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     61|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     61|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     61|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     61| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     61|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     61|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 61, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     61|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     61|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 61, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     61|      { } \
  |  |  666|     61|    else \
  |  |  667|     61|      { \
  |  |  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|     61|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     61|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 61]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2832|     61|  g_return_val_if_fail (type_name != NULL, 0);
  ------------------
  |  |  663|     61|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     61|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     61|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     61|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     61|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     61| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     61|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     61|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 61, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     61|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     61|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 61, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     61|      { } \
  |  |  666|     61|    else \
  |  |  667|     61|      { \
  |  |  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|     61|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     61|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 61]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2833|     61|  g_return_val_if_fail (info != NULL, 0);
  ------------------
  |  |  663|     61|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     61|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     61|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     61|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     61|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     61| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     61|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     61|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 61, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     61|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     61|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 61, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     61|      { } \
  |  |  666|     61|    else \
  |  |  667|     61|      { \
  |  |  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|     61|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     61|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 61]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2834|       |  
 2835|     61|  if (!check_type_name_I (type_name) ||
  ------------------
  |  Branch (2835:7): [True: 0, False: 61]
  ------------------
 2836|     61|      !check_derivation_I (parent_type, type_name))
  ------------------
  |  Branch (2836:7): [True: 0, False: 61]
  ------------------
 2837|      0|    return 0;
 2838|     61|  if (info->class_finalize)
  ------------------
  |  Branch (2838:7): [True: 0, False: 61]
  ------------------
 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|     61|  pnode = lookup_type_node_I (parent_type);
 2846|     61|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     61|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2847|     61|  type_data_ref_Wm (pnode);
 2848|     61|  if (check_type_info_I (pnode, NODE_FUNDAMENTAL_TYPE (pnode), type_name, info))
  ------------------
  |  |  229|     61|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (2848:7): [True: 61, False: 0]
  ------------------
 2849|     61|    {
 2850|     61|      node = type_node_new_W (pnode, type_name, NULL);
 2851|     61|      type_add_flags_W (node, flags);
 2852|     61|      type = NODE_TYPE (node);
  ------------------
  |  |  227|     61|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2853|     61|      type_data_make_W (node, info,
 2854|     61|			check_value_table_I (type_name, info->value_table) ? info->value_table : NULL);
  ------------------
  |  Branch (2854:4): [True: 2, False: 59]
  ------------------
 2855|     61|    }
 2856|     61|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     61|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2857|       |  
 2858|     61|  return type;
 2859|     61|}
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|    879|{
 2994|    879|  TypeNode *node;
 2995|    879|  GType ptype;
 2996|    879|  gboolean holds_ref;
 2997|    879|  GTypeClass *pclass;
 2998|       |
 2999|       |  /* optimize for common code path */
 3000|    879|  node = lookup_type_node_I (type);
 3001|    879|  if (!node || !node->is_classed)
  ------------------
  |  Branch (3001:7): [True: 0, False: 879]
  |  Branch (3001:16): [True: 0, False: 879]
  ------------------
 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|    879|  if (G_LIKELY (type_data_ref_U (node)))
  ------------------
  |  | 1244|    879|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    879|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    879| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    879|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    879|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    879|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 879, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    879|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    879|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    879|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    879|   else                                         \
  |  |  |  |  |  | 1240|    879|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    879|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    879|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    879|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    879|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 879, False: 0]
  |  |  ------------------
  ------------------
 3009|    879|    {
 3010|    879|      if (G_LIKELY (g_atomic_int_get (&node->data->class.init_state) == INITIALIZED))
  ------------------
  |  | 1244|    879|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    879|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    879| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    879|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    879|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.63k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 879]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 830, False: 49]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    879|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    830|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    830|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    879|   else                                         \
  |  |  |  |  |  | 1240|    879|      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|    879|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    879|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    879|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    879|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 830, False: 49]
  |  |  ------------------
  ------------------
 3011|    830|        return node->data->class.class;
 3012|     49|      holds_ref = TRUE;
  ------------------
  |  |  929|     49|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     49|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3013|     49|    }
 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|     49|  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|     49|  ptype = NODE_PARENT_TYPE (node);
  ------------------
  |  |  228|     49|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 3026|     49|  pclass = ptype ? g_type_class_ref (ptype) : NULL;
  ------------------
  |  Branch (3026:12): [True: 46, False: 3]
  ------------------
 3027|       |
 3028|     49|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     49|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 3029|       |
 3030|     49|  if (!holds_ref)
  ------------------
  |  Branch (3030:7): [True: 0, False: 49]
  ------------------
 3031|      0|    type_data_ref_Wm (node);
 3032|       |
 3033|     49|  if (!node->data->class.class) /* class uninitialized */
  ------------------
  |  Branch (3033:7): [True: 47, False: 2]
  ------------------
 3034|     47|    type_class_init_Wm (node, pclass);
 3035|       |
 3036|     49|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     49|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 3037|       |
 3038|     49|  if (pclass)
  ------------------
  |  Branch (3038:7): [True: 46, False: 3]
  ------------------
 3039|     46|    g_type_class_unref (pclass);
 3040|       |
 3041|     49|  g_rec_mutex_unlock (&class_init_rec_mutex);
 3042|       |
 3043|     49|  return node->data->class.class;
 3044|    879|}
g_type_class_unref:
 3057|    878|{
 3058|    878|  TypeNode *node;
 3059|    878|  GTypeClass *class = g_class;
 3060|       |  
 3061|    878|  g_return_if_fail (g_class != NULL);
  ------------------
  |  |  650|    878|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    878|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    878|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    878|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    878|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    878| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    878|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    878|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    878|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 878, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    878|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    878|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    878|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    878|   else                                         \
  |  |  |  |  |  |  |  | 1240|    878|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    878|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    878|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    878|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    878|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 878, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    878|      { } \
  |  |  653|    878|    else \
  |  |  654|    878|      { \
  |  |  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|    878|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    878|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 878]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3062|       |  
 3063|    878|  node = lookup_type_node_I (class->g_type);
 3064|    878|  if (node && node->is_classed && NODE_REFCOUNT (node))
  ------------------
  |  |  231|    878|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    878|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    878|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    878|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    878|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    878|    gint gaig_temp;                                                          \
  |  |  |  |  113|    878|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 878]
  |  |  |  |  ------------------
  |  |  |  |  114|    878|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    878|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    878|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 878, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3064:7): [True: 878, False: 0]
  |  Branch (3064:15): [True: 878, False: 0]
  ------------------
 3065|    878|    type_data_unref_U (node, FALSE);
  ------------------
  |  |  925|    878|#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|    878|	        type_descriptive_name_I (class->g_type));
 3069|    878|}
g_type_class_peek:
 3112|    394|{
 3113|    394|  TypeNode *node;
 3114|    394|  gpointer class;
 3115|       |  
 3116|    394|  node = lookup_type_node_I (type);
 3117|    394|  if (node && node->is_classed && NODE_REFCOUNT (node) &&
  ------------------
  |  |  231|    788|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    394|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    394|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    394|    gint gaig_temp;                                                          \
  |  |  |  |  113|    394|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  |  |  114|    394|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    394|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    394|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 394, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3117:7): [True: 394, False: 0]
  |  Branch (3117:15): [True: 394, False: 0]
  ------------------
 3118|    394|      g_atomic_int_get (&node->data->class.init_state) == INITIALIZED)
  ------------------
  |  |  110|    394|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    394|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    394|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    394|    gint gaig_temp;                                                          \
  |  |  113|    394|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 394]
  |  |  ------------------
  |  |  114|    394|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    394|    (gint) gaig_temp;                                                        \
  |  |  116|    394|  }))
  ------------------
  |  Branch (3118:7): [True: 394, False: 0]
  ------------------
 3119|       |    /* ref_count _may_ be 0 */
 3120|    394|    class = node->data->class.class;
 3121|      0|  else
 3122|      0|    class = NULL;
 3123|       |  
 3124|    394|  return class;
 3125|    394|}
g_type_class_peek_static:
 3142|    788|{
 3143|    788|  TypeNode *node;
 3144|    788|  gpointer class;
 3145|       |  
 3146|    788|  node = lookup_type_node_I (type);
 3147|    788|  if (node && node->is_classed && NODE_REFCOUNT (node) &&
  ------------------
  |  |  231|  1.57k|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    788|    gint gaig_temp;                                                          \
  |  |  |  |  113|    788|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 788]
  |  |  |  |  ------------------
  |  |  |  |  114|    788|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    788|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    788|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 788, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3147:7): [True: 788, False: 0]
  |  Branch (3147:15): [True: 788, False: 0]
  ------------------
 3148|    788|      /* peek only static types: */ node->plugin == NULL &&
  ------------------
  |  Branch (3148:37): [True: 788, False: 0]
  ------------------
 3149|    788|      g_atomic_int_get (&node->data->class.init_state) == INITIALIZED)
  ------------------
  |  |  110|    788|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    788|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    788|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    788|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    788|    gint gaig_temp;                                                          \
  |  |  113|    788|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 788]
  |  |  ------------------
  |  |  114|    788|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    788|    (gint) gaig_temp;                                                        \
  |  |  116|    788|  }))
  ------------------
  |  Branch (3149:7): [True: 786, False: 2]
  ------------------
 3150|       |    /* ref_count _may_ be 0 */
 3151|    786|    class = node->data->class.class;
 3152|      2|  else
 3153|      2|    class = NULL;
 3154|       |  
 3155|    788|  return class;
 3156|    788|}
g_type_class_peek_parent:
 3177|      9|{
 3178|      9|  TypeNode *node;
 3179|      9|  gpointer class = NULL;
 3180|       |  
 3181|      9|  g_return_val_if_fail (g_class != NULL, NULL);
  ------------------
  |  |  663|      9|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      9|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      9|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      9|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      9|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      9| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      9|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      9|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      9|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 9, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      9|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      9|   else                                         \
  |  |  |  |  |  |  |  | 1240|      9|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      9|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 9, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      9|      { } \
  |  |  666|      9|    else \
  |  |  667|      9|      { \
  |  |  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|      9|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      9|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 9]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3182|       |  
 3183|      9|  node = lookup_type_node_I (G_TYPE_FROM_CLASS (g_class));
  ------------------
  |  |  657|      9|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  ------------------
 3184|       |
 3185|      9|  g_return_val_if_fail (node != NULL, NULL);
  ------------------
  |  |  663|      9|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      9|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      9|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      9|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      9|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      9| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      9|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      9|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      9|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 9, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      9|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      9|   else                                         \
  |  |  |  |  |  |  |  | 1240|      9|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      9|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      9|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      9|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 9, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      9|      { } \
  |  |  666|      9|    else \
  |  |  667|      9|      { \
  |  |  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|      9|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      9|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 9]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|      9|  if (node->is_classed && node->data && NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|      9|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 8, False: 1]
  |  |  ------------------
  ------------------
  |  Branch (3191:7): [True: 9, False: 0]
  |  Branch (3191:27): [True: 9, False: 0]
  ------------------
 3192|      8|    {
 3193|      8|      node = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      8|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 3194|      8|      class = node->data->class.class;
 3195|      8|    }
 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|      9|  return class;
 3200|      9|}
g_type_interface_peek:
 3217|  5.95k|{
 3218|  5.95k|  TypeNode *node;
 3219|  5.95k|  TypeNode *iface;
 3220|  5.95k|  gpointer vtable = NULL;
 3221|  5.95k|  GTypeClass *class = instance_class;
 3222|       |  
 3223|  5.95k|  g_return_val_if_fail (instance_class != NULL, NULL);
  ------------------
  |  |  663|  5.95k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  5.95k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  5.95k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  5.95k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  5.95k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  5.95k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  5.95k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  5.95k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  5.95k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5.95k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  5.95k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  5.95k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  5.95k|      G_PASTE (_g_boolean_var_, uniq) = 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.95k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  5.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  5.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  5.95k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5.95k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  5.95k|      { } \
  |  |  666|  5.95k|    else \
  |  |  667|  5.95k|      { \
  |  |  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.95k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  5.95k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5.95k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3224|       |  
 3225|  5.95k|  node = lookup_type_node_I (class->g_type);
 3226|  5.95k|  iface = lookup_type_node_I (iface_type);
 3227|  5.95k|  if (node && node->is_instantiatable && iface)
  ------------------
  |  Branch (3227:7): [True: 5.95k, False: 0]
  |  Branch (3227:15): [True: 5.95k, False: 0]
  |  Branch (3227:42): [True: 5.95k, False: 0]
  ------------------
 3228|  5.95k|    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|  5.95k|  return vtable;
 3233|  5.95k|}
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|    149|{
 3442|    149|  GType type = 0;
 3443|       |  
 3444|    149|  g_return_val_if_fail (name != NULL, 0);
  ------------------
  |  |  663|    149|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    149|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    149|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    149|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    149|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    149| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    149|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    149|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    149|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 149, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    149|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    149|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    149|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    149|   else                                         \
  |  |  |  |  |  |  |  | 1240|    149|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    149|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    149|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    149|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    149|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 149, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    149|      { } \
  |  |  666|    149|    else \
  |  |  667|    149|      { \
  |  |  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|    149|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    149|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 149]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3445|       |  
 3446|    149|  G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|    149|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 3447|    149|  type = GPOINTER_TO_TYPE (g_hash_table_lookup (static_type_nodes_ht, name));
  ------------------
  |  | 2722|    149|#define GPOINTER_TO_TYPE(p) ((GType) (guintptr) (p)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
 3448|    149|  G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|    149|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 3449|       |  
 3450|    149|  return type;
 3451|    149|}
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|    413|{
 3605|    413|  TypeNode *node, *iface_node;
 3606|    413|  gboolean is_a;
 3607|       |
 3608|    413|  if (type == iface_type)
  ------------------
  |  Branch (3608:7): [True: 0, False: 413]
  ------------------
 3609|      0|    return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3610|       |  
 3611|    413|  node = lookup_type_node_I (type);
 3612|    413|  iface_node = lookup_type_node_I (iface_type);
 3613|    413|  is_a = node && iface_node && type_node_conforms_to_U (node, iface_node, TRUE, TRUE);
  ------------------
  |  |  929|    413|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    413|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                is_a = node && iface_node && type_node_conforms_to_U (node, iface_node, TRUE, TRUE);
  ------------------
  |  |  929|    413|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    413|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (3613:10): [True: 413, False: 0]
  |  Branch (3613:18): [True: 413, False: 0]
  |  Branch (3613:32): [True: 395, False: 18]
  ------------------
 3614|       |  
 3615|    413|  return is_a;
 3616|    413|}
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|    795|{
 4121|    795|  TypeNode *node = lookup_type_node_I (type_id);
 4122|       |  
 4123|    795|  return node ? NODE_FUNDAMENTAL_TYPE (node) : 0;
  ------------------
  |  |  229|    795|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (4123:10): [True: 795, False: 0]
  ------------------
 4124|    795|}
g_type_check_instance_is_a:
 4129|  16.5k|{
 4130|  16.5k|  TypeNode *node, *iface;
 4131|  16.5k|  gboolean check;
 4132|       |  
 4133|  16.5k|  if (!type_instance || !type_instance->g_class)
  ------------------
  |  Branch (4133:7): [True: 0, False: 16.5k]
  |  Branch (4133:25): [True: 0, False: 16.5k]
  ------------------
 4134|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4135|       |
 4136|  16.5k|  iface = lookup_type_node_I (iface_type);
 4137|  16.5k|  if (iface && iface->is_final)
  ------------------
  |  Branch (4137:7): [True: 16.5k, False: 0]
  |  Branch (4137:16): [True: 0, False: 16.5k]
  ------------------
 4138|      0|    return type_instance->g_class->g_type == iface_type;
 4139|       |
 4140|  16.5k|  node = lookup_type_node_I (type_instance->g_class->g_type);
 4141|  16.5k|  check = node && node->is_instantiatable && iface && type_node_conforms_to_U (node, iface, TRUE, FALSE);
  ------------------
  |  |  929|  16.5k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  16.5k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                check = node && node->is_instantiatable && iface && type_node_conforms_to_U (node, iface, TRUE, FALSE);
  ------------------
  |  |  925|  16.5k|#define	FALSE	(0)
  ------------------
  |  Branch (4141:11): [True: 16.5k, False: 0]
  |  Branch (4141:19): [True: 16.5k, False: 0]
  |  Branch (4141:46): [True: 16.5k, False: 0]
  |  Branch (4141:55): [True: 16.5k, False: 0]
  ------------------
 4142|       |  
 4143|  16.5k|  return check;
 4144|  16.5k|}
g_type_check_instance_is_fundamentally_a:
 4149|  2.76k|{
 4150|  2.76k|  TypeNode *node;
 4151|  2.76k|  if (!type_instance || !type_instance->g_class)
  ------------------
  |  Branch (4151:7): [True: 0, False: 2.76k]
  |  Branch (4151:25): [True: 0, False: 2.76k]
  ------------------
 4152|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4153|  2.76k|  node = lookup_type_node_I (type_instance->g_class->g_type);
 4154|  2.76k|  return node && (NODE_FUNDAMENTAL_TYPE(node) == fundamental_type);
  ------------------
  |  |  229|  2.76k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (4154:10): [True: 2.76k, False: 0]
  |  Branch (4154:18): [True: 2.76k, False: 0]
  ------------------
 4155|  2.76k|}
g_type_check_class_is_a:
 4160|      3|{
 4161|      3|  TypeNode *node, *iface;
 4162|      3|  gboolean check;
 4163|       |  
 4164|      3|  if (!type_class)
  ------------------
  |  Branch (4164:7): [True: 0, False: 3]
  ------------------
 4165|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4166|       |  
 4167|      3|  node = lookup_type_node_I (type_class->g_type);
 4168|      3|  iface = lookup_type_node_I (is_a_type);
 4169|      3|  check = node && node->is_classed && iface && type_node_conforms_to_U (node, iface, FALSE, FALSE);
  ------------------
  |  |  925|      3|#define	FALSE	(0)
  ------------------
                check = node && node->is_classed && iface && type_node_conforms_to_U (node, iface, FALSE, FALSE);
  ------------------
  |  |  925|      3|#define	FALSE	(0)
  ------------------
  |  Branch (4169:11): [True: 3, False: 0]
  |  Branch (4169:19): [True: 3, False: 0]
  |  Branch (4169:39): [True: 3, False: 0]
  |  Branch (4169:48): [True: 3, False: 0]
  ------------------
 4170|       |  
 4171|      3|  return check;
 4172|      3|}
g_type_check_instance:
 4251|  1.57k|{
 4252|       |  /* this function is just here to make the signal system
 4253|       |   * conveniently elaborated on instance checks
 4254|       |   */
 4255|  1.57k|  if (type_instance)
  ------------------
  |  Branch (4255:7): [True: 1.57k, False: 0]
  ------------------
 4256|  1.57k|    {
 4257|  1.57k|      if (type_instance->g_class)
  ------------------
  |  Branch (4257:11): [True: 1.57k, False: 0]
  ------------------
 4258|  1.57k|	{
 4259|  1.57k|	  TypeNode *node = lookup_type_node_I (type_instance->g_class->g_type);
 4260|       |	  
 4261|  1.57k|	  if (node && node->is_instantiatable)
  ------------------
  |  Branch (4261:8): [True: 1.57k, False: 0]
  |  Branch (4261:16): [True: 1.57k, False: 0]
  ------------------
 4262|  1.57k|	    return TRUE;
  ------------------
  |  |  929|  1.57k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.57k|#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|  1.57k|    }
 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|  1.57k|}
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|    395|{
 4326|    395|  return value && type_check_is_value_type_U (value->g_type);
  ------------------
  |  Branch (4326:10): [True: 395, False: 0]
  |  Branch (4326:19): [True: 395, False: 0]
  ------------------
 4327|    395|}
g_type_check_value_holds:
 4332|    394|{
 4333|    394|  return value && type_check_is_value_type_U (value->g_type) && g_type_is_a (value->g_type, type);
  ------------------
  |  |  760|    394|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  ------------------
  |  |  |  Branch (760:27): [True: 0, False: 394]
  |  |  |  Branch (760:41): [True: 394, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (4333:10): [True: 394, False: 0]
  |  Branch (4333:19): [True: 394, False: 0]
  ------------------
 4334|    394|}
g_type_value_table_peek:
 4351|  1.18k|{
 4352|  1.18k|  GTypeValueTable *vtable = NULL;
 4353|  1.18k|  TypeNode *node = lookup_type_node_I (type);
 4354|  1.18k|  gboolean has_refed_data, has_table;
 4355|       |
 4356|  1.18k|  if (node && NODE_REFCOUNT (node) && node->mutatable_check_cache)
  ------------------
  |  |  231|  2.36k|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|  1.18k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.18k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|  1.18k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  1.18k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|  1.18k|    gint gaig_temp;                                                          \
  |  |  |  |  113|  1.18k|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 1.18k]
  |  |  |  |  ------------------
  |  |  |  |  114|  1.18k|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|  1.18k|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|  1.18k|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 1.18k, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (4356:7): [True: 1.18k, False: 0]
  |  Branch (4356:39): [True: 1.18k, False: 0]
  ------------------
 4357|  1.18k|    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|      4|{
 4789|      4|  TypeNode *node = lookup_type_node_I (class_gtype);
 4790|       |
 4791|      4|  g_return_val_if_fail (private_size > 0, 0);
  ------------------
  |  |  663|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      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]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      4|      { } \
  |  |  666|      4|    else \
  |  |  667|      4|      { \
  |  |  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|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4792|      4|  g_return_val_if_fail (private_size <= 0xffff, 0);
  ------------------
  |  |  663|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      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]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      4|      { } \
  |  |  666|      4|    else \
  |  |  667|      4|      { \
  |  |  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|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4793|       |
 4794|      4|  if (!node || !node->is_classed || !node->is_instantiatable || !node->data)
  ------------------
  |  Branch (4794:7): [True: 0, False: 4]
  |  Branch (4794:16): [True: 0, False: 4]
  |  Branch (4794:37): [True: 0, False: 4]
  |  Branch (4794:65): [True: 0, False: 4]
  ------------------
 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|      4|  if (node->plugin != NULL)
  ------------------
  |  Branch (4801:7): [True: 0, False: 4]
  ------------------
 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|      4|  return private_size;
 4839|      4|}
g_type_class_adjust_private_offset:
 4845|      3|{
 4846|      3|  GType class_gtype = ((GTypeClass *) g_class)->g_type;
 4847|      3|  TypeNode *node = lookup_type_node_I (class_gtype);
 4848|      3|  gssize private_size;
 4849|       |
 4850|      3|  g_return_if_fail (private_size_or_offset != NULL);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|      3|  if (*private_size_or_offset > 0)
  ------------------
  |  Branch (4856:7): [True: 3, False: 0]
  ------------------
 4857|      3|    g_return_if_fail (*private_size_or_offset <= 0xffff);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4858|      0|  else
 4859|      0|    return;
 4860|       |
 4861|      3|  if (!node || !node->is_classed || !node->is_instantiatable || !node->data)
  ------------------
  |  Branch (4861:7): [True: 0, False: 3]
  |  Branch (4861:16): [True: 0, False: 3]
  |  Branch (4861:37): [True: 0, False: 3]
  |  Branch (4861:65): [True: 0, False: 3]
  ------------------
 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|      3|  if (NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|      3|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 1, False: 2]
  |  |  ------------------
  ------------------
 4870|      1|    {
 4871|      1|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      1|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 4872|      1|      if (node->data->instance.private_size != pnode->data->instance.private_size)
  ------------------
  |  Branch (4872:11): [True: 0, False: 1]
  ------------------
 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|      1|    }
 4879|       |
 4880|      3|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      3|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 4881|       |
 4882|      3|  private_size = ALIGN_STRUCT (node->data->instance.private_size + *private_size_or_offset);
  ------------------
  |  |  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))
  |  |  ------------------
  ------------------
 4883|      3|  g_assert (private_size <= 0xffff);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4884|      3|  node->data->instance.private_size = private_size;
 4885|       |
 4886|      3|  *private_size_or_offset = -(gint) node->data->instance.private_size;
 4887|       |
 4888|      3|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      3|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 4889|      3|}
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|    396|{
 5014|    396|  TypeNode *class_node;
 5015|    396|  TypeNode *private_node;
 5016|    396|  TypeNode *parent_node;
 5017|    396|  gsize offset;
 5018|       |
 5019|    396|  g_return_val_if_fail (klass != NULL, NULL);
  ------------------
  |  |  663|    396|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    396|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    396|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    396|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    396|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    396| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    396|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    396|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    396|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 396, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    396|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    396|   else                                         \
  |  |  |  |  |  |  |  | 1240|    396|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    396|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    396|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 396, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    396|      { } \
  |  |  666|    396|    else \
  |  |  667|    396|      { \
  |  |  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|    396|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    396|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 396]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5020|       |
 5021|    396|  class_node = lookup_type_node_I (klass->g_type);
 5022|    396|  if (G_UNLIKELY (!class_node || !class_node->is_classed))
  ------------------
  |  | 1245|    396|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    396|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    396| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    396|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    396|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.18k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 396]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 396]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    396|      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|    396|   else                                         \
  |  |  |  |  |  | 1240|    396|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    396|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    396|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 396]
  |  |  ------------------
  ------------------
 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|    396|  private_node = lookup_type_node_I (private_type);
 5030|    396|  if (G_UNLIKELY (!private_node || !NODE_IS_ANCESTOR (private_node, class_node)))
  ------------------
  |  | 1245|    396|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    396|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    396| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    396|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    396|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.98k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 396, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 396, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 396]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    396|      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|    396|   else                                         \
  |  |  |  |  |  | 1240|    396|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    396|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    396|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 396]
  |  |  ------------------
  ------------------
 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|    396|  offset = ALIGN_STRUCT (class_node->data->class.class_size);
  ------------------
  |  |  130|    396|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    396|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    396|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 5038|       |
 5039|    396|  if (NODE_PARENT_TYPE (private_node))
  ------------------
  |  |  228|    396|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 396, False: 0]
  |  |  ------------------
  ------------------
 5040|    396|    {
 5041|    396|      parent_node = lookup_type_node_I (NODE_PARENT_TYPE (private_node));
  ------------------
  |  |  228|    396|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 5042|    396|      g_assert (parent_node->data && NODE_REFCOUNT (parent_node) > 0);
  ------------------
  |  |  275|    396|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    396|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    396|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    396|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    396|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    396| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    396|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    396|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.98k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 396]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 396, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 396, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    396|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    396|   else                                         \
  |  |  |  |  |  |  |  | 1240|    396|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    396|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    396|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 396, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    396|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    396|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    396|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 396]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5043|       |
 5044|    396|      if (G_UNLIKELY (private_node->data->class.class_private_size == parent_node->data->class.class_private_size))
  ------------------
  |  | 1245|    396|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    396|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    396| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    396|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    396|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    396|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 396]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    396|      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|    396|   else                                         \
  |  |  |  |  |  | 1240|    396|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    396|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    396|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    396|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    396|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 396]
  |  |  ------------------
  ------------------
 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|    396|      offset += ALIGN_STRUCT (parent_node->data->class.class_private_size);
  ------------------
  |  |  130|    396|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    396|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    396|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 5051|    396|    }
 5052|       |
 5053|    396|  return G_STRUCT_MEMBER_P (klass, offset);
  ------------------
  |  |  971|    396|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 5054|    396|}
g_type_ensure:
 5077|      4|{
 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|      4|  if (G_UNLIKELY (type == (GType)-1))
  ------------------
  |  | 1245|      4|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 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: 0, False: 4]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      4|      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|      4|   else                                         \
  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      4|#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 (1245:26): [True: 0, False: 4]
  |  |  ------------------
  ------------------
 5083|      4|    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|      4|}
gtype.c:lookup_type_node_I:
  369|  61.7k|{
  370|  61.7k|  if (utype > G_TYPE_FUNDAMENTAL_MAX)
  ------------------
  |  |   55|  61.7k|#define	G_TYPE_FUNDAMENTAL_MAX		(255 << G_TYPE_FUNDAMENTAL_SHIFT)
  |  |  ------------------
  |  |  |  |   48|  61.7k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  |  Branch (370:7): [True: 59.4k, False: 2.32k]
  ------------------
  371|  59.4k|    return (TypeNode*) (utype & ~TYPE_ID_MASK);
  ------------------
  |  |  242|  59.4k|#define	TYPE_ID_MASK				((GType) ((1 << G_TYPE_FUNDAMENTAL_SHIFT) - 1))
  |  |  ------------------
  |  |  |  |   48|  59.4k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  372|  2.32k|  else
  373|  2.32k|    return static_fundamental_type_nodes[utype >> G_TYPE_FUNDAMENTAL_SHIFT];
  ------------------
  |  |   48|  2.32k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  ------------------
  374|  61.7k|}
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|     99|{
  722|     99|  static const gchar extra_chars[] = "-_+";
  723|     99|  const gchar *p = type_name;
  724|     99|  gboolean name_valid;
  725|       |  
  726|     99|  if (!type_name[0] || !type_name[1] || !type_name[2])
  ------------------
  |  Branch (726:7): [True: 0, False: 99]
  |  Branch (726:24): [True: 0, False: 99]
  |  Branch (726:41): [True: 0, False: 99]
  ------------------
  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|     99|  name_valid = (p[0] >= 'A' && p[0] <= 'Z') || (p[0] >= 'a' && p[0] <= 'z') || p[0] == '_';
  ------------------
  |  Branch (732:17): [True: 99, False: 0]
  |  Branch (732:32): [True: 73, False: 26]
  |  Branch (732:49): [True: 26, False: 0]
  |  Branch (732:64): [True: 26, False: 0]
  |  Branch (732:80): [True: 0, False: 0]
  ------------------
  733|    919|  for (p = type_name + 1; *p; p++)
  ------------------
  |  Branch (733:27): [True: 820, False: 99]
  ------------------
  734|    820|    name_valid &= ((p[0] >= 'A' && p[0] <= 'Z') ||
  ------------------
  |  Branch (734:21): [True: 804, False: 16]
  |  Branch (734:36): [True: 138, False: 666]
  ------------------
  735|    682|		   (p[0] >= 'a' && p[0] <= 'z') ||
  ------------------
  |  Branch (735:7): [True: 666, False: 16]
  |  Branch (735:22): [True: 666, 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|     99|  if (!name_valid)
  ------------------
  |  Branch (738:7): [True: 0, False: 99]
  ------------------
  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|     99|  if (g_type_from_name (type_name))
  ------------------
  |  Branch (743:7): [True: 0, False: 99]
  ------------------
  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|     99|  return TRUE;
  ------------------
  |  |  929|     99|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     99|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  750|     99|}
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|    103|{
  402|    103|  guint n_supers;
  403|    103|  GType type;
  404|    103|  TypeNode *node;
  405|    103|  guint i, node_size = 0;
  406|       |
  407|    103|  n_supers = pnode ? pnode->n_supers + 1 : 0;
  ------------------
  |  Branch (407:14): [True: 61, False: 42]
  ------------------
  408|       |  
  409|    103|  if (!pnode)
  ------------------
  |  Branch (409:7): [True: 42, False: 61]
  ------------------
  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|    103|  node_size += SIZEOF_BASE_TYPE_NODE ();	      /* TypeNode structure */
  ------------------
  |  |  222|    103|#define SIZEOF_BASE_TYPE_NODE()			(G_STRUCT_OFFSET (TypeNode, supers))
  |  |  ------------------
  |  |  |  |  964|    103|      ((glong) offsetof (struct_type, member))
  |  |  ------------------
  ------------------
  412|    103|  node_size += (sizeof (GType) * (1 + n_supers + 1)); /* self + ancestors + (0) for ->supers[] */
  413|    103|  node = g_malloc0 (node_size);
  414|    103|  if (!pnode)					      /* offset fundamental types */
  ------------------
  |  Branch (414:7): [True: 42, False: 61]
  ------------------
  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|     61|  else
  425|     61|    type = GPOINTER_TO_TYPE (node);
  ------------------
  |  | 2722|     61|#define GPOINTER_TO_TYPE(p) ((GType) (guintptr) (p)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
  426|       |  
  427|    103|  g_assert ((type & TYPE_ID_MASK) == 0);
  ------------------
  |  |  275|    103|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    103|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    103|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    103|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    103|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    103| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    103|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    103|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    103|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 103, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    103|      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|    103|   else                                         \
  |  |  |  |  |  |  |  | 1240|    103|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    103|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    103|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    103|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    103|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 103, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    103|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    103|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    103|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 103]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  428|       |  
  429|    103|  node->n_supers = n_supers;
  430|    103|  if (!pnode)
  ------------------
  |  Branch (430:7): [True: 42, False: 61]
  ------------------
  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|     61|  else
  449|     61|    {
  450|     61|      node->supers[0] = type;
  451|     61|      memcpy (node->supers + 1, pnode->supers, sizeof (GType) * (1 + pnode->n_supers + 1));
  452|       |      
  453|     61|      node->is_abstract = (type_flags & G_TYPE_FLAG_ABSTRACT) != 0;
  454|     61|      node->is_classed = pnode->is_classed;
  455|     61|      node->is_deprecated = (type_flags & G_TYPE_FLAG_DEPRECATED) != 0;
  456|     61|      node->is_instantiatable = pnode->is_instantiatable;
  457|       |
  458|     61|      node->is_deprecated |= pnode->is_deprecated;
  459|       |
  460|     61|      if (NODE_IS_IFACE (node))
  ------------------
  |  |  233|     61|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     61|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     61|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     61|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     61|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 5, False: 56]
  |  |  ------------------
  ------------------
  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|     56|      else
  466|     56|	{
  467|     56|	  guint j;
  468|     56|	  IFaceEntries *entries;
  469|       |
  470|     56|	  entries = _g_atomic_array_copy (CLASSED_NODE_IFACES_ENTRIES (pnode),
  ------------------
  |  |  234|     56|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
  471|     56|					  IFACE_ENTRIES_HEADER_SIZE,
  ------------------
  |  |  268|     56|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  ------------------
  472|     56|					  0);
  473|     56|	  if (entries)
  ------------------
  |  Branch (473:8): [True: 3, False: 53]
  ------------------
  474|      3|	    {
  475|      6|	      for (j = 0; j < IFACE_ENTRIES_N_ENTRIES (entries); j++)
  ------------------
  |  |  269|      6|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      6|#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|      6|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (475:20): [True: 3, False: 3]
  ------------------
  476|      3|		{
  477|      3|		  entries->entry[j].vtable = NULL;
  478|      3|		  entries->entry[j].init_state = UNINITIALIZED;
  479|      3|		}
  480|      3|	      _g_atomic_array_update (CLASSED_NODE_IFACES_ENTRIES (node),
  ------------------
  |  |  234|      3|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
  481|      3|				      entries);
  482|      3|	    }
  483|     56|	}
  484|       |
  485|     61|      i = pnode->n_children++;
  486|     61|      pnode->children = g_renew (GType, pnode->children, pnode->n_children);
  ------------------
  |  |  346|     61|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|     61|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|     61|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|     61|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|     61|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|     61|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 61]
  |  |  |  |  ------------------
  |  |  |  |  279|     61|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|     61|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 61]
  |  |  |  |  ------------------
  |  |  |  |  281|     61|	           (__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|     61|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|     61|	  else							\
  |  |  |  |  284|     61|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|     61|	  __p;							\
  |  |  |  |  286|     61|	}))
  |  |  ------------------
  ------------------
  487|     61|      pnode->children[i] = type;
  488|     61|    }
  489|       |
  490|    103|  TRACE(GOBJECT_TYPE_NEW(name, node->supers[1], type));
  491|       |
  492|    103|  node->plugin = plugin;
  493|    103|  node->n_children = 0;
  494|    103|  node->children = NULL;
  495|    103|  node->data = NULL;
  496|    103|  node->qname = g_quark_from_string (name);
  497|    103|  node->global_gdata = NULL;
  498|    103|  g_hash_table_insert (static_type_nodes_ht,
  499|    103|		       (gpointer) g_quark_to_string (node->qname),
  500|    103|		       GTYPE_TO_POINTER (type));
  ------------------
  |  | 2732|    103|#define GTYPE_TO_POINTER(t) ((gpointer) (guintptr) (t)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
  501|       |
  502|    103|  g_atomic_int_inc ((gint *)&type_registration_serial);
  ------------------
  |  |  162|    103|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    103|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|    103|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    103|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|    103|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 103]
  |  |  ------------------
  |  |  165|    103|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|    103|  }))
  ------------------
  503|       |
  504|    103|  return node;
  505|    103|}
gtype.c:type_node_fundamental_info_I:
  509|    202|{
  510|    202|  GType ftype = NODE_FUNDAMENTAL_TYPE (node);
  ------------------
  |  |  229|    202|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  511|       |  
  512|    202|  if (ftype != NODE_TYPE (node))
  ------------------
  |  |  227|    202|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
  |  Branch (512:7): [True: 3, False: 199]
  ------------------
  513|      3|    node = lookup_type_node_I (ftype);
  514|       |  
  515|    202|  return node ? G_STRUCT_MEMBER_P (node, -SIZEOF_FUNDAMENTAL_INFO) : NULL;
  ------------------
  |  |  971|    808|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  |  |  |  Branch (971:50): [Folded, False: 202]
  |  |  |  Branch (971:50): [Folded, False: 0]
  |  |  |  Branch (971:50): [Folded, False: 202]
  |  |  ------------------
  ------------------
  |  Branch (515:10): [True: 202, False: 0]
  ------------------
  516|    202|}
gtype.c:check_type_info_I:
  877|     99|{
  878|     99|  GTypeFundamentalInfo *finfo = type_node_fundamental_info_I (lookup_type_node_I (ftype));
  879|     99|  gboolean is_interface = ftype == G_TYPE_INTERFACE;
  ------------------
  |  |   78|     99|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  ------------------
  |  |  |  |  227|     99|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|     99|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  880|       |  
  881|     99|  g_assert (ftype <= G_TYPE_FUNDAMENTAL_MAX && !(ftype & TYPE_ID_MASK));
  ------------------
  |  |  275|     99|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     99|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     99|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     99|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     99|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     99| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     99|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     99|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    297|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 99, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 99, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     99|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     99|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     99|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     99|   else                                         \
  |  |  |  |  |  |  |  | 1240|     99|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     99|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     99|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     99|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     99|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 99, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     99|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     99|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     99|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 99]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  882|       |  
  883|       |  /* check instance members */
  884|     99|  if (!(finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE) &&
  ------------------
  |  Branch (884:7): [True: 43, False: 56]
  ------------------
  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|     99|  if (!((finfo->type_flags & G_TYPE_FLAG_CLASSED) || is_interface) &&
  ------------------
  |  Branch (897:9): [True: 60, 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|     99|  if (is_interface && info->class_size < sizeof (GTypeInterface))
  ------------------
  |  Branch (911:7): [True: 5, False: 94]
  |  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|     99|  if (finfo->type_flags & G_TYPE_FLAG_CLASSED)
  ------------------
  |  Branch (918:7): [True: 60, False: 39]
  ------------------
  919|     60|    {
  920|     60|      if (info->class_size < sizeof (GTypeClass))
  ------------------
  |  Branch (920:11): [True: 0, False: 60]
  ------------------
  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|     60|      if (pnode && info->class_size < pnode->data->class.class_size)
  ------------------
  |  Branch (926:11): [True: 52, False: 8]
  |  Branch (926:20): [True: 0, False: 52]
  ------------------
  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|     60|    }
  935|       |  /* check instance size */
  936|     99|  if (finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE)
  ------------------
  |  Branch (936:7): [True: 56, False: 43]
  ------------------
  937|     56|    {
  938|     56|      if (info->instance_size < sizeof (GTypeInstance))
  ------------------
  |  Branch (938:11): [True: 0, False: 56]
  ------------------
  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|     56|      if (pnode && info->instance_size < pnode->data->instance.instance_size)
  ------------------
  |  Branch (944:11): [True: 52, False: 4]
  |  Branch (944:20): [True: 0, False: 52]
  ------------------
  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|     56|    }
  953|       |  
  954|     99|  return TRUE;
  ------------------
  |  |  929|     99|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     99|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  955|     99|}
gtype.c:type_data_make_W:
 1073|    101|{
 1074|    101|  TypeData *data;
 1075|    101|  GTypeValueTable *vtable = NULL;
 1076|    101|  guint vtable_size = 0;
 1077|       |  
 1078|    101|  g_assert (node->data == NULL && info != NULL);
  ------------------
  |  |  275|    101|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    101|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    101|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    101|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    101|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    101| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    101|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    101|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    303|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 101, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 101, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    101|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    101|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    101|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    101|   else                                         \
  |  |  |  |  |  |  |  | 1240|    101|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    101|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    101|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    101|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    101|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 101, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    101|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    101|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    101|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 101]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1079|       |  
 1080|    101|  if (!value_table)
  ------------------
  |  Branch (1080:7): [True: 63, False: 38]
  ------------------
 1081|     63|    {
 1082|     63|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     63|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1083|       |      
 1084|     63|      if (pnode)
  ------------------
  |  Branch (1084:11): [True: 59, False: 4]
  ------------------
 1085|     59|	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|     63|    }
 1094|    101|  if (value_table)
  ------------------
  |  Branch (1094:7): [True: 42, False: 59]
  ------------------
 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|    101|  if (node->is_instantiatable) /* careful, is_instantiatable is also is_classed */
  ------------------
  |  Branch (1105:7): [True: 56, False: 45]
  ------------------
 1106|     56|    {
 1107|     56|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     56|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1108|       |
 1109|     56|      data = g_malloc0 (sizeof (InstanceData) + vtable_size);
 1110|     56|      if (vtable_size)
  ------------------
  |  Branch (1110:11): [True: 4, False: 52]
  ------------------
 1111|      4|	vtable = G_STRUCT_MEMBER_P (data, sizeof (InstanceData));
  ------------------
  |  |  971|      4|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1112|     56|      data->instance.class_size = info->class_size;
 1113|     56|      data->instance.class_init_base = info->base_init;
 1114|     56|      data->instance.class_finalize_base = info->base_finalize;
 1115|     56|      data->instance.class_init = info->class_init;
 1116|     56|      data->instance.class_finalize = info->class_finalize;
 1117|     56|      data->instance.class_data = info->class_data;
 1118|     56|      data->instance.class = NULL;
 1119|     56|      data->instance.init_state = UNINITIALIZED;
 1120|     56|      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|     56|      data->instance.private_size = 0;
 1125|     56|      data->instance.class_private_size = 0;
 1126|     56|      if (pnode)
  ------------------
  |  Branch (1126:11): [True: 52, False: 4]
  ------------------
 1127|     52|        data->instance.class_private_size = pnode->data->instance.class_private_size;
 1128|     56|      data->instance.instance_init = info->instance_init;
 1129|     56|    }
 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|    101|  node->data = data;
 1176|       |  
 1177|    101|  if (vtable_size)
  ------------------
  |  Branch (1177:7): [True: 42, False: 59]
  ------------------
 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|    101|  node->data->common.value_table = vtable;
 1201|    101|  node->mutatable_check_cache = (node->data->common.value_table->value_init != NULL &&
  ------------------
  |  Branch (1201:34): [True: 92, False: 9]
  ------------------
 1202|     92|				 !((G_TYPE_FLAG_VALUE_ABSTRACT | G_TYPE_FLAG_ABSTRACT) &
  ------------------
  |  Branch (1202:6): [True: 86, False: 6]
  ------------------
 1203|     92|				   GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags))));
  ------------------
  |  |  104|     92|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 1204|       |  
 1205|    101|  g_assert (node->data->common.value_table != NULL); /* paranoid */
  ------------------
  |  |  275|    101|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    101|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    101|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    101|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    101|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    101| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    101|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    101|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    101|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 101, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    101|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    101|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    101|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    101|   else                                         \
  |  |  |  |  |  |  |  | 1240|    101|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    101|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    101|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    101|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    101|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 101, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    101|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    101|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    101|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 101]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1206|       |
 1207|    101|  g_atomic_int_set ((int *) &node->ref_count, 1);
  ------------------
  |  |  118|    101|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    101|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|    101|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    101|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|    101|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|    101|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 101]
  |  |  ------------------
  |  |  122|    101|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|    101|  }))
  ------------------
 1208|    101|}
gtype.c:check_value_table_I:
  813|     99|{
  814|     99|  if (!value_table)
  ------------------
  |  Branch (814:7): [True: 61, False: 38]
  ------------------
  815|     61|    return FALSE;
  ------------------
  |  |  925|     61|#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|     99|}
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|     61|{
  756|     61|  TypeNode *pnode;
  757|     61|  GTypeFundamentalInfo* finfo;
  758|       |  
  759|     61|  pnode = lookup_type_node_I (parent_type);
  760|     61|  if (!pnode)
  ------------------
  |  Branch (760:7): [True: 0, False: 61]
  ------------------
  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|     61|  if (pnode->is_final)
  ------------------
  |  Branch (767:7): [True: 0, False: 61]
  ------------------
  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|     61|  finfo = type_node_fundamental_info_I (pnode);
  775|       |  /* ensure flat derivability */
  776|     61|  if (!(finfo->type_flags & G_TYPE_FLAG_DERIVABLE))
  ------------------
  |  Branch (776:7): [True: 0, False: 61]
  ------------------
  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|     61|  if (parent_type != NODE_FUNDAMENTAL_TYPE (pnode) &&
  ------------------
  |  |  229|    122|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (784:7): [True: 3, False: 58]
  ------------------
  785|      3|      !(finfo->type_flags & G_TYPE_FLAG_DEEP_DERIVABLE))
  ------------------
  |  Branch (785:7): [True: 0, False: 3]
  ------------------
  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|     61|  return TRUE;
  ------------------
  |  |  929|     61|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     61|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  794|     61|}
gtype.c:type_data_ref_Wm:
 1212|     61|{
 1213|     61|  if (!node->data)
  ------------------
  |  Branch (1213:7): [True: 0, False: 61]
  ------------------
 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|     61|  else
 1244|     61|    {
 1245|     61|      g_assert (NODE_REFCOUNT (node) > 0);
  ------------------
  |  |  275|     61|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     61|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     61|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     61|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     61|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     61| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     61|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    183|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 61]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 61, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     61|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     61|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 61, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     61|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     61|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     61|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 61]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1246|       |      
 1247|     61|      g_atomic_int_inc ((int *) &node->ref_count);
  ------------------
  |  |  162|     61|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|     61|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     61|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|     61|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 61]
  |  |  ------------------
  |  |  165|     61|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|     61|  }))
  ------------------
 1248|     61|    }
 1249|     61|}
gtype.c:type_node_new_W:
  545|     61|{
  546|     61|  g_assert (pnode);
  ------------------
  |  |  275|     61|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     61|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     61|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     61|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     61|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     61| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     61|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     61|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 61, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     61|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     61|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 61, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     61|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     61|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     61|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 61]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  547|     61|  g_assert (pnode->n_supers < MAX_N_SUPERS);
  ------------------
  |  |  275|     61|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     61|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     61|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     61|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     61|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     61| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     61|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     61|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 61, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     61|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     61|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 61, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     61|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     61|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     61|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 61]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  548|     61|  g_assert (pnode->n_children < MAX_N_CHILDREN);
  ------------------
  |  |  275|     61|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     61|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     61|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     61|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     61|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     61| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     61|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     61|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     61|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 61, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     61|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     61|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     61|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     61|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 61, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     61|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     61|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     61|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 61]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  549|       |  
  550|     61|  return type_node_any_new_W (pnode, NODE_FUNDAMENTAL_TYPE (pnode), name, plugin, 0);
  ------------------
  |  |  229|     61|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  551|     61|}
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|  13.9k|{
  557|  13.9k|  guint8 *offsets;
  558|  13.9k|  gsize offset_index;
  559|  13.9k|  IFaceEntry *check;
  560|  13.9k|  gsize index;
  561|  13.9k|  IFaceEntry *entry;
  562|       |
  563|  13.9k|  if (entries == NULL)
  ------------------
  |  Branch (563:7): [True: 11, False: 13.8k]
  ------------------
  564|     11|    return NULL;
  565|       |
  566|  13.9k|  G_ATOMIC_ARRAY_DO_TRANSACTION
  ------------------
  |  |   55|  13.8k|#define G_ATOMIC_ARRAY_DO_TRANSACTION(_array, _type, _C_) G_STMT_START {	\
  |  |  ------------------
  |  |  |  |  985|  13.8k|#define G_STMT_START  do
  |  |  ------------------
  |  |   56|  13.8k|    gpointer *_datap  = &(_array)->data;				\
  |  |   57|  13.8k|    _type *transaction_data, *__check;						\
  |  |   58|  13.8k|										\
  |  |   59|  13.8k|    __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  13.8k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  13.8k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  13.8k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  13.8k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  13.8k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  13.8k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  13.8k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  13.8k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  13.8k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  13.8k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  13.8k|  }))
  |  |  ------------------
  |  |   60|  13.8k|    do {									\
  |  |   61|  13.8k|      transaction_data = __check;						\
  |  |   62|   138k|      {_C_;}									\
  |  |  ------------------
  |  |  |  Branch (62:8): [True: 13.8k, False: 0]
  |  |  |  Branch (62:8): [True: 13.8k, False: 0]
  |  |  |  Branch (62:8): [True: 13.8k, False: 0]
  |  |  |  Branch (62:8): [True: 13.8k, False: 0]
  |  |  |  Branch (62:8): [True: 13.8k, False: 0]
  |  |  ------------------
  |  |   63|  13.8k|      __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  13.8k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  13.8k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  13.8k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  13.8k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  13.8k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  13.8k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  13.8k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  13.8k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  13.8k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  13.8k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  13.8k|  }))
  |  |  ------------------
  |  |   64|  13.8k|    } while (transaction_data != __check);					\
  |  |  ------------------
  |  |  |  Branch (64:14): [True: 0, False: 13.8k]
  |  |  ------------------
  |  |   65|  13.9k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  13.9k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13.8k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  567|  13.8k|    (&iface_node->_prot.offsets, guint8,
  568|       |
  569|  13.8k|     entry = NULL;
  570|  13.8k|     offsets = transaction_data;
  571|  13.8k|     offset_index = entries->offset_index;
  572|  13.8k|     if (offsets != NULL &&
  573|  13.8k|	 offset_index < G_ATOMIC_ARRAY_DATA_SIZE(offsets))
  574|  13.8k|       {
  575|  13.8k|	 index = offsets[offset_index];
  576|  13.8k|	 if (index > 0)
  577|  13.8k|	   {
  578|       |	     /* zero means unset, subtract one to get real index */
  579|  13.8k|	     index -= 1;
  580|       |
  581|  13.8k|	     if (index < IFACE_ENTRIES_N_ENTRIES (entries))
  582|  13.8k|	       {
  583|  13.8k|		 check = (IFaceEntry *)&entries->entry[index];
  584|  13.8k|		 if (check->iface_type == NODE_TYPE (iface_node))
  585|  13.8k|		   entry = check;
  586|  13.8k|	       }
  587|  13.8k|	   }
  588|  13.8k|       }
  589|  13.8k|     );
  590|       |
  591|  13.8k| return entry;
  592|  13.9k|}
gtype.c:type_iface_peek_holder_L:
 1735|      6|{
 1736|      6|  IFaceHolder *iholder;
 1737|       |  
 1738|      6|  g_assert (NODE_IS_IFACE (iface));
  ------------------
  |  |  275|      6|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      6|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      6|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 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:25): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      6|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      6|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      6|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1739|       |  
 1740|      6|  iholder = iface_node_get_holders_L (iface);
  ------------------
  |  |  238|      6|#define	iface_node_get_holders_L(node)		((IFaceHolder*) type_get_qdata_L ((node), static_quark_iface_holder))
  ------------------
 1741|      8|  while (iholder && iholder->instance_type != instance_type)
  ------------------
  |  Branch (1741:10): [True: 6, False: 2]
  |  Branch (1741:21): [True: 2, False: 4]
  ------------------
 1742|      2|    iholder = iholder->next;
 1743|      6|  return iholder;
 1744|      6|}
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|      4|{
 2079|      4|  IFaceEntry *entry;
 2080|      4|  IFaceHolder *iholder;
 2081|      4|  GTypeInterface *vtable = NULL;
 2082|      4|  TypeNode *pnode;
 2083|       |  
 2084|       |  /* type_iface_retrieve_holder_info_Wm() doesn't modify write lock for returning NULL */
 2085|      4|  iholder = type_iface_retrieve_holder_info_Wm (iface, NODE_TYPE (node), TRUE);
  ------------------
  |  |  227|      4|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
                iholder = type_iface_retrieve_holder_info_Wm (iface, NODE_TYPE (node), TRUE);
  ------------------
  |  |  929|      4|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      4|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2086|      4|  if (!iholder)
  ------------------
  |  Branch (2086:7): [True: 2, False: 2]
  ------------------
 2087|      2|    return FALSE;	/* we don't modify write lock upon FALSE */
  ------------------
  |  |  925|      2|#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|      4|{
 1751|      4|  IFaceHolder *iholder = type_iface_peek_holder_L (iface, instance_type);
 1752|       |  
 1753|      4|  if (iholder && !iholder->info && need_info)
  ------------------
  |  Branch (1753:7): [True: 2, False: 2]
  |  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|      4|  return iholder;	/* we don't modify write lock upon returning NULL */
 1777|      4|}
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|    879|{
 1254|    879|  guint current;
 1255|       |
 1256|    879|  do {
 1257|    879|    current = NODE_REFCOUNT (node);
  ------------------
  |  |  231|    879|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    879|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    879|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    879|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    879|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    879|    gint gaig_temp;                                                          \
  |  |  |  |  113|    879|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 879]
  |  |  |  |  ------------------
  |  |  |  |  114|    879|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    879|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    879|  }))
  |  |  ------------------
  ------------------
 1258|       |
 1259|    879|    if (current < 1)
  ------------------
  |  Branch (1259:9): [True: 0, False: 879]
  ------------------
 1260|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1261|    879|  } while (!g_atomic_int_compare_and_exchange ((int *) &node->ref_count, current, current + 1));
  ------------------
  |  |  185|    879|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    879|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|    879|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|    879|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    879|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|    879|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 879]
  |  |  ------------------
  |  |  189|    879|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|    879|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|    879|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    879|#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: 879, False: 0]
  |  |  ------------------
  |  |  190|    879|  }))
  ------------------
  |  Branch (1261:12): [True: 0, False: 879]
  ------------------
 1262|       |
 1263|    879|  return TRUE;
  ------------------
  |  |  929|    879|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    879|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1264|    879|}
gtype.c:type_class_init_Wm:
 2200|     47|{
 2201|     47|  GSList *slist, *init_slist = NULL;
 2202|     47|  GTypeClass *class;
 2203|     47|  IFaceEntries *entries;
 2204|     47|  IFaceEntry *entry;
 2205|     47|  TypeNode *bnode, *pnode;
 2206|     47|  guint i;
 2207|       |  
 2208|       |  /* Accessing data->class will work for instantiatable types
 2209|       |   * too because ClassData is a subset of InstanceData
 2210|       |   */
 2211|     47|  g_assert (node->is_classed && node->data &&
  ------------------
  |  |  275|     47|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     47|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     47|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     47|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     47|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     47| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     47|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     47|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    517|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 47, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 47, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 47, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 47, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 47]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 47, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     47|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     47|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     47|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     47|   else                                         \
  |  |  |  |  |  |  |  | 1240|     47|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     47|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     47|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     47|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     47|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 47, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     47|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     47|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     47|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 47]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2212|     47|	    node->data->class.class_size &&
 2213|     47|	    !node->data->class.class &&
 2214|     47|	    g_atomic_int_get (&node->data->class.init_state) == UNINITIALIZED);
 2215|     47|  if (node->data->class.class_private_size)
  ------------------
  |  Branch (2215:7): [True: 2, False: 45]
  ------------------
 2216|      2|    class = g_malloc0 (ALIGN_STRUCT (node->data->class.class_size) + 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))
  |  |  ------------------
  ------------------
 2217|     45|  else
 2218|     45|    class = g_malloc0 (node->data->class.class_size);
 2219|     47|  node->data->class.class = class;
 2220|     47|  g_atomic_int_set (&node->data->class.init_state, BASE_CLASS_INIT);
  ------------------
  |  |  118|     47|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     47|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     47|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     47|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     47|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     47|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 47]
  |  |  ------------------
  |  |  122|     47|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     47|  }))
  ------------------
 2221|       |  
 2222|     47|  if (pclass)
  ------------------
  |  Branch (2222:7): [True: 44, False: 3]
  ------------------
 2223|     44|    {
 2224|     44|      pnode = lookup_type_node_I (pclass->g_type);
 2225|       |
 2226|     44|      memcpy (class, pclass, pnode->data->class.class_size);
 2227|     44|      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|     44|    ((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|     44|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2228|       |
 2229|     44|      if (node->is_instantiatable)
  ------------------
  |  Branch (2229:11): [True: 44, False: 0]
  ------------------
 2230|     44|	{
 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|     44|	  node->data->instance.private_size = pnode->data->instance.private_size;
 2236|     44|	}
 2237|     44|    }
 2238|     47|  class->g_type = NODE_TYPE (node);
  ------------------
  |  |  227|     47|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2239|       |  
 2240|     47|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     47|#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|    140|  for (bnode = node; bnode; bnode = lookup_type_node_I (NODE_PARENT_TYPE (bnode)))
  ------------------
  |  |  228|     93|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
  |  Branch (2245:22): [True: 93, False: 47]
  ------------------
 2246|     93|    if (bnode->data->class.class_init_base)
  ------------------
  |  Branch (2246:9): [True: 47, False: 46]
  ------------------
 2247|     47|      init_slist = g_slist_prepend (init_slist, (gpointer) bnode->data->class.class_init_base);
 2248|     94|  for (slist = init_slist; slist; slist = slist->next)
  ------------------
  |  Branch (2248:28): [True: 47, False: 47]
  ------------------
 2249|     47|    {
 2250|     47|      GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data;
 2251|       |      
 2252|     47|      class_init_base (class);
 2253|     47|    }
 2254|     47|  g_slist_free (init_slist);
 2255|       |  
 2256|     47|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     47|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2257|       |
 2258|     47|  g_atomic_int_set (&node->data->class.init_state, BASE_IFACE_INIT);
  ------------------
  |  |  118|     47|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     47|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     47|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     47|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     47|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     47|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 47]
  |  |  ------------------
  |  |  122|     47|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     47|  }))
  ------------------
 2259|       |  
 2260|       |  /* Before we initialize the class, base initialize all interfaces, either
 2261|       |   * from parent, or through our holder info
 2262|       |   */
 2263|     47|  pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     47|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 2264|       |
 2265|     47|  i = 0;
 2266|     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 (2266:10): [True: 8, False: 43]
  ------------------
 2267|      8|	  i < IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|      8|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      8|#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|      8|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2267:4): [True: 4, False: 4]
  ------------------
 2268|      4|    {
 2269|      4|      entry = &entries->entry[i];
 2270|      4|      while (i < IFACE_ENTRIES_N_ENTRIES (entries) &&
  ------------------
  |  |  269|      8|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      4|#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|      4|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2270:14): [True: 4, False: 0]
  ------------------
 2271|      4|	     entry->init_state == IFACE_INIT)
  ------------------
  |  Branch (2271:7): [True: 0, False: 4]
  ------------------
 2272|      0|	{
 2273|      0|	  entry++;
 2274|      0|	  i++;
 2275|      0|	}
 2276|       |
 2277|      4|      if (i == IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|      4|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      4|#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|      4|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2277:11): [True: 0, False: 4]
  ------------------
 2278|      0|	break;
 2279|       |
 2280|      4|      if (!type_iface_vtable_base_init_Wm (lookup_type_node_I (entry->iface_type), node))
  ------------------
  |  Branch (2280:11): [True: 2, False: 2]
  ------------------
 2281|      2|	{
 2282|      2|	  guint j;
 2283|      2|	  IFaceEntries *pentries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (pnode);
  ------------------
  |  |  235|      2|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|      2|#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|      2|	  g_assert (pnode != NULL);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2289|       |
 2290|      2|	  if (pentries)
  ------------------
  |  Branch (2290:8): [True: 2, False: 0]
  ------------------
 2291|      2|	    for (j = 0; j < IFACE_ENTRIES_N_ENTRIES (pentries); j++)
  ------------------
  |  |  269|      2|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      2|#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|      2|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2291:18): [True: 2, False: 0]
  ------------------
 2292|      2|	      {
 2293|      2|		IFaceEntry *pentry = &pentries->entry[j];
 2294|       |
 2295|      2|		if (pentry->iface_type == entry->iface_type)
  ------------------
  |  Branch (2295:7): [True: 2, False: 0]
  ------------------
 2296|      2|		  {
 2297|      2|		    entry->vtable = pentry->vtable;
 2298|      2|		    entry->init_state = INITIALIZED;
 2299|      2|		    break;
 2300|      2|		  }
 2301|      2|	      }
 2302|      2|	  g_assert (entry->vtable != NULL);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2303|      2|	}
 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|      4|      i++;
 2312|      4|    }
 2313|       |  
 2314|     47|  g_atomic_int_set (&node->data->class.init_state, CLASS_INIT);
  ------------------
  |  |  118|     47|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     47|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     47|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     47|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     47|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     47|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 47]
  |  |  ------------------
  |  |  122|     47|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     47|  }))
  ------------------
 2315|       |  
 2316|     47|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     47|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2317|       |
 2318|     47|  if (node->data->class.class_init)
  ------------------
  |  Branch (2318:7): [True: 47, False: 0]
  ------------------
 2319|     47|    node->data->class.class_init (class, (gpointer) node->data->class.class_data);
 2320|       |  
 2321|     47|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     47|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2322|       |  
 2323|     47|  g_atomic_int_set (&node->data->class.init_state, IFACE_INIT);
  ------------------
  |  |  118|     47|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     47|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     47|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     47|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     47|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     47|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 47]
  |  |  ------------------
  |  |  122|     47|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     47|  }))
  ------------------
 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|     47|  i = 0;
 2332|     49|  while ((entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node)) != NULL)
  ------------------
  |  |  235|     49|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|     49|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
  |  Branch (2332:10): [True: 6, False: 43]
  ------------------
 2333|      6|    {
 2334|      6|      entry = &entries->entry[i];
 2335|      8|      while (i < IFACE_ENTRIES_N_ENTRIES (entries) &&
  ------------------
  |  |  269|     16|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      8|#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|      8|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2335:14): [True: 4, False: 4]
  ------------------
 2336|      4|	     entry->init_state == INITIALIZED)
  ------------------
  |  Branch (2336:7): [True: 2, False: 2]
  ------------------
 2337|      2|	{
 2338|      2|	  entry++;
 2339|      2|	  i++;
 2340|      2|	}
 2341|       |
 2342|      6|      if (i == IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|      6|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      6|#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|      6|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2342:11): [True: 4, False: 2]
  ------------------
 2343|      4|	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|     47|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     47|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     47|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     47|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     47|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     47|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 47]
  |  |  ------------------
  |  |  122|     47|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     47|  }))
  ------------------
 2355|     47|}
gtype.c:type_data_unref_U:
 2509|    878|{
 2510|    878|  guint current;
 2511|       |
 2512|    878|  do {
 2513|    878|    current = NODE_REFCOUNT (node);
  ------------------
  |  |  231|    878|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    878|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    878|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    878|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    878|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    878|    gint gaig_temp;                                                          \
  |  |  |  |  113|    878|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 878]
  |  |  |  |  ------------------
  |  |  |  |  114|    878|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    878|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    878|  }))
  |  |  ------------------
  ------------------
 2514|       |
 2515|    878|    if (current <= 1)
  ------------------
  |  Branch (2515:9): [True: 0, False: 878]
  ------------------
 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|    878|  } while (!g_atomic_int_compare_and_exchange ((int *) &node->ref_count, current, current - 1));
  ------------------
  |  |  185|    878|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    878|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|    878|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|    878|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    878|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|    878|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 878]
  |  |  ------------------
  |  |  189|    878|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|    878|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|    878|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    878|#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: 878, False: 0]
  |  |  ------------------
  |  |  190|    878|  }))
  ------------------
  |  Branch (2541:12): [True: 0, False: 878]
  ------------------
 2542|    878|}
gtype.c:type_lookup_iface_vtable_I:
  610|  13.8k|{
  611|  13.8k|  IFaceEntry *entry;
  612|  13.8k|  gboolean res;
  613|       |
  614|  13.8k|  if (!NODE_IS_IFACE (iface_node))
  ------------------
  |  |  233|  13.8k|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|  13.8k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|  13.8k|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|  13.8k|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|  13.8k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (614:7): [True: 0, False: 13.8k]
  ------------------
  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|  13.8k|  G_ATOMIC_ARRAY_DO_TRANSACTION
  ------------------
  |  |   55|  13.8k|#define G_ATOMIC_ARRAY_DO_TRANSACTION(_array, _type, _C_) G_STMT_START {	\
  |  |  ------------------
  |  |  |  |  985|  13.8k|#define G_STMT_START  do
  |  |  ------------------
  |  |   56|  13.8k|    gpointer *_datap  = &(_array)->data;				\
  |  |   57|  13.8k|    _type *transaction_data, *__check;						\
  |  |   58|  13.8k|										\
  |  |   59|  13.8k|    __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  13.8k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  13.8k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  13.8k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  13.8k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  13.8k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  13.8k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  13.8k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  13.8k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  13.8k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  13.8k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  13.8k|  }))
  |  |  ------------------
  |  |   60|  13.8k|    do {									\
  |  |   61|  13.8k|      transaction_data = __check;						\
  |  |   62|  31.7k|      {_C_;}									\
  |  |  ------------------
  |  |  |  Branch (62:8): [True: 5.95k, False: 0]
  |  |  |  Branch (62:8): [True: 5.95k, False: 7.94k]
  |  |  ------------------
  |  |   63|  13.8k|      __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  13.8k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  13.8k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  13.8k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  13.8k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  13.8k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  13.8k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  13.8k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  13.8k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  13.8k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  13.8k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  13.8k|  }))
  |  |  ------------------
  |  |   64|  13.8k|    } while (transaction_data != __check);					\
  |  |  ------------------
  |  |  |  Branch (64:14): [True: 0, False: 13.8k]
  |  |  ------------------
  |  |   65|  13.8k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  13.8k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13.8k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  622|  13.8k|    (CLASSED_NODE_IFACES_ENTRIES (node), IFaceEntries,
  623|       |
  624|  13.8k|     entry = lookup_iface_entry_I (transaction_data, iface_node);
  625|  13.8k|     res = entry != NULL;
  626|  13.8k|     if (vtable_ptr)
  627|  13.8k|       {
  628|  13.8k|	 if (entry)
  629|  13.8k|	   *vtable_ptr = entry->vtable;
  630|  13.8k|	 else
  631|  13.8k|	   *vtable_ptr = NULL;
  632|  13.8k|       }
  633|  13.8k|     );
  634|       |
  635|  13.8k|  return res;
  636|  13.8k|}
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|  16.9k|{
 3538|  16.9k|  gboolean match;
 3539|       |
 3540|  16.9k|  if (/* support_inheritance && */
 3541|  16.9k|      NODE_IS_ANCESTOR (iface_node, node))
  ------------------
  |  |  245|  16.9k|        ((ancestor)->n_supers <= (node)->n_supers &&                                        \
  |  |  ------------------
  |  |  |  Branch (245:10): [True: 16.9k, False: 3]
  |  |  ------------------
  |  |  246|  16.9k|	 (node)->supers[(node)->n_supers - (ancestor)->n_supers] == NODE_TYPE (ancestor))
  |  |  ------------------
  |  |  |  |  227|  16.9k|#define NODE_TYPE(node)				(node->supers[0])
  |  |  ------------------
  |  |  |  Branch (246:3): [True: 9.04k, False: 7.95k]
  |  |  ------------------
  ------------------
 3542|  9.04k|    return TRUE;
  ------------------
  |  |  929|  9.04k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  9.04k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3543|       |
 3544|  7.95k|  support_interfaces = support_interfaces && node->is_instantiatable && NODE_IS_IFACE (iface_node);
  ------------------
  |  |  233|  15.9k|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|  7.95k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|  7.95k|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|  7.95k|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|  7.95k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 7.94k, False: 12]
  |  |  ------------------
  ------------------
  |  Branch (3544:24): [True: 7.95k, False: 0]
  |  Branch (3544:46): [True: 7.95k, False: 3]
  ------------------
 3545|  7.95k|  support_prerequisites = support_prerequisites && NODE_IS_IFACE (node);
  ------------------
  |  |  233|  7.97k|#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: 7.94k]
  ------------------
 3546|  7.95k|  match = FALSE;
  ------------------
  |  |  925|  7.95k|#define	FALSE	(0)
  ------------------
 3547|  7.95k|  if (support_interfaces)
  ------------------
  |  Branch (3547:7): [True: 7.94k, False: 15]
  ------------------
 3548|  7.94k|    {
 3549|  7.94k|      if (have_lock)
  ------------------
  |  Branch (3549:11): [True: 0, False: 7.94k]
  ------------------
 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|  7.94k|      else
 3555|  7.94k|	{
 3556|  7.94k|	  if (type_lookup_iface_vtable_I (node, iface_node, NULL))
  ------------------
  |  Branch (3556:8): [True: 7.94k, False: 3]
  ------------------
 3557|  7.94k|	    match = TRUE;
  ------------------
  |  |  929|  7.94k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  7.94k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3558|  7.94k|	}
 3559|  7.94k|    }
 3560|  7.95k|  if (!match &&
  ------------------
  |  Branch (3560:7): [True: 18, False: 7.94k]
  ------------------
 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|  7.95k|  return match;
 3571|  16.9k|}
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|  16.9k|{
 3586|  16.9k|  return type_node_check_conformities_UorL (node, iface_node, support_interfaces, support_prerequisites, FALSE);
  ------------------
  |  |  925|  16.9k|#define	FALSE	(0)
  ------------------
 3587|  16.9k|}
gtype.c:type_get_qdata_L:
 3732|    207|{
 3733|    207|  GData *gdata = node->global_gdata;
 3734|       |  
 3735|    207|  if (quark && gdata && gdata->n_qdatas)
  ------------------
  |  Branch (3735:7): [True: 207, False: 0]
  |  Branch (3735:16): [True: 108, False: 99]
  |  Branch (3735:25): [True: 108, False: 0]
  ------------------
 3736|    108|    {
 3737|    108|      QData *qdatas = gdata->qdatas - 1;
 3738|    108|      guint n_qdatas = gdata->n_qdatas;
 3739|       |      
 3740|    108|      do
 3741|    114|	{
 3742|    114|	  guint i;
 3743|    114|	  QData *check;
 3744|       |	  
 3745|    114|	  i = (n_qdatas + 1) / 2;
 3746|    114|	  check = qdatas + i;
 3747|    114|	  if (quark == check->quark)
  ------------------
  |  Branch (3747:8): [True: 99, False: 15]
  ------------------
 3748|     99|	    return check->data;
 3749|     15|	  else if (quark > check->quark)
  ------------------
  |  Branch (3749:13): [True: 15, False: 0]
  ------------------
 3750|     15|	    {
 3751|     15|	      n_qdatas -= i;
 3752|     15|	      qdatas = check;
 3753|     15|	    }
 3754|      0|	  else /* if (quark < check->quark) */
 3755|      0|	    n_qdatas = i - 1;
 3756|    114|	}
 3757|    108|      while (n_qdatas);
  ------------------
  |  Branch (3757:14): [True: 6, False: 9]
  ------------------
 3758|    108|    }
 3759|    108|  return NULL;
 3760|    207|}
gtype.c:type_set_qdata_W:
 3802|    102|{
 3803|    102|  GData *gdata;
 3804|    102|  QData *qdata;
 3805|    102|  guint i;
 3806|       |  
 3807|       |  /* setup qdata list if necessary */
 3808|    102|  if (!node->global_gdata)
  ------------------
  |  Branch (3808:7): [True: 99, False: 3]
  ------------------
 3809|     99|    node->global_gdata = g_new0 (GData, 1);
  ------------------
  |  |  332|     99|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     99|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     99|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     99|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     99|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     99|	  gpointer __p;						\
  |  |  |  |  264|     99|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 99]
  |  |  |  |  ------------------
  |  |  |  |  265|     99|	    __p = g_##func (__n);				\
  |  |  |  |  266|     99|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 99, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     99|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     99|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     99|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 99]
  |  |  |  |  |  Branch (267:26): [True: 99, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     99|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     99|	  else							\
  |  |  |  |  270|     99|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     99|	  __p;							\
  |  |  |  |  272|     99|	}))
  |  |  ------------------
  ------------------
 3810|    102|  gdata = node->global_gdata;
 3811|       |  
 3812|       |  /* try resetting old data */
 3813|    102|  qdata = gdata->qdatas;
 3814|    105|  for (i = 0; i < gdata->n_qdatas; i++)
  ------------------
  |  Branch (3814:15): [True: 3, False: 102]
  ------------------
 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|    102|  gdata->n_qdatas++;
 3823|    102|  gdata->qdatas = g_renew (QData, gdata->qdatas, gdata->n_qdatas);
  ------------------
  |  |  346|    102|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|    102|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|    102|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|    102|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|    102|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|    102|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 102]
  |  |  |  |  ------------------
  |  |  |  |  279|    102|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|    102|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 102]
  |  |  |  |  ------------------
  |  |  |  |  281|    102|	           (__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|    102|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|    102|	  else							\
  |  |  |  |  284|    102|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|    102|	  __p;							\
  |  |  |  |  286|    102|	}))
  |  |  ------------------
  ------------------
 3824|    102|  qdata = gdata->qdatas;
 3825|    105|  for (i = 0; i < gdata->n_qdatas - 1; i++)
  ------------------
  |  Branch (3825:15): [True: 3, False: 102]
  ------------------
 3826|      3|    if (qdata[i].quark > quark)
  ------------------
  |  Branch (3826:9): [True: 0, False: 3]
  ------------------
 3827|      0|      break;
 3828|    102|  memmove (qdata + i + 1, qdata + i, sizeof (qdata[0]) * (gdata->n_qdatas - i - 1));
 3829|    102|  qdata[i].quark = quark;
 3830|    102|  qdata[i].data = data;
 3831|    102|}
gtype.c:type_add_flags_W:
 3864|     99|{
 3865|     99|  guint dflags;
 3866|       |  
 3867|     99|  g_return_if_fail ((flags & ~TYPE_FLAG_MASK) == 0);
  ------------------
  |  |  650|     99|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     99|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     99|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     99|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     99|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     99| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     99|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     99|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     99|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 99, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     99|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     99|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     99|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     99|   else                                         \
  |  |  |  |  |  |  |  | 1240|     99|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     99|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     99|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     99|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     99|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 99, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     99|      { } \
  |  |  653|     99|    else \
  |  |  654|     99|      { \
  |  |  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|     99|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     99|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 99]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3868|     99|  g_return_if_fail (node != NULL);
  ------------------
  |  |  650|     99|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     99|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     99|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     99|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     99|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     99| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     99|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     99|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     99|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 99, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     99|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     99|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     99|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     99|   else                                         \
  |  |  |  |  |  |  |  | 1240|     99|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     99|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     99|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     99|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     99|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 99, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     99|      { } \
  |  |  653|     99|    else \
  |  |  654|     99|      { \
  |  |  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|     99|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     99|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 99]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3869|       |  
 3870|     99|  if ((flags & TYPE_FLAG_MASK) && node->is_classed && node->data && node->data->class.class)
  ------------------
  |  |  106|     99|#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: 91]
  |  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|     99|  dflags = GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags));
  ------------------
  |  |  104|     99|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 3873|     99|  dflags |= flags;
 3874|     99|  type_set_qdata_W (node, static_quark_type_flags, GUINT_TO_POINTER (dflags));
  ------------------
  |  |  107|     99|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 3875|       |
 3876|     99|  node->is_abstract = (flags & G_TYPE_FLAG_ABSTRACT) != 0;
 3877|     99|  node->is_deprecated |= (flags & G_TYPE_FLAG_DEPRECATED) != 0;
 3878|     99|  node->is_final = (flags & G_TYPE_FLAG_FINAL) != 0;
 3879|     99|}
gtype.c:_g_type_test_flags:
 3957|    794|{
 3958|    794|  TypeNode *node;
 3959|    794|  gboolean result = FALSE;
  ------------------
  |  |  925|    794|#define	FALSE	(0)
  ------------------
 3960|       |  
 3961|    794|  node = lookup_type_node_I (type);
 3962|    794|  if (node)
  ------------------
  |  Branch (3962:7): [True: 794, False: 0]
  ------------------
 3963|    794|    {
 3964|    794|      if ((flags & ~NODE_FLAG_MASK) == 0)
  ------------------
  |  |  109|    794|#define	NODE_FLAG_MASK ( \
  |  |  110|    794|  G_TYPE_FLAG_ABSTRACT | \
  |  |  111|    794|  G_TYPE_FLAG_CLASSED | \
  |  |  112|    794|  G_TYPE_FLAG_DEPRECATED | \
  |  |  113|    794|  G_TYPE_FLAG_INSTANTIATABLE | \
  |  |  114|    794|  G_TYPE_FLAG_FINAL)
  ------------------
  |  Branch (3964:11): [True: 794, False: 0]
  ------------------
 3965|    794|        {
 3966|    794|          if ((flags & G_TYPE_FLAG_CLASSED) && !node->is_classed)
  ------------------
  |  Branch (3966:15): [True: 1, False: 793]
  |  Branch (3966:48): [True: 0, False: 1]
  ------------------
 3967|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3968|       |
 3969|    794|          if ((flags & G_TYPE_FLAG_INSTANTIATABLE) && !node->is_instantiatable)
  ------------------
  |  Branch (3969:15): [True: 4, False: 790]
  |  Branch (3969:55): [True: 0, False: 4]
  ------------------
 3970|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3971|       |
 3972|    794|          if ((flags & G_TYPE_FLAG_FINAL) && !node->is_final)
  ------------------
  |  Branch (3972:15): [True: 0, False: 794]
  |  Branch (3972:46): [True: 0, False: 0]
  ------------------
 3973|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3974|       |
 3975|    794|          if ((flags & G_TYPE_FLAG_ABSTRACT) && !node->is_abstract)
  ------------------
  |  Branch (3975:15): [True: 0, False: 794]
  |  Branch (3975:49): [True: 0, False: 0]
  ------------------
 3976|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3977|       |
 3978|    794|          if ((flags & G_TYPE_FLAG_DEPRECATED) && !node->is_deprecated)
  ------------------
  |  Branch (3978:15): [True: 789, False: 5]
  |  Branch (3978:51): [True: 789, False: 0]
  ------------------
 3979|    789|            return FALSE;
  ------------------
  |  |  925|    789|#define	FALSE	(0)
  ------------------
 3980|       |
 3981|      5|          return TRUE;
  ------------------
  |  |  929|      5|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      5|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3982|    794|        }
 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|    794|}
gtype.c:type_check_is_value_type_U:
 4278|    790|{
 4279|    790|  GTypeFlags tflags = G_TYPE_FLAG_VALUE_ABSTRACT;
 4280|    790|  TypeNode *node;
 4281|       |  
 4282|       |  /* common path speed up */
 4283|    790|  node = lookup_type_node_I (type);
 4284|    790|  if (node && node->mutatable_check_cache)
  ------------------
  |  Branch (4284:7): [True: 790, False: 0]
  |  Branch (4284:15): [True: 789, False: 1]
  ------------------
 4285|    789|    return TRUE;
  ------------------
  |  |  929|    789|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    789|#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|    395|{
   84|    395|  GTypeValueTable *value_table;
   85|       |  /* g_return_val_if_fail (G_TYPE_IS_VALUE (g_type), NULL);	be more elaborate below */
   86|    395|  g_return_val_if_fail (value != NULL, NULL);
  ------------------
  |  |  663|    395|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    395|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    395|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    395|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    395|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    395| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    395|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    395|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    395|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 395, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    395|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    395|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    395|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    395|   else                                         \
  |  |  |  |  |  |  |  | 1240|    395|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    395|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    395|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    395|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    395|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 395, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    395|      { } \
  |  |  666|    395|    else \
  |  |  667|    395|      { \
  |  |  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|    395|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    395|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 395]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   87|       |  /* g_return_val_if_fail (G_VALUE_TYPE (value) == 0, NULL);	be more elaborate below */
   88|       |
   89|    395|  value_table = g_type_value_table_peek (g_type);
   90|       |
   91|    395|  if (value_table && G_VALUE_TYPE (value) == 0)
  ------------------
  |  |   62|    395|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (91:7): [True: 395, False: 0]
  |  Branch (91:22): [True: 395, False: 0]
  ------------------
   92|    395|    {
   93|       |      /* setup and init */
   94|    395|      value_meminit (value, g_type);
   95|    395|      value_table->value_init (value);
   96|    395|    }
   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|    395|                G_STRLOC,
  105|    395|                g_type_name (g_type),
  106|    395|                value_table ? "this type is abstract with regards to GValue use, use a more specific (derived) type" : "this type has no GTypeValueTable implementation");
  107|    395|  return value;
  108|    395|}
g_value_copy:
  120|    394|{
  121|    394|  g_return_if_fail (src_value);
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  122|    394|  g_return_if_fail (dest_value);
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  123|    394|  g_return_if_fail (g_value_type_compatible (G_VALUE_TYPE (src_value), G_VALUE_TYPE (dest_value)));
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  124|       |  
  125|    394|  if (src_value != dest_value)
  ------------------
  |  Branch (125:7): [True: 394, False: 0]
  ------------------
  126|    394|    {
  127|    394|      GType dest_type = G_VALUE_TYPE (dest_value);
  ------------------
  |  |   62|    394|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  128|    394|      GTypeValueTable *value_table = g_type_value_table_peek (dest_type);
  129|       |
  130|    394|      g_return_if_fail (value_table);
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  131|       |
  132|       |      /* make sure dest_value's value is free()d */
  133|    394|      if (value_table->value_free)
  ------------------
  |  Branch (133:11): [True: 394, False: 0]
  ------------------
  134|    394|	value_table->value_free (dest_value);
  135|       |
  136|       |      /* setup and copy */
  137|    394|      value_meminit (dest_value, dest_type);
  138|    394|      value_table->value_copy (src_value, dest_value);
  139|    394|    }
  140|    394|}
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|    394|{
  186|    394|  GTypeValueTable *value_table;
  187|       |  
  188|    394|  if (value->g_type == 0)
  ------------------
  |  Branch (188:7): [True: 0, False: 394]
  ------------------
  189|      0|    return;
  190|       |
  191|    394|  g_return_if_fail (value);
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  192|       |
  193|    394|  value_table = g_type_value_table_peek (G_VALUE_TYPE (value));
  ------------------
  |  |   62|    394|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  194|    394|  g_return_if_fail (value_table);
  ------------------
  |  |  650|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    394|      { } \
  |  |  653|    394|    else \
  |  |  654|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  195|       |
  196|    394|  if (value_table->value_free)
  ------------------
  |  Branch (196:7): [True: 394, False: 0]
  ------------------
  197|    394|    value_table->value_free (value);
  198|    394|  memset (value, 0, sizeof (*value));
  199|    394|}
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|  1.18k|{
  502|  1.18k|  g_return_val_if_fail (src_type, FALSE);
  ------------------
  |  |  663|  1.18k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.18k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.18k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.18k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.18k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.18k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.18k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.18k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.18k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.18k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.18k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.18k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.18k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.18k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.18k|      G_PASTE (_g_boolean_var_, uniq) = 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.18k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.18k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.18k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.18k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.18k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.18k|      { } \
  |  |  666|  1.18k|    else \
  |  |  667|  1.18k|      { \
  |  |  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.18k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.18k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.18k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  503|  1.18k|  g_return_val_if_fail (dest_type, FALSE);
  ------------------
  |  |  663|  1.18k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.18k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.18k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.18k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.18k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.18k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.18k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.18k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.18k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.18k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.18k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.18k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.18k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.18k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.18k|      G_PASTE (_g_boolean_var_, uniq) = 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.18k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.18k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.18k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.18k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.18k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.18k|      { } \
  |  |  666|  1.18k|    else \
  |  |  667|  1.18k|      { \
  |  |  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.18k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.18k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.18k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  504|       |
  505|       |  /* Fast path */
  506|  1.18k|  if (src_type == dest_type)
  ------------------
  |  Branch (506:7): [True: 1.18k, False: 0]
  ------------------
  507|  1.18k|    return TRUE;
  ------------------
  |  |  929|  1.18k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.18k|#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|  1.18k|}
g_value_transform:
  532|    394|{
  533|    394|  GType dest_type;
  534|       |
  535|    394|  g_return_val_if_fail (src_value, FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  536|    394|  g_return_val_if_fail (dest_value, FALSE);
  ------------------
  |  |  663|    394|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    394|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    394|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    394|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    394|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    394| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    394|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    394|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 394, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    394|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    394|   else                                         \
  |  |  |  |  |  |  |  | 1240|    394|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    394|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    394|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    394|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    394|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 394, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    394|      { } \
  |  |  666|    394|    else \
  |  |  667|    394|      { \
  |  |  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|    394|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    394|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 394]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  537|       |
  538|    394|  dest_type = G_VALUE_TYPE (dest_value);
  ------------------
  |  |   62|    394|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  539|    394|  if (g_value_type_compatible (G_VALUE_TYPE (src_value), dest_type))
  ------------------
  |  |   62|    394|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (539:7): [True: 394, False: 0]
  ------------------
  540|    394|    {
  541|    394|      g_value_copy (src_value, dest_value);
  542|       |      
  543|    394|      return TRUE;
  ------------------
  |  |  929|    394|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    394|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  544|    394|    }
  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|    394|}
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|    790|{
   67|    790|  value->g_type = value_type;
   68|    790|  memset (value->data, 0, sizeof (value->data));
   69|    790|}

_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_edid_descriptor_unref:
   70|  1.02k|{
   71|  1.02k|    g_return_if_fail(st != NULL);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |   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.02k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.02k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.02k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   72|  1.02k|    if (st->refcount == 0) {
  ------------------
  |  Branch (72:9): [True: 0, False: 1.02k]
  ------------------
   73|      0|        g_critical("FuStructEdidDescriptor 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__)
  ------------------
   74|      0|        return;
   75|      0|    }
   76|  1.02k|    if (--st->refcount > 0)
  ------------------
  |  Branch (76:9): [True: 0, False: 1.02k]
  ------------------
   77|      0|        return;
   78|  1.02k|    if (st->buf != NULL)
  ------------------
  |  Branch (78:9): [True: 1.02k, False: 0]
  ------------------
   79|  1.02k|        g_byte_array_unref(st->buf);
   80|  1.02k|    g_free(st);
   81|  1.02k|}
fu_struct_edid_descriptor_get_kind:
   99|    808|{
  100|    808|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    808|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    808|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    808|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    808|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    808|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    808| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    808|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    808|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    808|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 808, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    808|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    808|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    808|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    808|   else                                         \
  |  |  |  |  |  |  |  | 1240|    808|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    808|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    808|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    808|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    808|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 808, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    808|      { } \
  |  |  666|    808|    else \
  |  |  667|    808|      { \
  |  |  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|    808|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    808|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 808]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|    808|    return fu_memread_uint16(st->buf->data + 0, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    808|#define G_LITTLE_ENDIAN 1234
  ------------------
  102|    808|}
fu_struct_edid_descriptor_get_subkind:
  108|    420|{
  109|    420|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |   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|    420|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    420|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 420]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  110|    420|    return st->buf->data[2];
  111|    420|}
fu_struct_edid_descriptor_get_tag:
  117|    899|{
  118|    899|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    899|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    899|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    899|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    899|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    899|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    899| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    899|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    899|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    899|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 899, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    899|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    899|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    899|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    899|   else                                         \
  |  |  |  |  |  |  |  | 1240|    899|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    899|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    899|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    899|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    899|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 899, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    899|      { } \
  |  |  666|    899|    else \
  |  |  667|    899|      { \
  |  |  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|    899|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    899|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 899]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  119|    899|    return st->buf->data[3];
  120|    899|}
fu_struct_edid_descriptor_get_data:
  126|    377|{
  127|    377|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|    377|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    377|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    377|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    377|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    377|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    377| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    377|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    377|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    377|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 377, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    377|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    377|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    377|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    377|   else                                         \
  |  |  |  |  |  |  |  | 1240|    377|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    377|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    377|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    377|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    377|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 377, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    377|      { } \
  |  |  666|    377|    else \
  |  |  667|    377|      { \
  |  |  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|    377|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    377|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 377]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  128|    377|    if (bufsz != NULL)
  ------------------
  |  Branch (128:9): [True: 377, False: 0]
  ------------------
  129|    377|        *bufsz = 13;
  130|    377|    return st->buf->data + 5;
  131|    377|}
fu_struct_edid_descriptor_set_tag:
  157|    219|{
  158|    219|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    219|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    219|      { } \
  |  |  653|    219|    else \
  |  |  654|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  159|    219|    st->buf->data[3] = value;
  160|    219|}
fu_struct_edid_descriptor_set_data:
  166|    219|{
  167|    219|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    219|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    219|      { } \
  |  |  666|    219|    else \
  |  |  667|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  168|    219|    g_return_val_if_fail(buf != NULL, FALSE);
  ------------------
  |  |  663|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    219|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    219|      { } \
  |  |  666|    219|    else \
  |  |  667|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  169|    219|    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    219|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    219|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    219|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    219|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    219|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    219| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    219|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    219|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    438|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 219, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    219|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    219|   else                                         \
  |  |  |  |  |  |  |  | 1240|    219|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    219|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    219|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    219|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    219|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 219, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    219|      { } \
  |  |  666|    219|    else \
  |  |  667|    219|      { \
  |  |  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|    219|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    219|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 219]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  170|    219|    return fu_memcpy_safe(st->buf->data, st->buf->len, 5, buf, bufsz, 0x0, bufsz, error);
  171|    219|}
fu_struct_edid_descriptor_new:
  177|    219|{
  178|    219|    FuStructEdidDescriptor *st = fu_struct_edid_descriptor_new_internal();
  179|    219|    st->buf = g_byte_array_sized_new(18);
  180|    219|    fu_byte_array_set_size(st->buf, 18, 0x0);
  181|    219|    return st;
  182|    219|}
fu_struct_edid_descriptor_parse_stream:
  229|    808|{
  230|    808|    g_autoptr(FuStructEdidDescriptor) st = fu_struct_edid_descriptor_new_internal();
  ------------------
  |  | 1381|    808|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    808|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  231|    808|    st->buf = fu_input_stream_read_byte_array(stream, offset, 18, NULL, error);
  232|    808|    if (st->buf == NULL) {
  ------------------
  |  Branch (232:9): [True: 0, False: 808]
  ------------------
  233|      0|        g_prefix_error(error, "FuStructEdidDescriptor failed read of 0x%x: ", (guint) 18);
  234|      0|        return NULL;
  235|      0|    }
  236|    808|    if (st->buf->len != 18) {
  ------------------
  |  Branch (236:9): [True: 0, False: 808]
  ------------------
  237|      0|        g_set_error(error,
  238|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  239|      0|                    FWUPD_ERROR_INVALID_DATA,
  240|      0|                    "FuStructEdidDescriptor requested 0x%x and got 0x%x",
  241|      0|                    (guint) 18,
  242|      0|                    (guint) st->buf->len);
  243|      0|        return NULL;
  244|      0|    }
  245|    808|    if (!fu_struct_edid_descriptor_parse_internal(st, error))
  ------------------
  |  Branch (245:9): [True: 0, False: 808]
  ------------------
  246|      0|        return NULL;
  247|    808|    return g_steal_pointer(&st);
  ------------------
  |  |  247|    808|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  248|    808|}
fu_struct_edid_unref:
  264|    596|{
  265|    596|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    596|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    596|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    596|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    596|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    596|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    596| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    596|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    596|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    596|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 596, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    596|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    596|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    596|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    596|   else                                         \
  |  |  |  |  |  |  |  | 1240|    596|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    596|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    596|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    596|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    596|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 596, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    596|      { } \
  |  |  653|    596|    else \
  |  |  654|    596|      { \
  |  |  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|    596|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    596|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 596]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  266|    596|    if (st->refcount == 0) {
  ------------------
  |  Branch (266:9): [True: 0, False: 596]
  ------------------
  267|      0|        g_critical("FuStructEdid 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__)
  ------------------
  268|      0|        return;
  269|      0|    }
  270|    596|    if (--st->refcount > 0)
  ------------------
  |  Branch (270:9): [True: 0, False: 596]
  ------------------
  271|      0|        return;
  272|    596|    if (st->buf != NULL)
  ------------------
  |  Branch (272:9): [True: 394, False: 202]
  ------------------
  273|    394|        g_byte_array_unref(st->buf);
  274|    596|    g_free(st);
  275|    596|}
fu_struct_edid_get_manufacturer_name:
  304|    202|{
  305|    202|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    202|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    202|      { } \
  |  |  666|    202|    else \
  |  |  667|    202|      { \
  |  |  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|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  306|    202|    if (bufsz != NULL)
  ------------------
  |  Branch (306:9): [True: 0, False: 202]
  ------------------
  307|      0|        *bufsz = 2;
  308|    202|    return st->buf->data + 8;
  309|    202|}
fu_struct_edid_get_product_code:
  315|    202|{
  316|    202|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    202|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    202|      { } \
  |  |  666|    202|    else \
  |  |  667|    202|      { \
  |  |  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|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  317|    202|    return fu_memread_uint16(st->buf->data + 10, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    202|#define G_LITTLE_ENDIAN 1234
  ------------------
  318|    202|}
fu_struct_edid_get_serial_number:
  324|    401|{
  325|    401|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    401|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    401|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    401|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    401|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    401|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    401| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    401|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    401|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    401|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 401, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    401|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    401|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    401|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    401|   else                                         \
  |  |  |  |  |  |  |  | 1240|    401|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    401|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    401|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    401|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    401|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 401, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    401|      { } \
  |  |  666|    401|    else \
  |  |  667|    401|      { \
  |  |  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|    401|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    401|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 401]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  326|    401|    return fu_memread_uint32(st->buf->data + 12, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    401|#define G_LITTLE_ENDIAN 1234
  ------------------
  327|    401|}
fu_struct_edid_set_product_code:
  411|    202|{
  412|    202|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    202|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    202|      { } \
  |  |  653|    202|    else \
  |  |  654|    202|      { \
  |  |  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|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  413|    202|    fu_memwrite_uint16(st->buf->data + 10, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|    202|#define G_LITTLE_ENDIAN 1234
  ------------------
  414|    202|}
fu_struct_edid_set_serial_number:
  420|     81|{
  421|     81|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|     81|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     81|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     81|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     81|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     81|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     81| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     81|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     81|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     81|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 81, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     81|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     81|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     81|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     81|   else                                         \
  |  |  |  |  |  |  |  | 1240|     81|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     81|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     81|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     81|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     81|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 81, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     81|      { } \
  |  |  653|     81|    else \
  |  |  654|     81|      { \
  |  |  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|     81|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     81|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 81]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  422|     81|    fu_memwrite_uint32(st->buf->data + 12, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|     81|#define G_LITTLE_ENDIAN 1234
  ------------------
  423|     81|}
fu_struct_edid_set_revision_number:
  456|    202|{
  457|    202|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    202|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    202|      { } \
  |  |  653|    202|    else \
  |  |  654|    202|      { \
  |  |  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|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  458|    202|    st->buf->data[19] = value;
  459|    202|}
fu_struct_edid_new:
  494|    202|{
  495|    202|    FuStructEdid *st = fu_struct_edid_new_internal();
  496|    202|    st->buf = g_byte_array_sized_new(128);
  497|    202|    fu_byte_array_set_size(st->buf, 128, 0x0);
  498|    202|    memcpy(st->buf->data + 0x0, "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", 8); /* nocheck:blocked */
  499|    202|    fu_struct_edid_set_edid_version_number(st, 0x1);
  500|    202|    fu_struct_edid_set_revision_number(st, 0x3);
  501|    202|    return st;
  502|    202|}
fu_struct_edid_parse_stream:
  591|    394|{
  592|    394|    g_autoptr(FuStructEdid) st = fu_struct_edid_new_internal();
  ------------------
  |  | 1381|    394|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    394|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  593|    394|    st->buf = fu_input_stream_read_byte_array(stream, offset, 128, NULL, error);
  594|    394|    if (st->buf == NULL) {
  ------------------
  |  Branch (594:9): [True: 0, False: 394]
  ------------------
  595|      0|        g_prefix_error(error, "FuStructEdid failed read of 0x%x: ", (guint) 128);
  596|      0|        return NULL;
  597|      0|    }
  598|    394|    if (st->buf->len != 128) {
  ------------------
  |  Branch (598:9): [True: 24, False: 370]
  ------------------
  599|     24|        g_set_error(error,
  600|     24|                    FWUPD_ERROR,
  ------------------
  |  |   15|     24|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  601|     24|                    FWUPD_ERROR_INVALID_DATA,
  602|     24|                    "FuStructEdid requested 0x%x and got 0x%x",
  603|     24|                    (guint) 128,
  604|     24|                    (guint) st->buf->len);
  605|     24|        return NULL;
  606|     24|    }
  607|    370|    if (!fu_struct_edid_parse_internal(st, error))
  ------------------
  |  Branch (607:9): [True: 168, False: 202]
  ------------------
  608|    168|        return NULL;
  609|    202|    return g_steal_pointer(&st);
  ------------------
  |  |  247|    202|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  610|    370|}
fu-edid-struct.c:fu_struct_edid_descriptor_new_internal:
   87|  1.02k|{
   88|       |    FuStructEdidDescriptor *st = g_new0(FuStructEdidDescriptor, 1);
  ------------------
  |  |  332|  1.02k|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|  1.02k|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.02k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|  1.02k|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|  1.02k|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|  1.02k|	  gpointer __p;						\
  |  |  |  |  264|  1.02k|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 1.02k]
  |  |  |  |  ------------------
  |  |  |  |  265|  1.02k|	    __p = g_##func (__n);				\
  |  |  |  |  266|  1.02k|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 1.02k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|  1.02k|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|  1.02k|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|  1.02k|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 1.02k]
  |  |  |  |  |  Branch (267:26): [True: 1.02k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|  1.02k|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|  1.02k|	  else							\
  |  |  |  |  270|  1.02k|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|  1.02k|	  __p;							\
  |  |  |  |  272|  1.02k|	}))
  |  |  ------------------
  ------------------
   89|  1.02k|    st->refcount = 1;
   90|  1.02k|    return st;
   91|  1.02k|}
fu-edid-struct.c:fu_struct_edid_descriptor_parse_internal:
  217|    808|{
  218|    808|    if (g_log_get_debug_enabled()) {
  ------------------
  |  Branch (218:9): [True: 0, False: 808]
  ------------------
  219|      0|        g_autofree gchar *str = fu_struct_edid_descriptor_to_string(st);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  220|      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__)
  ------------------
  221|      0|    }
  222|    808|    return TRUE;
  ------------------
  |  |  929|    808|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    808|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  223|    808|}
fu-edid-struct.c:fu_struct_edid_new_internal:
  281|    596|{
  282|       |    FuStructEdid *st = g_new0(FuStructEdid, 1);
  ------------------
  |  |  332|    596|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    596|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    596|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    596|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    596|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    596|	  gpointer __p;						\
  |  |  |  |  264|    596|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 596]
  |  |  |  |  ------------------
  |  |  |  |  265|    596|	    __p = g_##func (__n);				\
  |  |  |  |  266|    596|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 596, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    596|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    596|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    596|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 596]
  |  |  |  |  |  Branch (267:26): [True: 596, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    596|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    596|	  else							\
  |  |  |  |  270|    596|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    596|	  __p;							\
  |  |  |  |  272|    596|	}))
  |  |  ------------------
  ------------------
  283|    596|    st->refcount = 1;
  284|    596|    return st;
  285|    596|}
fu-edid-struct.c:fu_struct_edid_set_edid_version_number:
  447|    202|{
  448|    202|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|    202|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    202|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    202|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    202|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    202|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    202| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    202|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    202|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    202|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 202, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    202|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    202|   else                                         \
  |  |  |  |  |  |  |  | 1240|    202|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    202|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    202|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    202|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    202|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 202, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    202|      { } \
  |  |  653|    202|    else \
  |  |  654|    202|      { \
  |  |  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|    202|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    202|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 202]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  449|    202|    st->buf->data[18] = value;
  450|    202|}
fu-edid-struct.c:fu_struct_edid_parse_internal:
  577|    370|{
  578|    370|    if (g_log_get_debug_enabled()) {
  ------------------
  |  Branch (578:9): [True: 0, False: 370]
  ------------------
  579|      0|        g_autofree gchar *str = fu_struct_edid_to_string(st);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  580|      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__)
  ------------------
  581|      0|    }
  582|    370|    if (!fu_struct_edid_validate_internal(st, error))
  ------------------
  |  Branch (582:9): [True: 168, False: 202]
  ------------------
  583|    168|        return FALSE;
  ------------------
  |  |  925|    168|#define	FALSE	(0)
  ------------------
  584|    202|    return TRUE;
  ------------------
  |  |  929|    202|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    202|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  585|    370|}
fu-edid-struct.c:fu_struct_edid_get_edid_version_number:
  351|    217|{
  352|    217|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|    217|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    217|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    217|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    217|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    217|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    217| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    217|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    217|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    217|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 217, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    217|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    217|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    217|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    217|   else                                         \
  |  |  |  |  |  |  |  | 1240|    217|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    217|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    217|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    217|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    217|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 217, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    217|      { } \
  |  |  666|    217|    else \
  |  |  667|    217|      { \
  |  |  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|    217|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    217|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 217]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  353|    217|    return st->buf->data[18];
  354|    217|}
fu-edid-struct.c:fu_struct_edid_validate_internal:
  557|    370|{
  558|    370|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|    370|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    370|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    370|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    370|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    370|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    370| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    370|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    370|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    370|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 370, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    370|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    370|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    370|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    370|   else                                         \
  |  |  |  |  |  |  |  | 1240|    370|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    370|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    370|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    370|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    370|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 370, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    370|      { } \
  |  |  666|    370|    else \
  |  |  667|    370|      { \
  |  |  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|    370|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    370|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 370]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  559|    370|    if (memcmp(st->buf->data + 0, "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", 8) != 0) {
  ------------------
  |  Branch (559:9): [True: 153, False: 217]
  ------------------
  560|    153|        g_set_error_literal(error,
  561|    153|                            FWUPD_ERROR,
  ------------------
  |  |   15|    153|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  562|    153|                            FWUPD_ERROR_INVALID_DATA,
  563|    153|                            "constant FuStructEdid.header was not valid");
  564|    153|        return FALSE;
  ------------------
  |  |  925|    153|#define	FALSE	(0)
  ------------------
  565|    153|    }
  566|    217|    if (fu_struct_edid_get_edid_version_number(st) != 0x1) {
  ------------------
  |  Branch (566:9): [True: 15, False: 202]
  ------------------
  567|     15|        g_set_error_literal(error,
  568|     15|                            FWUPD_ERROR,
  ------------------
  |  |   15|     15|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  569|     15|                            FWUPD_ERROR_INVALID_DATA,
  570|     15|                            "constant FuStructEdid.edid_version_number was not valid");
  571|     15|        return FALSE;
  ------------------
  |  |  925|     15|#define	FALSE	(0)
  ------------------
  572|     15|    }
  573|    202|    return TRUE;
  ------------------
  |  |  929|    202|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    202|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  574|    217|}

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

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

fu-fuzzer-firmware.c:glib_autoptr_cleanup_GObject:
 1358|    394|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    394|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-fuzzer-firmware.c:glib_autoptr_clear_GObject:
 1356|    394|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 394, False: 0]
  ------------------
fu-edid-struct.c:glib_autoptr_cleanup_FuStructEdidDescriptor:
 1358|    808|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    808|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-edid-struct.c:glib_autoptr_clear_FuStructEdidDescriptor:
 1356|    808|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 808]
  ------------------
fu-edid-struct.c:glib_autoptr_cleanup_FuStructEdid:
 1358|    394|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    394|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-edid-struct.c:glib_autoptr_clear_FuStructEdid:
 1356|    394|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 192, False: 202]
  ------------------
fu-edid.c:glib_autoptr_cleanup_FuStructEdid:
 1358|    596|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    596|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-edid.c:glib_autoptr_clear_FuStructEdid:
 1356|    596|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 404, False: 192]
  ------------------
fu-edid.c:glib_autoptr_cleanup_FuStructEdidDescriptor:
 1358|  1.02k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  1.02k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-edid.c:glib_autoptr_clear_FuStructEdidDescriptor:
 1356|  1.02k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.02k, False: 0]
  ------------------
fu-edid.c:glib_autoptr_cleanup_GString:
 1358|    234|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    234|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-edid.c:glib_autoptr_clear_GString:
 1356|    234|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 26, False: 208]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GByteArray:
 1358|    394|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    394|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GByteArray:
 1356|    394|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 202, False: 192]
  ------------------
fu-firmware.c:glib_autoptr_clear_GObject:
 1356|  1.18k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.18k, False: 0]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GBytes:
 1358|    596|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    596|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GBytes:
 1356|    596|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 394, False: 202]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_FuInputStream:
 1358|  1.18k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  1.18k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_FuInputStream:
 1356|  1.18k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 1.18k, False: 0]
  ------------------
fu-input-stream.c:glib_autoptr_cleanup_GByteArray:
 1358|  1.99k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  1.99k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-input-stream.c:glib_autoptr_clear_GByteArray:
 1356|  1.99k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 1.99k]
  ------------------
fu-input-stream.c:glib_autoptr_cleanup_GError:
 1358|  1.59k|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|  1.59k|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-input-stream.c:glib_autoptr_clear_GError:
 1356|  1.59k|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 1.59k]
  ------------------
fu-memory-input-stream.c:glib_autoptr_cleanup_FuMemoryInputStream:
 1358|    394|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    394|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-memory-input-stream.c:glib_autoptr_clear_FuMemoryInputStream:
 1356|    394|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 394]
  ------------------
fu-memory-input-stream.c:glib_autoptr_cleanup_GBytes:
 1358|    394|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    394|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-memory-input-stream.c:glib_autoptr_clear_GBytes:
 1356|    394|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 394, False: 0]
  ------------------

fu-edid-struct.c:g_steal_pointer:
  235|  1.01k|{
  236|  1.01k|  gpointer *ptr = (gpointer *) pp;
  237|  1.01k|  gpointer ref;
  238|       |
  239|  1.01k|  ref = *ptr;
  240|  1.01k|  *ptr = NULL;
  241|       |
  242|  1.01k|  return ref;
  243|  1.01k|}
fu-edid.c:g_steal_pointer:
  235|    410|{
  236|    410|  gpointer *ptr = (gpointer *) pp;
  237|    410|  gpointer ref;
  238|       |
  239|    410|  ref = *ptr;
  240|    410|  *ptr = NULL;
  241|       |
  242|    410|  return ref;
  243|    410|}
fu-input-stream.c:g_steal_pointer:
  235|  1.99k|{
  236|  1.99k|  gpointer *ptr = (gpointer *) pp;
  237|  1.99k|  gpointer ref;
  238|       |
  239|  1.99k|  ref = *ptr;
  240|  1.99k|  *ptr = NULL;
  241|       |
  242|  1.99k|  return ref;
  243|  1.99k|}
fu-memory-input-stream.c:g_steal_pointer:
  235|    394|{
  236|    394|  gpointer *ptr = (gpointer *) pp;
  237|    394|  gpointer ref;
  238|       |
  239|    394|  ref = *ptr;
  240|    394|  *ptr = NULL;
  241|       |
  242|    394|  return ref;
  243|    394|}

fu-edid.c:g_set_str:
  494|    401|{
  495|    401|  char *copy;
  496|       |
  497|    401|  if (*str_pointer == new_str ||
  ------------------
  |  Branch (497:7): [True: 0, False: 401]
  ------------------
  498|    401|      (*str_pointer && new_str && strcmp (*str_pointer, new_str) == 0))
  ------------------
  |  Branch (498:8): [True: 0, False: 401]
  |  Branch (498:24): [True: 0, False: 0]
  |  Branch (498:35): [True: 0, False: 0]
  ------------------
  499|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  500|       |
  501|    401|  copy = g_strdup (new_str);
  ------------------
  |  |  324|    401|#define g_strdup(x) g_strdup_inline (x)
  ------------------
  502|    401|  g_free (*str_pointer);
  503|    401|  *str_pointer = copy;
  504|       |
  505|    401|  return TRUE;
  ------------------
  |  |  929|    401|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    401|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  506|    401|}
fu-edid.c:g_strdup_inline:
  310|    401|{
  311|    401|  if (__builtin_constant_p (!str) && !str)
  ------------------
  |  Branch (311:7): [True: 0, False: 401]
  |  Branch (311:38): [True: 0, False: 0]
  ------------------
  312|      0|    return NULL;
  313|       |
  314|    401|  if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str)))
  ------------------
  |  Branch (314:7): [True: 0, False: 401]
  |  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|    401|  return g_strdup (str);
  322|    401|}

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

fu-fuzzer-firmware.c:FU_FUZZER:
 1805|    394|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                         \
 1806|    394|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }               \
  ------------------
  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-edid.c:fu_edid_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-edid.c:fu_edid_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-edid.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-edid.c:FU_EDID:
 1611|    990|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1612|    990|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|    990|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    990|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-edid.c:FU_IS_EDID:
 1613|    603|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1614|    603|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|    603|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|    603|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    603|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|    603|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|    603|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 603]
  |  |  |  |  ------------------
  |  |  |  | 2674|    603|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|    603|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 603, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 603, False: 0]
  |  |  |  |  ------------------
  |  |  |  | 2676|    603|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|    603|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|    603|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|    603|  else \
  |  |  |  | 2678|    603|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|    603|  __r; \
  |  |  |  | 2680|    603|}))
  |  |  ------------------
  ------------------
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|  3.54k|type_name##_get_instance_private (TypeName *self) \
 2294|  3.54k|{ \
 2295|  3.54k|  return (G_STRUCT_MEMBER_P (self, TypeName##_private_offset)); \
  ------------------
  |  |  971|  3.54k|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2296|  3.54k|} \
fu-firmware.c:FU_IS_FIRMWARE:
 1719|  2.56k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|  2.56k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  2.56k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  2.56k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  2.56k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  2.56k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  2.56k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 2.56k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  2.56k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  2.56k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 2.56k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 2.56k]
  |  |  |  |  ------------------
  |  |  |  | 2676|  2.56k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  2.56k|  else \
  |  |  |  | 2678|  2.56k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  2.56k|  __r; \
  |  |  |  | 2680|  2.56k|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_FIRMWARE_GET_CLASS:
 1723|  1.77k|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_GET_CLASS (gpointer ptr) {    \
 1724|  1.77k|    return G_TYPE_INSTANCE_GET_CLASS (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }       \
  ------------------
  |  |  571|  1.77k|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2667|  1.77k|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_IS_INPUT_STREAM:
 1719|    394|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|    394|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|    394|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|    394|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    394|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|    394|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|    394|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 394]
  |  |  |  |  ------------------
  |  |  |  | 2674|    394|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|    394|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 394, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 394]
  |  |  |  |  ------------------
  |  |  |  | 2676|    394|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|    394|  else \
  |  |  |  | 2678|    394|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|    394|  __r; \
  |  |  |  | 2680|    394|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_FIRMWARE:
 1715|  1.57k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|  1.57k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  1.57k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  1.57k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-fuzzer.c:FU_FUZZER_GET_IFACE:
 1809|    394|  G_GNUC_UNUSED static inline ModuleObjName##Interface * MODULE##_##OBJ_NAME##_GET_IFACE (gpointer ptr) {  \
 1810|    394|    return G_TYPE_INSTANCE_GET_INTERFACE (ptr, module_obj_name##_get_type (), ModuleObjName##Interface); } \
  ------------------
  |  |  584|    394|#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2668|    394|#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|  5.68k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|  5.68k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  5.68k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  5.68k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  5.68k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  5.68k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  5.68k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 5.68k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  5.68k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  5.68k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 5.68k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 5.68k]
  |  |  |  |  ------------------
  |  |  |  | 2676|  5.68k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  5.68k|  else \
  |  |  |  | 2678|  5.68k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  5.68k|  __r; \
  |  |  |  | 2680|  5.68k|}))
  |  |  ------------------
  ------------------
fu-input-stream.c:FU_INPUT_STREAM_GET_CLASS:
 1723|  9.24k|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_GET_CLASS (gpointer ptr) {    \
 1724|  9.24k|    return G_TYPE_INSTANCE_GET_CLASS (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }       \
  ------------------
  |  |  571|  9.24k|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2667|  9.24k|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  ------------------
  ------------------
fu-input-stream.c:FU_INPUT_STREAM:
 1715|  5.55k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|  5.55k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  5.55k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  5.55k|#  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|  9.24k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1612|  9.24k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  9.24k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  9.24k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-memory-input-stream.c:FU_INPUT_STREAM:
 1715|    394|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|    394|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|    394|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    394|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------

