fwupd-codec.c:fwupd_codec_default_init:
   27|      1|{
   28|      1|}

fwupd_guid_to_string:
  174|     29|{
  175|     29|	fwupd_guid_native_t gnat;
  176|       |
  177|     29|	g_return_val_if_fail(guid != NULL, NULL);
  ------------------
  |  |  663|     29|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     29|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     29|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     29|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     29|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     29| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     29|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     29|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     29|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 29, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     29|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     29|   else                                         \
  |  |  |  |  |  |  |  | 1240|     29|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     29|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     29|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 29, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     29|      { } \
  |  |  666|     29|    else \
  |  |  667|     29|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |  320|      0|#define G_LOG_DOMAIN    ((gchar*) 0)
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     29|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     29|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 29]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  178|       |
  179|       |	/* copy to avoid issues with aligning */
  180|     29|	memcpy(&gnat, guid, sizeof(gnat)); /* nocheck:blocked */
  181|       |
  182|       |	/* mixed is bizaar, but specified as the DCE encoding */
  183|     29|	if (flags & FWUPD_GUID_FLAG_MIXED_ENDIAN) {
  ------------------
  |  Branch (183:6): [True: 0, False: 29]
  ------------------
  184|      0|		return g_strdup_printf("%08x-%04x-%04x-%04x-%02x%02x%02x%02x%02x%02x",
  185|      0|				       (guint)GUINT32_FROM_LE(gnat.a), /* nocheck:blocked */
  ------------------
  |  |  417|      0|#define GUINT32_FROM_LE(val)	(GUINT32_TO_LE (val))
  |  |  ------------------
  |  |  |  |  163|      0|#define GUINT32_TO_LE(val)	((guint32) (val))
  |  |  ------------------
  ------------------
  186|      0|				       (guint)GUINT16_FROM_LE(gnat.b), /* nocheck:blocked */
  ------------------
  |  |  413|      0|#define GUINT16_FROM_LE(val)	(GUINT16_TO_LE (val))
  |  |  ------------------
  |  |  |  |  158|      0|#define GUINT16_TO_LE(val)	((guint16) (val))
  |  |  ------------------
  ------------------
  187|      0|				       (guint)GUINT16_FROM_LE(gnat.c), /* nocheck:blocked */
  ------------------
  |  |  413|      0|#define GUINT16_FROM_LE(val)	(GUINT16_TO_LE (val))
  |  |  ------------------
  |  |  |  |  158|      0|#define GUINT16_TO_LE(val)	((guint16) (val))
  |  |  ------------------
  ------------------
  188|      0|				       (guint)GUINT16_FROM_BE(gnat.d), /* 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)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  189|      0|				       gnat.e[0],
  190|      0|				       gnat.e[1],
  191|      0|				       gnat.e[2],
  192|      0|				       gnat.e[3],
  193|      0|				       gnat.e[4],
  194|      0|				       gnat.e[5]);
  195|      0|	}
  196|     29|	return g_strdup_printf("%08x-%04x-%04x-%04x-%02x%02x%02x%02x%02x%02x",
  197|     29|			       (guint)GUINT32_FROM_BE(gnat.a), /* nocheck:blocked */
  ------------------
  |  |  419|     29|#define GUINT32_FROM_BE(val)	(GUINT32_TO_BE (val))
  |  |  ------------------
  |  |  |  |  165|     29|#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  380|     29|#      define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86_64 (val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  358|     29|       (G_GNUC_EXTENSION					\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     29|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  359|     29|	 ({ guint32 __v, __x = ((guint32) (val));		\
  |  |  |  |  |  |  |  |  360|     29|	    if (__builtin_constant_p (__x))			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (360:10): [True: 0, False: 29]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  361|     29|	      __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|     29|	    else						\
  |  |  |  |  |  |  |  |  363|     29|	     __asm__ ("bswapl %0"				\
  |  |  |  |  |  |  |  |  364|     29|		      : "=r" (__v)				\
  |  |  |  |  |  |  |  |  365|     29|		      : "0" (__x));				\
  |  |  |  |  |  |  |  |  366|     29|	    __v; }))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  198|     29|			       (guint)GUINT16_FROM_BE(gnat.b), /* nocheck:blocked */
  ------------------
  |  |  415|     29|#define GUINT16_FROM_BE(val)	(GUINT16_TO_BE (val))
  |  |  ------------------
  |  |  |  |  160|     29|#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  378|     29|#    define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  218|     29|#define GUINT16_SWAP_LE_BE_CONSTANT(val)	((guint16) ( \
  |  |  |  |  |  |  |  |  219|     29|    (guint16) ((guint16) (val) >> 8) |	\
  |  |  |  |  |  |  |  |  220|     29|    (guint16) ((guint16) (val) << 8)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  199|     29|			       (guint)GUINT16_FROM_BE(gnat.c), /* nocheck:blocked */
  ------------------
  |  |  415|     29|#define GUINT16_FROM_BE(val)	(GUINT16_TO_BE (val))
  |  |  ------------------
  |  |  |  |  160|     29|#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  378|     29|#    define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  218|     29|#define GUINT16_SWAP_LE_BE_CONSTANT(val)	((guint16) ( \
  |  |  |  |  |  |  |  |  219|     29|    (guint16) ((guint16) (val) >> 8) |	\
  |  |  |  |  |  |  |  |  220|     29|    (guint16) ((guint16) (val) << 8)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  200|     29|			       (guint)GUINT16_FROM_BE(gnat.d), /* nocheck:blocked */
  ------------------
  |  |  415|     29|#define GUINT16_FROM_BE(val)	(GUINT16_TO_BE (val))
  |  |  ------------------
  |  |  |  |  160|     29|#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  378|     29|#    define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  218|     29|#define GUINT16_SWAP_LE_BE_CONSTANT(val)	((guint16) ( \
  |  |  |  |  |  |  |  |  219|     29|    (guint16) ((guint16) (val) >> 8) |	\
  |  |  |  |  |  |  |  |  220|     29|    (guint16) ((guint16) (val) << 8)))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  201|     29|			       gnat.e[0],
  202|     29|			       gnat.e[1],
  203|     29|			       gnat.e[2],
  204|     29|			       gnat.e[3],
  205|     29|			       gnat.e[4],
  206|     29|			       gnat.e[5]);
  207|     29|}

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

fu_byte_array_append_bytes:
  164|      2|{
  165|       |	g_byte_array_append(array, g_bytes_get_data(bytes, NULL), g_bytes_get_size(bytes));
  166|      2|}
fu_byte_array_append_array:
  179|      2|{
  180|      2|	g_return_if_fail(array != 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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  181|      2|	g_return_if_fail(array2 != 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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  182|      2|	g_byte_array_append(array, array2->data, array2->len);
  183|      2|}
fu_byte_array_set_size:
  230|      2|{
  231|      2|	guint oldlength = array->len;
  232|      2|	g_return_if_fail(array != 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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  233|      2|	g_return_if_fail(length < G_MAXUINT);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|      2|	g_byte_array_set_size(array, length);
  235|      2|	if (length > oldlength)
  ------------------
  |  Branch (235:6): [True: 2, False: 0]
  ------------------
  236|      2|		memset(array->data + oldlength, data, length - oldlength);
  237|      2|}

fu_bytes_new_offset:
  300|     71|{
  301|     71|	g_return_val_if_fail(bytes != NULL, NULL);
  ------------------
  |  |  663|     71|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     71|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     71|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     71|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     71|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     71| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     71|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     71|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     71|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 71, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     71|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     71|   else                                         \
  |  |  |  |  |  |  |  | 1240|     71|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     71|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     71|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 71, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     71|      { } \
  |  |  666|     71|    else \
  |  |  667|     71|      { \
  |  |  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|     71|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     71|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 71]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  302|     71|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|     71|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     71|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     71|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     71|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     71|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     71| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     71|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     71|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    142|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 71, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     71|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     71|   else                                         \
  |  |  |  |  |  |  |  | 1240|     71|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     71|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     71|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 71, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     71|      { } \
  |  |  666|     71|    else \
  |  |  667|     71|      { \
  |  |  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|     71|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     71|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 71]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  303|       |
  304|       |	/* optimize */
  305|     71|	if (offset == 0x0 && g_bytes_get_size(bytes) == length)
  ------------------
  |  Branch (305:6): [True: 13, False: 58]
  |  Branch (305:23): [True: 13, False: 0]
  ------------------
  306|     13|		return g_bytes_ref(bytes);
  307|       |
  308|       |	/* sanity check */
  309|     58|	if (offset + length < length || offset + length > g_bytes_get_size(bytes)) {
  ------------------
  |  Branch (309:6): [True: 0, False: 58]
  |  Branch (309:34): [True: 0, False: 58]
  ------------------
  310|      0|		g_set_error(error,
  311|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  312|      0|			    FWUPD_ERROR_INVALID_DATA,
  313|      0|			    "cannot create bytes @0x%02x for 0x%02x "
  314|      0|			    "as buffer only 0x%04x bytes in size",
  315|      0|			    (guint)offset,
  316|      0|			    (guint)length,
  317|      0|			    (guint)g_bytes_get_size(bytes));
  318|      0|		return NULL;
  319|      0|	}
  320|     58|	return g_bytes_new_from_bytes(bytes, offset, length);
  321|     58|}

fu_cbor_parse:
  487|     69|{
  488|     69|	g_autoptr(FuCborItem) item = NULL;
  ------------------
  |  | 1381|     69|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     69|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  489|     69|	FuCborParseHelper helper = {
  490|     69|	    .stream = stream,
  491|     69|	    .max_depth = max_depth,
  492|     69|	    .max_items = max_items,
  493|     69|	    .max_length = max_length,
  494|     69|	};
  495|       |
  496|     69|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|     69|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     69|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     69|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     69|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     69|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     69| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     69|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     69|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     69|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 69, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     69|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     69|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     69|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     69|   else                                         \
  |  |  |  |  |  |  |  | 1240|     69|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     69|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     69|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     69|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     69|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 69, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     69|      { } \
  |  |  666|     69|    else \
  |  |  667|     69|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     69|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     69|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 69]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  497|     69|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|     69|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     69|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     69|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     69|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     69|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     69| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     69|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     69|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    138|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 69, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     69|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     69|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     69|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     69|   else                                         \
  |  |  |  |  |  |  |  | 1240|     69|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     69|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     69|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     69|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     69|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 69, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     69|      { } \
  |  |  666|     69|    else \
  |  |  667|     69|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     69|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     69|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 69]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  498|       |
  499|     69|	if (offset != NULL)
  ------------------
  |  Branch (499:6): [True: 69, False: 0]
  ------------------
  500|     69|		helper.offset = *offset;
  501|     69|	item = fu_cbor_parse_item(&helper, 0, FALSE, NULL, error);
  ------------------
  |  |  925|     69|#define	FALSE	(0)
  ------------------
  502|     69|	if (item == NULL) {
  ------------------
  |  Branch (502:6): [True: 4, False: 65]
  ------------------
  503|      4|		g_prefix_error(error, "CBOR parsing failed @0x%x: ", (guint)helper.offset);
  504|      4|		return NULL;
  505|      4|	}
  506|     65|	if (fu_cbor_item_get_kind(item) != FU_CBOR_ITEM_KIND_MAP &&
  ------------------
  |  Branch (506:6): [True: 5, False: 60]
  ------------------
  507|      5|	    fu_cbor_item_get_kind(item) != FU_CBOR_ITEM_KIND_ARRAY) {
  ------------------
  |  Branch (507:6): [True: 5, False: 0]
  ------------------
  508|      5|		g_set_error(error,
  509|      5|			    FWUPD_ERROR,
  ------------------
  |  |   15|      5|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  510|      5|			    FWUPD_ERROR_INVALID_DATA,
  511|      5|			    "CBOR data must start with array or map, got %s",
  512|      5|			    fu_cbor_item_kind_to_string(fu_cbor_item_get_kind(item)));
  513|      5|		return NULL;
  514|      5|	}
  515|       |
  516|       |	/* success */
  517|     60|	if (offset != NULL)
  ------------------
  |  Branch (517:6): [True: 60, False: 0]
  ------------------
  518|     60|		*offset = helper.offset;
  519|     60|	return g_steal_pointer(&item);
  ------------------
  |  |  247|     60|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  520|     65|}
fu-cbor-common.c:fu_cbor_parse_item:
  260|    724|{
  261|    724|	FuCborTag tag;
  262|    724|	FuCborMode mode = FU_CBOR_MODE_DEFINITE;
  263|    724|	guint64 len = 0;
  264|    724|	guint8 len_short;
  265|    724|	guint8 value8 = 0;
  266|       |
  267|    724|	if (!fu_input_stream_read_u8(helper->stream, helper->offset, &value8, error))
  ------------------
  |  Branch (267:6): [True: 0, False: 724]
  ------------------
  268|      0|		return NULL;
  269|       |
  270|    724|	if (!fu_size_checked_inc(&helper->offset, 1, error)) {
  ------------------
  |  Branch (270:6): [True: 0, False: 724]
  ------------------
  271|      0|		g_prefix_error_literal(error, "CBOR tag offset overflow: ");
  272|      0|		return NULL;
  273|      0|	}
  274|       |
  275|    724|	tag = (value8 & 0b11100000) >> 5;
  276|    724|	g_debug("tag: %u [%s] @0x%x", tag, fu_cbor_tag_to_string(tag), (guint)helper->offset);
  ------------------
  |  |  368|    724|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|    724|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  369|    724|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|    724|                               __VA_ARGS__)
  ------------------
  277|       |
  278|       |	/* process length */
  279|    724|	len_short = (guint)(value8 & 0b11111);
  280|    724|	g_debug("len-short: %u", len_short);
  ------------------
  |  |  368|    724|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|    724|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  369|    724|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|    724|                               __VA_ARGS__)
  ------------------
  281|    724|	if (len_short <= FU_CBOR_LEN_SHORT_MAX) {
  ------------------
  |  Branch (281:6): [True: 599, False: 125]
  ------------------
  282|    599|		len = len_short;
  283|    599|	} else if (len_short == FU_CBOR_LEN_EXT8) {
  ------------------
  |  Branch (283:13): [True: 56, False: 69]
  ------------------
  284|     56|		if (!fu_input_stream_read_u8(helper->stream, helper->offset, &value8, error))
  ------------------
  |  Branch (284:7): [True: 0, False: 56]
  ------------------
  285|      0|			return NULL;
  286|     56|		len = value8;
  287|       |
  288|     56|		if (!fu_size_checked_inc(&helper->offset, 1, error)) {
  ------------------
  |  Branch (288:7): [True: 0, False: 56]
  ------------------
  289|      0|			g_prefix_error_literal(error, "CBOR length8 offset overflow: ");
  290|      0|			return NULL;
  291|      0|		}
  292|     69|	} else if (len_short == FU_CBOR_LEN_EXT16) {
  ------------------
  |  Branch (292:13): [True: 0, False: 69]
  ------------------
  293|      0|		guint16 value16 = 0;
  294|      0|		if (!fu_input_stream_read_u16(helper->stream,
  ------------------
  |  Branch (294:7): [True: 0, False: 0]
  ------------------
  295|      0|					      helper->offset,
  296|      0|					      &value16,
  297|      0|					      G_BIG_ENDIAN,
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  298|      0|					      error))
  299|      0|			return NULL;
  300|      0|		len = value16;
  301|       |
  302|      0|		if (!fu_size_checked_inc(&helper->offset, 2, error)) {
  ------------------
  |  Branch (302:7): [True: 0, False: 0]
  ------------------
  303|      0|			g_prefix_error_literal(error, "CBOR length16 offset overflow: ");
  304|      0|			return NULL;
  305|      0|		}
  306|     69|	} else if (len_short == FU_CBOR_LEN_EXT32) {
  ------------------
  |  Branch (306:13): [True: 30, False: 39]
  ------------------
  307|     30|		guint32 value32 = 0;
  308|     30|		if (!fu_input_stream_read_u32(helper->stream,
  ------------------
  |  Branch (308:7): [True: 0, False: 30]
  ------------------
  309|     30|					      helper->offset,
  310|     30|					      &value32,
  311|     30|					      G_BIG_ENDIAN,
  ------------------
  |  |  212|     30|#define G_BIG_ENDIAN    4321
  ------------------
  312|     30|					      error))
  313|      0|			return NULL;
  314|     30|		len = value32;
  315|       |
  316|     30|		if (!fu_size_checked_inc(&helper->offset, 4, error)) {
  ------------------
  |  Branch (316:7): [True: 0, False: 30]
  ------------------
  317|      0|			g_prefix_error_literal(error, "CBOR length32 offset overflow: ");
  318|      0|			return NULL;
  319|      0|		}
  320|     39|	} else if (len_short == FU_CBOR_LEN_EXT64) {
  ------------------
  |  Branch (320:13): [True: 38, False: 1]
  ------------------
  321|     38|		guint64 value64 = 0;
  322|     38|		if (!fu_input_stream_read_u64(helper->stream,
  ------------------
  |  Branch (322:7): [True: 0, False: 38]
  ------------------
  323|     38|					      helper->offset,
  324|     38|					      &value64,
  325|     38|					      G_BIG_ENDIAN,
  ------------------
  |  |  212|     38|#define G_BIG_ENDIAN    4321
  ------------------
  326|     38|					      error))
  327|      0|			return NULL;
  328|     38|		if (value64 > G_MAXINT64) {
  ------------------
  |  |  106|     38|#define G_MAXINT64	G_GINT64_CONSTANT(0x7fffffffffffffff)
  |  |  ------------------
  |  |  |  |   69|     38|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  ------------------
  ------------------
  |  Branch (328:7): [True: 0, False: 38]
  ------------------
  329|      0|			g_set_error_literal(error,
  330|      0|					    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  331|      0|					    FWUPD_ERROR_INVALID_DATA,
  332|      0|					    "lengths larger than s64:MAX are not supported");
  333|      0|			return NULL;
  334|      0|		}
  335|     38|		len = value64;
  336|       |
  337|     38|		if (!fu_size_checked_inc(&helper->offset, 8, error)) {
  ------------------
  |  Branch (337:7): [True: 0, False: 38]
  ------------------
  338|      0|			g_prefix_error_literal(error, "CBOR length64 offset overflow: ");
  339|      0|			return NULL;
  340|      0|		}
  341|     38|	} else if (len_short == FU_CBOR_LEN_INDEFINITE) {
  ------------------
  |  Branch (341:13): [True: 1, False: 0]
  ------------------
  342|      1|		mode = FU_CBOR_MODE_INDEFINITE;
  343|      1|	} else {
  344|      0|		g_set_error(error,
  345|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  346|      0|			    FWUPD_ERROR_INVALID_DATA,
  347|      0|			    "short count %u is invalid",
  348|      0|			    len_short);
  349|      0|		return NULL;
  350|      0|	}
  351|    724|	if (mode == FU_CBOR_MODE_DEFINITE && len != len_short)
  ------------------
  |  Branch (351:6): [True: 723, False: 1]
  |  Branch (351:39): [True: 124, False: 599]
  ------------------
  352|    124|		g_debug("len: %" G_GUINT64_FORMAT, len);
  ------------------
  |  |  368|    124|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|    124|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  369|    124|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|    124|                               __VA_ARGS__)
  ------------------
  353|       |
  354|       |	/*
  355|       |	 * indefinite length is only valid for byte strings, text strings, arrays and maps -- for
  356|       |	 * the special major type it is the break stop-code, handled below
  357|       |	 */
  358|    724|	if (mode == FU_CBOR_MODE_INDEFINITE && tag != FU_CBOR_TAG_STRING &&
  ------------------
  |  Branch (358:6): [True: 1, False: 723]
  |  Branch (358:41): [True: 1, False: 0]
  ------------------
  359|      1|	    tag != FU_CBOR_TAG_BYTES && tag != FU_CBOR_TAG_ARRAY && tag != FU_CBOR_TAG_MAP &&
  ------------------
  |  Branch (359:6): [True: 1, False: 0]
  |  Branch (359:34): [True: 1, False: 0]
  |  Branch (359:62): [True: 1, False: 0]
  ------------------
  360|      1|	    tag != FU_CBOR_TAG_SPECIAL) {
  ------------------
  |  Branch (360:6): [True: 0, False: 1]
  ------------------
  361|      0|		g_set_error(error,
  362|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  363|      0|			    FWUPD_ERROR_INVALID_DATA,
  364|      0|			    "indefinite length is not valid for tag %s",
  365|      0|			    fu_cbor_tag_to_string(tag));
  366|      0|		return NULL;
  367|      0|	}
  368|       |
  369|       |	/* chunks of an indefinite-length string must themselves be definite-length */
  370|    724|	if (mode == FU_CBOR_MODE_INDEFINITE && forbid_indefinite && tag != FU_CBOR_TAG_SPECIAL) {
  ------------------
  |  Branch (370:6): [True: 1, False: 723]
  |  Branch (370:41): [True: 0, False: 1]
  |  Branch (370:62): [True: 0, False: 0]
  ------------------
  371|      0|		g_set_error_literal(error,
  372|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  373|      0|				    FWUPD_ERROR_INVALID_DATA,
  374|      0|				    "nested indefinite-length encoding is not allowed");
  375|      0|		return NULL;
  376|      0|	}
  377|       |
  378|       |	/* process tags */
  379|    724|	if (tag == FU_CBOR_TAG_POS_INT)
  ------------------
  |  Branch (379:6): [True: 378, False: 346]
  ------------------
  380|    378|		return fu_cbor_item_new_integer(len);
  381|    346|	if (tag == FU_CBOR_TAG_NEG_INT)
  ------------------
  |  Branch (381:6): [True: 40, False: 306]
  ------------------
  382|     40|		return fu_cbor_item_new_integer(-1 - (gint64)len);
  383|    306|	if (tag == FU_CBOR_TAG_STRING) {
  ------------------
  |  Branch (383:6): [True: 11, False: 295]
  ------------------
  384|     11|		g_autofree gchar *str = NULL;
  ------------------
  |  | 1386|     11|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|     11|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  385|     11|		if (mode == FU_CBOR_MODE_INDEFINITE)
  ------------------
  |  Branch (385:7): [True: 0, False: 11]
  ------------------
  386|      0|			return fu_cbor_parse_string_indefinite(helper, current_depth, error);
  387|     11|		if (helper->max_length > 0 && len > helper->max_length) {
  ------------------
  |  Branch (387:7): [True: 11, False: 0]
  |  Branch (387:33): [True: 0, False: 11]
  ------------------
  388|      0|			g_set_error(error,
  389|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  390|      0|				    FWUPD_ERROR_INVALID_DATA,
  391|      0|				    "string too long (%u of maximum %u)",
  392|      0|				    (guint)len,
  393|      0|				    helper->max_length);
  394|      0|			return NULL;
  395|      0|		}
  396|     11|		str = fu_input_stream_read_string(helper->stream, helper->offset, len, error);
  397|     11|		if (str == NULL)
  ------------------
  |  Branch (397:7): [True: 0, False: 11]
  ------------------
  398|      0|			return NULL;
  399|     11|		if (!fu_size_checked_inc(&helper->offset, len, error))
  ------------------
  |  Branch (399:7): [True: 0, False: 11]
  ------------------
  400|      0|			return NULL;
  401|     11|		return fu_cbor_item_new_string_steal(g_steal_pointer(&str));
  ------------------
  |  |  247|     11|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  402|     11|	}
  403|    295|	if (tag == FU_CBOR_TAG_BYTES) {
  ------------------
  |  Branch (403:6): [True: 41, False: 254]
  ------------------
  404|     41|		g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|     41|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     41|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  405|     41|		if (mode == FU_CBOR_MODE_INDEFINITE)
  ------------------
  |  Branch (405:7): [True: 0, False: 41]
  ------------------
  406|      0|			return fu_cbor_parse_bytes_indefinite(helper, current_depth, error);
  407|     41|		if (helper->max_length > 0 && len > helper->max_length) {
  ------------------
  |  Branch (407:7): [True: 41, False: 0]
  |  Branch (407:33): [True: 0, False: 41]
  ------------------
  408|      0|			g_set_error(error,
  409|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  410|      0|				    FWUPD_ERROR_INVALID_DATA,
  411|      0|				    "bytes too long (%u of maximum %u)",
  412|      0|				    (guint)len,
  413|      0|				    helper->max_length);
  414|      0|			return NULL;
  415|      0|		}
  416|     41|		blob = fu_input_stream_read_bytes(helper->stream, helper->offset, len, NULL, error);
  417|     41|		if (blob == NULL)
  ------------------
  |  Branch (417:7): [True: 1, False: 40]
  ------------------
  418|      1|			return NULL;
  419|     40|		if (!fu_size_checked_inc(&helper->offset, len, error))
  ------------------
  |  Branch (419:7): [True: 0, False: 40]
  ------------------
  420|      0|			return NULL;
  421|     40|		return fu_cbor_item_new_bytes(blob);
  422|     40|	}
  423|    254|	if (tag == FU_CBOR_TAG_SPECIAL) {
  ------------------
  |  Branch (423:6): [True: 1, False: 253]
  ------------------
  424|      1|		if (mode == FU_CBOR_MODE_INDEFINITE) {
  ------------------
  |  Branch (424:7): [True: 1, False: 0]
  ------------------
  425|       |			/* this is the break stop-code that terminates indefinite lengths */
  426|      1|			if (got_break != NULL) {
  ------------------
  |  Branch (426:8): [True: 0, False: 1]
  ------------------
  427|      0|				*got_break = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  428|      0|				return NULL;
  429|      0|			}
  430|      1|			g_set_error_literal(error,
  431|      1|					    FWUPD_ERROR,
  ------------------
  |  |   15|      1|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  432|      1|					    FWUPD_ERROR_INVALID_DATA,
  433|      1|					    "unexpected break stop-code");
  434|      1|			return NULL;
  435|      1|		}
  436|      0|		if (len == FU_CBOR_SPECIAL_VALUE_TRUE)
  ------------------
  |  Branch (436:7): [True: 0, False: 0]
  ------------------
  437|      0|			return fu_cbor_item_new_boolean(TRUE);
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  438|      0|		if (len == FU_CBOR_SPECIAL_VALUE_FALSE)
  ------------------
  |  Branch (438:7): [True: 0, False: 0]
  ------------------
  439|      0|			return fu_cbor_item_new_boolean(FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  440|      0|		if (len == FU_CBOR_SPECIAL_VALUE_NULL)
  ------------------
  |  Branch (440:7): [True: 0, False: 0]
  ------------------
  441|      0|			return fu_cbor_item_new_string(NULL);
  442|      0|		g_set_error(error,
  443|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  444|      0|			    FWUPD_ERROR_INVALID_DATA,
  445|      0|			    "special value %u [%s] is not handled",
  446|      0|			    (guint)len,
  447|      0|			    fu_cbor_special_value_to_string(len));
  448|      0|		return NULL;
  449|      0|	}
  450|    253|	if (tag == FU_CBOR_TAG_MAP)
  ------------------
  |  Branch (450:6): [True: 217, False: 36]
  ------------------
  451|    217|		return fu_cbor_parse_map(helper, len, mode, current_depth + 1, error);
  452|     36|	if (tag == FU_CBOR_TAG_ARRAY)
  ------------------
  |  Branch (452:6): [True: 36, False: 0]
  ------------------
  453|     36|		return fu_cbor_parse_array(helper, len, mode, current_depth + 1, error);
  454|       |
  455|       |	/* unknown */
  456|      0|	g_set_error(error,
  457|      0|		    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  458|      0|		    FWUPD_ERROR_INVALID_DATA,
  459|      0|		    "tag %u [%s] is not handled",
  460|      0|		    tag,
  461|      0|		    fu_cbor_tag_to_string(tag));
  462|       |	return NULL;
  463|     36|}
fu-cbor-common.c:fu_cbor_parse_map:
   38|    217|{
   39|    217|	g_autoptr(FuCborItem) item = fu_cbor_item_new_map();
  ------------------
  |  | 1381|    217|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    217|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   40|       |
   41|       |	/* sanity check */
   42|    217|	if (helper->max_depth > 0 && current_depth > helper->max_depth) {
  ------------------
  |  Branch (42:6): [True: 217, False: 0]
  |  Branch (42:31): [True: 0, False: 217]
  ------------------
   43|      0|		g_set_error(error,
   44|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   45|      0|			    FWUPD_ERROR_INVALID_DATA,
   46|      0|			    "reached max depth of %u",
   47|      0|			    current_depth);
   48|      0|		return NULL;
   49|      0|	}
   50|    217|	if (mode == FU_CBOR_MODE_DEFINITE && helper->max_items > 0 && len > helper->max_items) {
  ------------------
  |  Branch (50:6): [True: 217, False: 0]
  |  Branch (50:39): [True: 217, False: 0]
  |  Branch (50:64): [True: 2, False: 215]
  ------------------
   51|      2|		g_set_error(error,
   52|      2|			    FWUPD_ERROR,
  ------------------
  |  |   15|      2|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   53|      2|			    FWUPD_ERROR_INVALID_DATA,
   54|      2|			    "too many items (%u of maximum %u)",
   55|      2|			    (guint)len,
   56|      2|			    helper->max_items);
   57|      2|		return NULL;
   58|      2|	}
   59|       |
   60|    215|	g_debug("map has %s items", fu_cbor_mode_to_string(mode));
  ------------------
  |  |  368|    215|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|    215|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  369|    215|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|    215|                               __VA_ARGS__)
  ------------------
   61|    501|	for (guint64 i = 0; mode == FU_CBOR_MODE_INDEFINITE || i < len; i++) {
  ------------------
  |  Branch (61:22): [True: 0, False: 501]
  |  Branch (61:57): [True: 292, False: 209]
  ------------------
   62|    292|		gboolean got_break = FALSE;
  ------------------
  |  |  925|    292|#define	FALSE	(0)
  ------------------
   63|    292|		g_autoptr(FuCborItem) item_key = NULL;
  ------------------
  |  | 1381|    292|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    292|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   64|    292|		g_autoptr(FuCborItem) item_val = NULL;
  ------------------
  |  | 1381|    292|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    292|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   65|       |
   66|    292|		item_key = fu_cbor_parse_item(helper,
   67|    292|					      current_depth,
   68|    292|					      FALSE,
  ------------------
  |  |  925|    292|#define	FALSE	(0)
  ------------------
   69|    292|					      mode == FU_CBOR_MODE_INDEFINITE ? &got_break : NULL,
  ------------------
  |  Branch (69:12): [True: 0, False: 292]
  ------------------
   70|    292|					      error);
   71|    292|		if (item_key == NULL) {
  ------------------
  |  Branch (71:7): [True: 1, False: 291]
  ------------------
   72|      1|			if (got_break)
  ------------------
  |  Branch (72:8): [True: 0, False: 1]
  ------------------
   73|      0|				break;
   74|      1|			return NULL;
   75|      1|		}
   76|       |
   77|       |		/* the item count is unknown ahead of time, so limit incrementally; this is
   78|       |		 * checked after the terminating break so that exactly @max_items is allowed */
   79|    291|		if (mode == FU_CBOR_MODE_INDEFINITE && helper->max_items > 0 &&
  ------------------
  |  Branch (79:7): [True: 0, False: 291]
  |  Branch (79:42): [True: 0, False: 0]
  ------------------
   80|      0|		    i >= helper->max_items) {
  ------------------
  |  Branch (80:7): [True: 0, False: 0]
  ------------------
   81|      0|			g_set_error(error,
   82|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   83|      0|				    FWUPD_ERROR_INVALID_DATA,
   84|      0|				    "too many items (maximum %u)",
   85|      0|				    helper->max_items);
   86|      0|			return NULL;
   87|      0|		}
   88|       |
   89|       |		/* a break between a key and value is a truncated map */
   90|    291|		item_val = fu_cbor_parse_item(helper, current_depth, FALSE, NULL, error);
  ------------------
  |  |  925|    291|#define	FALSE	(0)
  ------------------
   91|    291|		if (item_val == NULL)
  ------------------
  |  Branch (91:7): [True: 5, False: 286]
  ------------------
   92|      5|			return NULL;
   93|    286|		if (!fu_cbor_item_map_append(item, item_key, item_val, error))
  ------------------
  |  Branch (93:7): [True: 0, False: 286]
  ------------------
   94|      0|			return NULL;
   95|    286|	}
   96|       |
   97|       |	/* success */
   98|    209|	return g_steal_pointer(&item);
  ------------------
  |  |  247|    209|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
   99|    215|}
fu-cbor-common.c:fu_cbor_parse_array:
  107|     36|{
  108|     36|	g_autoptr(FuCborItem) item = fu_cbor_item_new_array();
  ------------------
  |  | 1381|     36|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     36|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  109|       |
  110|       |	/* sanity check */
  111|     36|	if (helper->max_depth > 0 && current_depth > helper->max_depth) {
  ------------------
  |  Branch (111:6): [True: 36, False: 0]
  |  Branch (111:31): [True: 0, False: 36]
  ------------------
  112|      0|		g_set_error(error,
  113|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  114|      0|			    FWUPD_ERROR_INVALID_DATA,
  115|      0|			    "reached max depth of %u",
  116|      0|			    current_depth);
  117|      0|		return NULL;
  118|      0|	}
  119|     36|	if (mode == FU_CBOR_MODE_DEFINITE && helper->max_items > 0 && len > helper->max_items) {
  ------------------
  |  Branch (119:6): [True: 36, False: 0]
  |  Branch (119:39): [True: 36, False: 0]
  |  Branch (119:64): [True: 0, False: 36]
  ------------------
  120|      0|		g_set_error(error,
  121|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  122|      0|			    FWUPD_ERROR_INVALID_DATA,
  123|      0|			    "too many items (%u of maximum %u)",
  124|      0|			    (guint)len,
  125|      0|			    helper->max_items);
  126|      0|		return NULL;
  127|      0|	}
  128|       |
  129|     36|	g_debug("array has %s items", fu_cbor_mode_to_string(mode));
  ------------------
  |  |  368|     36|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|     36|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  369|     36|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|     36|                               __VA_ARGS__)
  ------------------
  130|    107|	for (guint64 i = 0; mode == FU_CBOR_MODE_INDEFINITE || i < len; i++) {
  ------------------
  |  Branch (130:22): [True: 0, False: 107]
  |  Branch (130:57): [True: 72, False: 35]
  ------------------
  131|     72|		gboolean got_break = FALSE;
  ------------------
  |  |  925|     72|#define	FALSE	(0)
  ------------------
  132|     72|		g_autoptr(FuCborItem) item_tmp = NULL;
  ------------------
  |  | 1381|     72|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     72|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  133|       |
  134|     72|		item_tmp = fu_cbor_parse_item(helper,
  135|     72|					      current_depth,
  136|     72|					      FALSE,
  ------------------
  |  |  925|     72|#define	FALSE	(0)
  ------------------
  137|     72|					      mode == FU_CBOR_MODE_INDEFINITE ? &got_break : NULL,
  ------------------
  |  Branch (137:12): [True: 0, False: 72]
  ------------------
  138|     72|					      error);
  139|     72|		if (item_tmp == NULL) {
  ------------------
  |  Branch (139:7): [True: 1, False: 71]
  ------------------
  140|      1|			if (got_break)
  ------------------
  |  Branch (140:8): [True: 0, False: 1]
  ------------------
  141|      0|				break;
  142|      1|			return NULL;
  143|      1|		}
  144|       |
  145|       |		/* the item count is unknown ahead of time, so limit incrementally; this is
  146|       |		 * checked after the terminating break so that exactly @max_items is allowed */
  147|     71|		if (mode == FU_CBOR_MODE_INDEFINITE && helper->max_items > 0 &&
  ------------------
  |  Branch (147:7): [True: 0, False: 71]
  |  Branch (147:42): [True: 0, False: 0]
  ------------------
  148|      0|		    i >= helper->max_items) {
  ------------------
  |  Branch (148:7): [True: 0, False: 0]
  ------------------
  149|      0|			g_set_error(error,
  150|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  151|      0|				    FWUPD_ERROR_INVALID_DATA,
  152|      0|				    "too many items (maximum %u)",
  153|      0|				    helper->max_items);
  154|      0|			return NULL;
  155|      0|		}
  156|     71|		if (!fu_cbor_item_array_append(item, item_tmp, error))
  ------------------
  |  Branch (156:7): [True: 0, False: 71]
  ------------------
  157|      0|			return NULL;
  158|     71|	}
  159|       |
  160|       |	/* success */
  161|     35|	return g_steal_pointer(&item);
  ------------------
  |  |  247|     35|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  162|     36|}

fu_cbor_item_get_kind:
   46|    309|{
   47|    309|	g_return_val_if_fail(self != NULL, 0);
  ------------------
  |  |  663|    309|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    309|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    309|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    309|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    309|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    309| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    309|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    309|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    309|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 309, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    309|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    309|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    309|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    309|   else                                         \
  |  |  |  |  |  |  |  | 1240|    309|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    309|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    309|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    309|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    309|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 309, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    309|      { } \
  |  |  666|    309|    else \
  |  |  667|    309|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    309|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    309|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 309]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   48|    309|	return self->kind;
   49|    309|}
fu_cbor_item_get_integer:
   65|    263|{
   66|    263|	g_return_val_if_fail(self != NULL, FALSE);
  ------------------
  |  |  663|    263|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    263|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    263|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    263|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    263|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    263| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    263|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    263|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    263|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 263, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    263|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    263|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    263|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    263|   else                                         \
  |  |  |  |  |  |  |  | 1240|    263|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    263|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    263|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    263|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    263|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 263, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    263|      { } \
  |  |  666|    263|    else \
  |  |  667|    263|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    263|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    263|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 263]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   67|    263|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    263|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    263|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    263|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    263|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    263|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    263| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    263|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    263|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    526|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 263, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    263|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    263|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    263|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    263|   else                                         \
  |  |  |  |  |  |  |  | 1240|    263|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    263|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    263|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    263|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    263|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 263, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    263|      { } \
  |  |  666|    263|    else \
  |  |  667|    263|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    263|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    263|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 263]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   68|       |
   69|    263|	if (self->kind != FU_CBOR_ITEM_KIND_INTEGER) {
  ------------------
  |  Branch (69:6): [True: 2, False: 261]
  ------------------
   70|      2|		g_set_error(error,
   71|      2|			    FWUPD_ERROR,
  ------------------
  |  |   15|      2|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   72|      2|			    FWUPD_ERROR_NOT_SUPPORTED,
   73|      2|			    "item kind invalid, got %s",
   74|      2|			    fu_cbor_item_kind_to_string(self->kind));
   75|      2|		return FALSE;
  ------------------
  |  |  925|      2|#define	FALSE	(0)
  ------------------
   76|      2|	}
   77|    261|	if (value != NULL)
  ------------------
  |  Branch (77:6): [True: 261, False: 0]
  ------------------
   78|    261|		*value = FU_CBOR_ITEM_TO_INT64(self);
  ------------------
  |  |   31|    261|#define FU_CBOR_ITEM_TO_INT64(self)   (*((gint64 *)(self)->value))
  ------------------
   79|    261|	return TRUE;
  ------------------
  |  |  929|    261|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    261|#define	FALSE	(0)
  |  |  ------------------
  ------------------
   80|    263|}
fu_cbor_item_get_bytes:
  161|     29|{
  162|     29|	GBytes *blob;
  163|       |
  164|     29|	g_return_val_if_fail(self != NULL, NULL);
  ------------------
  |  |  663|     29|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     29|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     29|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     29|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     29|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     29| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     29|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     29|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     29|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 29, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     29|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     29|   else                                         \
  |  |  |  |  |  |  |  | 1240|     29|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     29|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     29|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 29, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     29|      { } \
  |  |  666|     29|    else \
  |  |  667|     29|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     29|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     29|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 29]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  165|     29|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|     29|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     29|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     29|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     29|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     29|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     29| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     29|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     29|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 29, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     29|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     29|   else                                         \
  |  |  |  |  |  |  |  | 1240|     29|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     29|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     29|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 29, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     29|      { } \
  |  |  666|     29|    else \
  |  |  667|     29|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     29|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     29|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 29]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  166|       |
  167|     29|	if (self->kind != FU_CBOR_ITEM_KIND_BYTES) {
  ------------------
  |  Branch (167:6): [True: 0, False: 29]
  ------------------
  168|      0|		g_set_error(error,
  169|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  170|      0|			    FWUPD_ERROR_NOT_SUPPORTED,
  171|      0|			    "item kind invalid, got %s",
  172|      0|			    fu_cbor_item_kind_to_string(self->kind));
  173|      0|		return NULL;
  174|      0|	}
  175|     29|	blob = FU_CBOR_ITEM_TO_BYTES(self);
  ------------------
  |  |   29|     29|#define FU_CBOR_ITEM_TO_BYTES(self)   ((GBytes *)(self)->value)
  ------------------
  176|     29|	if (blob == NULL) {
  ------------------
  |  Branch (176:6): [True: 0, False: 29]
  ------------------
  177|      0|		g_set_error_literal(error,
  178|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  179|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
  180|      0|				    "empty byte array");
  181|      0|		return NULL;
  182|      0|	}
  183|     29|	return g_bytes_ref(blob);
  184|     29|}
fu_cbor_item_array_length:
  198|     90|{
  199|     90|	g_return_val_if_fail(self != NULL, G_MAXUINT);
  ------------------
  |  |  663|     90|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     90|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     90|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     90|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     90|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     90| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     90|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     90|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     90|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 90, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     90|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     90|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     90|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     90|   else                                         \
  |  |  |  |  |  |  |  | 1240|     90|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     90|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     90|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     90|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     90|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 90, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     90|      { } \
  |  |  666|     90|    else \
  |  |  667|     90|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     90|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     90|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 90]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  200|     90|	g_return_val_if_fail(self->kind == FU_CBOR_ITEM_KIND_ARRAY, G_MAXUINT);
  ------------------
  |  |  663|     90|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     90|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     90|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     90|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     90|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     90| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     90|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     90|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     90|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 90, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     90|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     90|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     90|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     90|   else                                         \
  |  |  |  |  |  |  |  | 1240|     90|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     90|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     90|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     90|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     90|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 90, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     90|      { } \
  |  |  666|     90|    else \
  |  |  667|     90|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     90|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     90|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 90]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  201|     90|	return FU_CBOR_ITEM_TO_ARRAY(self)->len;
  ------------------
  |  |   28|     90|#define FU_CBOR_ITEM_TO_ARRAY(self)   ((GPtrArray *)(self)->value)
  ------------------
  202|     90|}
fu_cbor_item_map_length:
  216|    407|{
  217|    407|	g_return_val_if_fail(self != NULL, G_MAXUINT);
  ------------------
  |  |  663|    407|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    407|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    407|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    407|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    407|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    407| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    407|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    407|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    407|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 407, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    407|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    407|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    407|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    407|   else                                         \
  |  |  |  |  |  |  |  | 1240|    407|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    407|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    407|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    407|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    407|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 407, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    407|      { } \
  |  |  666|    407|    else \
  |  |  667|    407|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    407|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    407|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 407]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  218|    407|	g_return_val_if_fail(self->kind == FU_CBOR_ITEM_KIND_MAP, G_MAXUINT);
  ------------------
  |  |  663|    407|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    407|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    407|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    407|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    407|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    407| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    407|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    407|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    407|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 407, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    407|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    407|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    407|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    407|   else                                         \
  |  |  |  |  |  |  |  | 1240|    407|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    407|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    407|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    407|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    407|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 407, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    407|      { } \
  |  |  666|    407|    else \
  |  |  667|    407|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    407|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    407|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 407]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  219|    407|	return FU_CBOR_ITEM_TO_ARRAY(self)->len;
  ------------------
  |  |   28|    407|#define FU_CBOR_ITEM_TO_ARRAY(self)   ((GPtrArray *)(self)->value)
  ------------------
  220|    407|}
fu_cbor_item_array_index:
  235|     60|{
  236|     60|	g_return_val_if_fail(self != NULL, NULL);
  ------------------
  |  |  663|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     60|      { } \
  |  |  666|     60|    else \
  |  |  667|     60|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  237|     60|	g_return_val_if_fail(self->kind == FU_CBOR_ITEM_KIND_ARRAY, NULL);
  ------------------
  |  |  663|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     60|      { } \
  |  |  666|     60|    else \
  |  |  667|     60|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  238|     60|	g_return_val_if_fail(idx < FU_CBOR_ITEM_TO_ARRAY(self)->len, NULL);
  ------------------
  |  |  663|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     60|      { } \
  |  |  666|     60|    else \
  |  |  667|     60|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  239|     60|	return g_ptr_array_index(FU_CBOR_ITEM_TO_ARRAY(self), idx);
  ------------------
  |  |  149|     60|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  240|     60|}
fu_cbor_item_map_index:
  255|    237|{
  256|    237|	FuCborPair *pair;
  257|    237|	g_return_if_fail(self != NULL);
  ------------------
  |  |  650|    237|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    237|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    237|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    237|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    237| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    237|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    237|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 237, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    237|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    237|   else                                         \
  |  |  |  |  |  |  |  | 1240|    237|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    237|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    237|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 237, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    237|      { } \
  |  |  653|    237|    else \
  |  |  654|    237|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    237|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  258|    237|	g_return_if_fail(self->kind == FU_CBOR_ITEM_KIND_MAP);
  ------------------
  |  |  650|    237|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    237|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    237|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    237|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    237| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    237|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    237|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 237, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    237|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    237|   else                                         \
  |  |  |  |  |  |  |  | 1240|    237|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    237|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    237|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 237, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    237|      { } \
  |  |  653|    237|    else \
  |  |  654|    237|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    237|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  259|    237|	g_return_if_fail(idx < FU_CBOR_ITEM_TO_ARRAY(self)->len);
  ------------------
  |  |  650|    237|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    237|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    237|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    237|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    237| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    237|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    237|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 237, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    237|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    237|   else                                         \
  |  |  |  |  |  |  |  | 1240|    237|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    237|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    237|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 237, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    237|      { } \
  |  |  653|    237|    else \
  |  |  654|    237|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    237|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  260|    237|	pair = g_ptr_array_index(FU_CBOR_ITEM_TO_ARRAY(self), idx);
  ------------------
  |  |  149|    237|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  261|    237|	if (item_key != NULL)
  ------------------
  |  Branch (261:6): [True: 237, False: 0]
  ------------------
  262|    237|		*item_key = pair->key;
  263|    237|	if (item_value != NULL)
  ------------------
  |  Branch (263:6): [True: 237, False: 0]
  ------------------
  264|    237|		*item_value = pair->val;
  265|    237|}
fu_cbor_item_ref:
  414|    643|{
  415|    643|	g_return_val_if_fail(self != NULL, NULL);
  ------------------
  |  |  663|    643|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    643|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    643|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    643|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    643|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    643| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    643|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    643|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    643|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 643, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    643|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    643|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    643|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    643|   else                                         \
  |  |  |  |  |  |  |  | 1240|    643|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    643|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    643|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    643|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    643|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 643, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    643|      { } \
  |  |  666|    643|    else \
  |  |  667|    643|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    643|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    643|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 643]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  416|    643|	g_ref_count_inc(&self->refcount);
  417|    643|	return self;
  418|    643|}
fu_cbor_item_unref:
  432|  1.36k|{
  433|  1.36k|	g_return_val_if_fail(self != NULL, NULL);
  ------------------
  |  |  663|  1.36k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.36k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.36k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.36k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.36k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.36k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.36k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.36k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.36k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.36k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.36k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.36k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.36k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.36k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.36k|      G_PASTE (_g_boolean_var_, uniq) = 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.36k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.36k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.36k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.36k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.36k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.36k|      { } \
  |  |  666|  1.36k|    else \
  |  |  667|  1.36k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  1.36k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.36k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.36k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  434|  1.36k|	if (!g_ref_count_dec(&self->refcount))
  ------------------
  |  Branch (434:6): [True: 643, False: 722]
  ------------------
  435|    643|		return self;
  436|    722|	if (self->value_destroy != NULL)
  ------------------
  |  Branch (436:6): [True: 722, False: 0]
  ------------------
  437|    722|		self->value_destroy(self->value);
  438|    722|	g_free(self);
  439|       |	return NULL;
  440|  1.36k|}
fu_cbor_item_new_bytes:
  475|     40|{
  476|       |	FuCborItem *self = g_new0(FuCborItem, 1);
  ------------------
  |  |  332|     40|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     40|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     40|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     40|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     40|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     40|	  gpointer __p;						\
  |  |  |  |  264|     40|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 40]
  |  |  |  |  ------------------
  |  |  |  |  265|     40|	    __p = g_##func (__n);				\
  |  |  |  |  266|     40|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 40, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     40|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     40|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     40|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 40]
  |  |  |  |  |  Branch (267:26): [True: 40, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     40|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     40|	  else							\
  |  |  |  |  270|     40|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     40|	  __p;							\
  |  |  |  |  272|     40|	}))
  |  |  ------------------
  ------------------
  477|     40|	g_ref_count_init(&self->refcount);
  478|     40|	self->kind = FU_CBOR_ITEM_KIND_BYTES;
  479|     40|	self->value = g_bytes_ref(value);
  480|     40|	self->value_destroy = (GDestroyNotify)g_bytes_unref;
  481|     40|	return self;
  482|     40|}
fu_cbor_item_new_string_steal:
  487|     11|{
  488|       |	FuCborItem *self = g_new0(FuCborItem, 1);
  ------------------
  |  |  332|     11|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     11|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     11|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     11|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     11|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     11|	  gpointer __p;						\
  |  |  |  |  264|     11|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 11]
  |  |  |  |  ------------------
  |  |  |  |  265|     11|	    __p = g_##func (__n);				\
  |  |  |  |  266|     11|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 11, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     11|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     11|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     11|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 11]
  |  |  |  |  |  Branch (267:26): [True: 11, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     11|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     11|	  else							\
  |  |  |  |  270|     11|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     11|	  __p;							\
  |  |  |  |  272|     11|	}))
  |  |  ------------------
  ------------------
  489|     11|	g_ref_count_init(&self->refcount);
  490|     11|	self->kind = FU_CBOR_ITEM_KIND_STRING;
  491|     11|	self->value = value;
  492|     11|	self->value_destroy = g_free;
  493|     11|	return self;
  494|     11|}
fu_cbor_item_new_integer:
  508|    418|{
  509|    418|	FuCborItem *self = g_new0(FuCborItem, 1);
  ------------------
  |  |  332|    418|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    418|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    418|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    418|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    418|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    418|	  gpointer __p;						\
  |  |  |  |  264|    418|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 418]
  |  |  |  |  ------------------
  |  |  |  |  265|    418|	    __p = g_##func (__n);				\
  |  |  |  |  266|    418|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 418, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    418|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    418|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    418|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 418]
  |  |  |  |  |  Branch (267:26): [True: 418, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    418|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    418|	  else							\
  |  |  |  |  270|    418|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    418|	  __p;							\
  |  |  |  |  272|    418|	}))
  |  |  ------------------
  ------------------
  510|    418|	g_ref_count_init(&self->refcount);
  511|    418|	self->kind = FU_CBOR_ITEM_KIND_INTEGER;
  512|       |	self->value = g_new0(gint64, 1);
  ------------------
  |  |  332|    418|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    418|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    418|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    418|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    418|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    418|	  gpointer __p;						\
  |  |  |  |  264|    418|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 418]
  |  |  |  |  ------------------
  |  |  |  |  265|    418|	    __p = g_##func (__n);				\
  |  |  |  |  266|    418|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 418, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    418|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    418|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    418|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 418]
  |  |  |  |  |  Branch (267:26): [True: 418, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    418|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    418|	  else							\
  |  |  |  |  270|    418|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    418|	  __p;							\
  |  |  |  |  272|    418|	}))
  |  |  ------------------
  ------------------
  513|    418|	self->value_destroy = g_free;
  514|    418|	*((gint64 *)self->value) = value;
  515|    418|	return self;
  516|    418|}
fu_cbor_item_new_map:
  557|    217|{
  558|       |	FuCborItem *self = g_new0(FuCborItem, 1);
  ------------------
  |  |  332|    217|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    217|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    217|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    217|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    217|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    217|	  gpointer __p;						\
  |  |  |  |  264|    217|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 217]
  |  |  |  |  ------------------
  |  |  |  |  265|    217|	    __p = g_##func (__n);				\
  |  |  |  |  266|    217|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 217, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    217|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    217|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    217|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 217]
  |  |  |  |  |  Branch (267:26): [True: 217, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    217|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    217|	  else							\
  |  |  |  |  270|    217|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    217|	  __p;							\
  |  |  |  |  272|    217|	}))
  |  |  ------------------
  ------------------
  559|    217|	g_ref_count_init(&self->refcount);
  560|    217|	self->kind = FU_CBOR_ITEM_KIND_MAP;
  561|    217|	self->value = g_ptr_array_new_with_free_func((GDestroyNotify)fu_cbor_item_map_pair_free);
  562|    217|	self->value_destroy = (GDestroyNotify)g_ptr_array_unref;
  563|    217|	return self;
  564|    217|}
fu_cbor_item_new_array:
  577|     36|{
  578|       |	FuCborItem *self = g_new0(FuCborItem, 1);
  ------------------
  |  |  332|     36|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     36|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     36|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     36|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     36|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     36|	  gpointer __p;						\
  |  |  |  |  264|     36|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 36]
  |  |  |  |  ------------------
  |  |  |  |  265|     36|	    __p = g_##func (__n);				\
  |  |  |  |  266|     36|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 36, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     36|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     36|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     36|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 36]
  |  |  |  |  |  Branch (267:26): [True: 36, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     36|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     36|	  else							\
  |  |  |  |  270|     36|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     36|	  __p;							\
  |  |  |  |  272|     36|	}))
  |  |  ------------------
  ------------------
  579|     36|	g_ref_count_init(&self->refcount);
  580|     36|	self->kind = FU_CBOR_ITEM_KIND_ARRAY;
  581|     36|	self->value = g_ptr_array_new_with_free_func((GDestroyNotify)fu_cbor_item_unref);
  582|     36|	self->value_destroy = (GDestroyNotify)g_ptr_array_unref;
  583|     36|	return self;
  584|     36|}
fu_cbor_item_array_append:
  600|     71|{
  601|     71|	g_return_val_if_fail(self != NULL, FALSE);
  ------------------
  |  |  663|     71|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     71|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     71|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     71|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     71|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     71| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     71|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     71|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     71|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 71, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     71|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     71|   else                                         \
  |  |  |  |  |  |  |  | 1240|     71|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     71|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     71|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 71, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     71|      { } \
  |  |  666|     71|    else \
  |  |  667|     71|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     71|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     71|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 71]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  602|     71|	g_return_val_if_fail(item != NULL, FALSE);
  ------------------
  |  |  663|     71|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     71|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     71|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     71|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     71|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     71| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     71|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     71|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     71|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 71, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     71|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     71|   else                                         \
  |  |  |  |  |  |  |  | 1240|     71|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     71|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     71|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 71, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     71|      { } \
  |  |  666|     71|    else \
  |  |  667|     71|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     71|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     71|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 71]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  603|     71|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     71|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     71|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     71|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     71|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     71|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     71| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     71|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     71|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    142|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 71, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     71|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     71|   else                                         \
  |  |  |  |  |  |  |  | 1240|     71|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     71|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     71|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 71, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     71|      { } \
  |  |  666|     71|    else \
  |  |  667|     71|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     71|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     71|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 71]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  604|       |
  605|       |	/* sanity check */
  606|     71|	if (self->kind != FU_CBOR_ITEM_KIND_ARRAY) {
  ------------------
  |  Branch (606:6): [True: 0, False: 71]
  ------------------
  607|      0|		g_set_error(error,
  608|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  609|      0|			    FWUPD_ERROR_NOT_SUPPORTED,
  610|      0|			    "item kind invalid, got %s",
  611|      0|			    fu_cbor_item_kind_to_string(self->kind));
  612|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  613|      0|	}
  614|     71|	g_ptr_array_add(FU_CBOR_ITEM_TO_ARRAY(self), fu_cbor_item_ref(item));
  ------------------
  |  |   28|     71|#define FU_CBOR_ITEM_TO_ARRAY(self)   ((GPtrArray *)(self)->value)
  ------------------
  615|     71|	return TRUE;
  ------------------
  |  |  929|     71|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     71|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  616|     71|}
fu_cbor_item_map_append:
  636|    286|{
  637|    286|	g_autofree FuCborPair *pair = g_new0(FuCborPair, 1);
  ------------------
  |  | 1386|    286|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|    286|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
              	g_autofree FuCborPair *pair = g_new0(FuCborPair, 1);
  ------------------
  |  |  332|    286|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    286|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    286|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    286|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    286|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    286|	  gpointer __p;						\
  |  |  |  |  264|    286|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 286]
  |  |  |  |  ------------------
  |  |  |  |  265|    286|	    __p = g_##func (__n);				\
  |  |  |  |  266|    286|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 286, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    286|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    286|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    286|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 286]
  |  |  |  |  |  Branch (267:26): [True: 286, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    286|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    286|	  else							\
  |  |  |  |  270|    286|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    286|	  __p;							\
  |  |  |  |  272|    286|	}))
  |  |  ------------------
  ------------------
  638|    286|	g_return_val_if_fail(self != NULL, FALSE);
  ------------------
  |  |  663|    286|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    286|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    286|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    286|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    286|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    286| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    286|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    286|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    286|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 286, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    286|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    286|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    286|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    286|   else                                         \
  |  |  |  |  |  |  |  | 1240|    286|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    286|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    286|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    286|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    286|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 286, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    286|      { } \
  |  |  666|    286|    else \
  |  |  667|    286|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    286|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    286|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 286]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  639|    286|	g_return_val_if_fail(item_key != NULL, FALSE);
  ------------------
  |  |  663|    286|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    286|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    286|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    286|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    286|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    286| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    286|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    286|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    286|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 286, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    286|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    286|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    286|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    286|   else                                         \
  |  |  |  |  |  |  |  | 1240|    286|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    286|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    286|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    286|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    286|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 286, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    286|      { } \
  |  |  666|    286|    else \
  |  |  667|    286|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    286|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    286|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 286]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  640|    286|	g_return_val_if_fail(item_val != NULL, FALSE);
  ------------------
  |  |  663|    286|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    286|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    286|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    286|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    286|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    286| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    286|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    286|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    286|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 286, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    286|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    286|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    286|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    286|   else                                         \
  |  |  |  |  |  |  |  | 1240|    286|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    286|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    286|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    286|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    286|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 286, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    286|      { } \
  |  |  666|    286|    else \
  |  |  667|    286|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    286|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    286|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 286]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  641|    286|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    286|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    286|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    286|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    286|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    286|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    286| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    286|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    286|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    572|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 286, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    286|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    286|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    286|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    286|   else                                         \
  |  |  |  |  |  |  |  | 1240|    286|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    286|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    286|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    286|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    286|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 286, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    286|      { } \
  |  |  666|    286|    else \
  |  |  667|    286|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuCbor"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    286|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    286|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 286]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  642|       |
  643|       |	/* sanity check */
  644|    286|	if (self->kind != FU_CBOR_ITEM_KIND_MAP) {
  ------------------
  |  Branch (644:6): [True: 0, False: 286]
  ------------------
  645|      0|		g_set_error(error,
  646|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  647|      0|			    FWUPD_ERROR_NOT_SUPPORTED,
  648|      0|			    "item kind invalid, got %s",
  649|      0|			    fu_cbor_item_kind_to_string(self->kind));
  650|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  651|      0|	}
  652|       |
  653|    286|	pair->key = fu_cbor_item_ref(item_key);
  654|    286|	pair->val = fu_cbor_item_ref(item_val);
  655|    286|	g_ptr_array_add(FU_CBOR_ITEM_TO_ARRAY(self), g_steal_pointer(&pair));
  ------------------
  |  |   28|    286|#define FU_CBOR_ITEM_TO_ARRAY(self)   ((GPtrArray *)(self)->value)
  ------------------
              	g_ptr_array_add(FU_CBOR_ITEM_TO_ARRAY(self), g_steal_pointer(&pair));
  ------------------
  |  |  247|    286|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  656|    286|	return TRUE;
  ------------------
  |  |  929|    286|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    286|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  657|    286|}
fu-cbor-item.c:fu_cbor_item_map_pair_free:
  540|    286|{
  541|    286|	fu_cbor_item_unref(pair->key);
  542|    286|	fu_cbor_item_unref(pair->val);
  543|    286|	g_free(pair);
  544|    286|}

fu_size_checked_add:
  112|    854|{
  113|    854|	gsize tmp = 0;
  114|    854|	if (!g_size_checked_add(&tmp, a, b))
  ------------------
  |  |  472|    854|    (!__builtin_add_overflow(a, b, dest))
  ------------------
  |  Branch (114:6): [True: 0, False: 854]
  ------------------
  115|      0|		return G_MAXSIZE;
  ------------------
  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  116|    854|	return tmp;
  117|    854|}
fu_size_checked_inc:
  135|    899|{
  136|    899|	gsize value_new;
  137|       |
  138|    899|	g_return_val_if_fail(value != NULL, FALSE);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |    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|    899|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    899|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 899]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  139|    899|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  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|  1.79k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 899, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, 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, \
  |  |  ------------------
  |  |  |  |    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|    899|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    899|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 899]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  140|       |
  141|    899|	value_new = *value;
  142|    899|	if (!g_size_checked_add(&value_new, *value, len)) {
  ------------------
  |  |  472|    899|    (!__builtin_add_overflow(a, b, dest))
  ------------------
  |  Branch (142:6): [True: 0, False: 899]
  ------------------
  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|    899|	*value = value_new;
  154|    899|	return TRUE;
  ------------------
  |  |  929|    899|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    899|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  155|    899|}

fu_coswid_read_string:
   27|     29|{
   28|     29|	g_return_val_if_fail(item != NULL, NULL);
  ------------------
  |  |  663|     29|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     29|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     29|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     29|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     29|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     29| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     29|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     29|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     29|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 29, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     29|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     29|   else                                         \
  |  |  |  |  |  |  |  | 1240|     29|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     29|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     29|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 29, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     29|      { } \
  |  |  666|     29|    else \
  |  |  667|     29|      { \
  |  |  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|     29|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     29|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 29]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   29|     29|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|     29|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     29|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     29|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     29|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     29|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     29| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     29|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     29|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 29, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     29|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     29|   else                                         \
  |  |  |  |  |  |  |  | 1240|     29|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     29|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     29|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     29|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     29|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 29, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     29|      { } \
  |  |  666|     29|    else \
  |  |  667|     29|      { \
  |  |  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|     29|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     29|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 29]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   30|       |
   31|     29|	if (fu_cbor_item_get_kind(item) == FU_CBOR_ITEM_KIND_STRING)
  ------------------
  |  Branch (31:6): [True: 0, False: 29]
  ------------------
   32|      0|		return fu_cbor_item_get_string(item, error);
   33|     29|	if (fu_cbor_item_get_kind(item) == FU_CBOR_ITEM_KIND_BYTES) {
  ------------------
  |  Branch (33:6): [True: 29, False: 0]
  ------------------
   34|     29|		g_autoptr(GBytes) blob = fu_cbor_item_get_bytes(item, error);
  ------------------
  |  | 1381|     29|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     29|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   35|     29|		if (blob == NULL)
  ------------------
  |  Branch (35:7): [True: 0, False: 29]
  ------------------
   36|      0|			return NULL;
   37|     29|		if (g_bytes_get_size(blob) == 16) {
  ------------------
  |  Branch (37:7): [True: 29, False: 0]
  ------------------
   38|     29|			return fwupd_guid_to_string(
   39|     29|			    (const fwupd_guid_t *)g_bytes_get_data(blob, NULL),
   40|     29|			    FWUPD_GUID_FLAG_NONE);
   41|     29|		}
   42|     29|	}
   43|      0|	g_set_error_literal(error,
   44|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   45|      0|			    FWUPD_ERROR_INVALID_DATA,
   46|      0|			    "item is not a string or GUID bytestring");
   47|       |	return NULL;
   48|     29|}
fu_coswid_read_tag:
   64|    237|{
   65|    237|	gint64 tmp = 0;
   66|       |
   67|    237|	g_return_val_if_fail(item != NULL, FALSE);
  ------------------
  |  |  663|    237|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    237|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    237|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    237|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    237| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    237|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    237|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 237, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    237|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    237|   else                                         \
  |  |  |  |  |  |  |  | 1240|    237|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    237|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    237|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 237, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    237|      { } \
  |  |  666|    237|    else \
  |  |  667|    237|      { \
  |  |  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|    237|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   68|    237|	g_return_val_if_fail(value != NULL, FALSE);
  ------------------
  |  |  663|    237|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    237|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    237|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    237|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    237| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    237|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    237|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 237, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    237|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    237|   else                                         \
  |  |  |  |  |  |  |  | 1240|    237|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    237|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    237|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 237, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    237|      { } \
  |  |  666|    237|    else \
  |  |  667|    237|      { \
  |  |  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|    237|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   69|    237|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    237|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    237|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    237|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    237|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    237| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    237|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    474|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 237, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    237|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    237|   else                                         \
  |  |  |  |  |  |  |  | 1240|    237|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    237|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    237|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 237, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    237|      { } \
  |  |  666|    237|    else \
  |  |  667|    237|      { \
  |  |  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|    237|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   70|       |
   71|    237|	if (!fu_cbor_item_get_integer(item, &tmp, error)) {
  ------------------
  |  Branch (71:6): [True: 2, False: 235]
  ------------------
   72|      2|		g_prefix_error_literal(error, "tag invalid: ");
   73|      2|		return FALSE;
  ------------------
  |  |  925|      2|#define	FALSE	(0)
  ------------------
   74|      2|	}
   75|    235|	*value = (FuCoswidTag)tmp;
   76|    235|	return TRUE;
  ------------------
  |  |  929|    235|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    235|#define	FALSE	(0)
  |  |  ------------------
  ------------------
   77|    237|}
fu_coswid_parse_one_or_many:
  220|     85|{
  221|     85|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     85|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     85|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     85|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     85|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     85|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     85| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     85|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     85|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    170|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 85, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     85|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     85|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     85|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     85|   else                                         \
  |  |  |  |  |  |  |  | 1240|     85|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     85|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     85|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     85|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     85|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 85, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     85|      { } \
  |  |  666|     85|    else \
  |  |  667|     85|      { \
  |  |  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|     85|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     85|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 85]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|       |
  223|       |	/* one */
  224|     85|	if (fu_cbor_item_get_kind(item) == FU_CBOR_ITEM_KIND_MAP)
  ------------------
  |  Branch (224:6): [True: 55, False: 30]
  ------------------
  225|     55|		return func(item, user_data, error);
  226|       |
  227|       |	/* many */
  228|     30|	if (fu_cbor_item_get_kind(item) == FU_CBOR_ITEM_KIND_ARRAY) {
  ------------------
  |  Branch (228:6): [True: 30, False: 0]
  ------------------
  229|     90|		for (guint j = 0; j < fu_cbor_item_array_length(item); j++) {
  ------------------
  |  Branch (229:21): [True: 60, False: 30]
  ------------------
  230|     60|			FuCborItem *value = fu_cbor_item_array_index(item, j);
  231|     60|			if (fu_cbor_item_get_kind(value) != FU_CBOR_ITEM_KIND_MAP) {
  ------------------
  |  Branch (231:8): [True: 0, False: 60]
  ------------------
  232|      0|				g_set_error_literal(error,
  233|      0|						    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  234|      0|						    FWUPD_ERROR_INVALID_DATA,
  235|      0|						    "not an array of a map");
  236|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  237|      0|			}
  238|     60|			if (!func(value, user_data, error))
  ------------------
  |  Branch (238:8): [True: 0, False: 60]
  ------------------
  239|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  240|     60|		}
  241|     30|		return TRUE;
  ------------------
  |  |  929|     30|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     30|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  242|     30|	}
  243|       |
  244|       |	/* not sure what to do */
  245|      0|	g_set_error_literal(error,
  246|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  247|      0|			    FWUPD_ERROR_INVALID_DATA,
  248|      0|			    "neither an array or map");
  249|      0|	return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  250|     30|}

fu-coswid-firmware.c:fu_coswid_firmware_class_init:
 1338|      1|{
 1339|      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)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1340|      1|	FuFirmwareClass *firmware_class = FU_FIRMWARE_CLASS(klass);
 1341|      1|	object_class->finalize = fu_coswid_firmware_finalize;
 1342|      1|	firmware_class->parse = fu_coswid_firmware_parse;
 1343|      1|	firmware_class->write = fu_coswid_firmware_write;
 1344|      1|	firmware_class->build = fu_coswid_firmware_build;
 1345|      1|	firmware_class->export = fu_coswid_firmware_export;
 1346|      1|	firmware_class->get_checksum = fu_coswid_firmware_get_checksum;
 1347|      1|	fu_firmware_set_size_max(firmware_class, 1 * FU_MB);
  ------------------
  |  |   81|      1|#define FU_MB (1ull << 20)
  ------------------
 1348|      1|}
fu-coswid-firmware.c:fu_coswid_firmware_finalize:
 1320|     69|{
 1321|     69|	FuCoswidFirmware *self = FU_COSWID_FIRMWARE(object);
 1322|     69|	FuCoswidFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   40|     69|#define GET_PRIVATE(o) (fu_coswid_firmware_get_instance_private(o))
  ------------------
 1323|       |
 1324|     69|	g_free(priv->product);
 1325|     69|	g_free(priv->summary);
 1326|     69|	g_free(priv->colloquial_version);
 1327|     69|	g_free(priv->persistent_id);
 1328|     69|	g_free(priv->device_id);
 1329|     69|	g_ptr_array_unref(priv->links);
 1330|     69|	g_ptr_array_unref(priv->payloads);
 1331|     69|	g_ptr_array_unref(priv->entities);
 1332|       |
 1333|     69|	G_OBJECT_CLASS(fu_coswid_firmware_parent_class)->finalize(object);
  ------------------
  |  |   61|     69|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|     69|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|     69|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1334|     69|}
fu-coswid-firmware.c:fu_coswid_firmware_parse:
  630|     69|{
  631|     69|	FuCoswidFirmware *self = FU_COSWID_FIRMWARE(firmware);
  632|     69|	FuCoswidFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   40|     69|#define GET_PRIVATE(o) (fu_coswid_firmware_get_instance_private(o))
  ------------------
  633|     69|	gsize offset = 0;
  634|     69|	g_autoptr(FuCborItem) item = NULL;
  ------------------
  |  | 1381|     69|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     69|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  635|       |
  636|     69|	item = fu_cbor_parse(stream,
  637|     69|			     &offset,
  638|     69|			     FU_COSWID_CBOR_MAX_DEPTH,
  ------------------
  |  |   42|     69|#define FU_COSWID_CBOR_MAX_DEPTH  10
  ------------------
  639|     69|			     FU_COSWID_CBOR_MAX_ITEMS,
  ------------------
  |  |   43|     69|#define FU_COSWID_CBOR_MAX_ITEMS  100
  ------------------
  640|     69|			     FU_COSWID_CBOR_MAX_LENGTH,
  ------------------
  |  |   44|     69|#define FU_COSWID_CBOR_MAX_LENGTH 10240
  ------------------
  641|     69|			     error);
  642|     69|	if (item == NULL)
  ------------------
  |  Branch (642:6): [True: 9, False: 60]
  ------------------
  643|      9|		return FALSE;
  ------------------
  |  |  925|      9|#define	FALSE	(0)
  ------------------
  644|     60|	fu_firmware_set_size(firmware, offset);
  645|       |
  646|       |	/* pretty-print the result */
  647|     60|	if (g_getenv("FWUPD_CBOR_VERBOSE") != NULL) {
  ------------------
  |  Branch (647:6): [True: 0, False: 60]
  ------------------
  648|      0|		g_autofree gchar *str = fu_cbor_item_to_string(item);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  649|      0|		g_debug("%s", str);
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
  650|      0|	}
  651|       |
  652|       |	/* sanity check */
  653|     60|	if (fu_cbor_item_get_kind(item) != FU_CBOR_ITEM_KIND_MAP) {
  ------------------
  |  Branch (653:6): [True: 0, False: 60]
  ------------------
  654|      0|		g_set_error_literal(error,
  655|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  656|      0|				    FWUPD_ERROR_INVALID_DATA,
  657|      0|				    "root item is not a map");
  658|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  659|      0|	}
  660|       |
  661|       |	/* parse out anything interesting */
  662|    175|	for (gsize i = 0; i < fu_cbor_item_map_length(item); i++) {
  ------------------
  |  Branch (662:20): [True: 117, False: 58]
  ------------------
  663|    117|		FuCoswidTag tag_id = 0;
  664|    117|		FuCborItem *item_key = NULL;
  665|    117|		FuCborItem *item_value = NULL;
  666|       |
  667|    117|		fu_cbor_item_map_index(item, i, &item_key, &item_value);
  668|    117|		if (!fu_coswid_read_tag(item_key, &tag_id, error)) {
  ------------------
  |  Branch (668:7): [True: 1, False: 116]
  ------------------
  669|      1|			g_prefix_error(error, "failed to parse root tag %u: ", (guint)i);
  670|      1|			return FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
  671|      1|		}
  672|       |
  673|       |		/* identity can be specified as a string or in binary */
  674|    116|		if (tag_id == FU_COSWID_TAG_TAG_ID) {
  ------------------
  |  Branch (674:7): [True: 1, False: 115]
  ------------------
  675|      1|			g_autofree gchar *str = fu_coswid_read_string(item_value, error);
  ------------------
  |  | 1386|      1|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      1|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  676|      1|			if (str == NULL) {
  ------------------
  |  Branch (676:8): [True: 0, False: 1]
  ------------------
  677|      0|				g_prefix_error_literal(error, "failed to parse tag-id: ");
  678|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  679|      0|			}
  680|      1|			fu_firmware_set_id(firmware, str);
  681|    115|		} else if (tag_id == FU_COSWID_TAG_SOFTWARE_NAME) {
  ------------------
  |  Branch (681:14): [True: 0, False: 115]
  ------------------
  682|      0|			g_free(priv->product);
  683|      0|			priv->product = fu_coswid_read_string(item_value, error);
  684|      0|			if (priv->product == NULL) {
  ------------------
  |  Branch (684:8): [True: 0, False: 0]
  ------------------
  685|      0|				g_prefix_error_literal(error, "failed to parse product: ");
  686|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  687|      0|			}
  688|    115|		} else if (tag_id == FU_COSWID_TAG_SOFTWARE_VERSION) {
  ------------------
  |  Branch (688:14): [True: 28, False: 87]
  ------------------
  689|     28|			g_autofree gchar *str = fu_coswid_read_string(item_value, error);
  ------------------
  |  | 1386|     28|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|     28|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  690|     28|			if (str == NULL) {
  ------------------
  |  Branch (690:8): [True: 0, False: 28]
  ------------------
  691|      0|				g_prefix_error_literal(error, "failed to parse software-version: ");
  692|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  693|      0|			}
  694|     28|			fu_firmware_set_version(firmware, str);
  695|     87|		} else if (tag_id == FU_COSWID_TAG_VERSION_SCHEME) {
  ------------------
  |  Branch (695:14): [True: 0, False: 87]
  ------------------
  696|      0|			if (!fu_coswid_read_version_scheme(item_value,
  ------------------
  |  Branch (696:8): [True: 0, False: 0]
  ------------------
  697|      0|							   &priv->version_scheme,
  698|      0|							   error))
  699|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  700|     87|		} else if (tag_id == FU_COSWID_TAG_SOFTWARE_META) {
  ------------------
  |  Branch (700:14): [True: 0, False: 87]
  ------------------
  701|      0|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (701:8): [True: 0, False: 0]
  ------------------
  702|      0|							 fu_coswid_firmware_parse_meta,
  703|      0|							 self, /* user_data */
  704|      0|							 error))
  705|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  706|     87|		} else if (tag_id == FU_COSWID_TAG_EVIDENCE) {
  ------------------
  |  Branch (706:14): [True: 0, False: 87]
  ------------------
  707|      0|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (707:8): [True: 0, False: 0]
  ------------------
  708|      0|							 fu_coswid_firmware_parse_evidence,
  709|      0|							 self, /* user_data */
  710|      0|							 error))
  711|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  712|     87|		} else if (tag_id == FU_COSWID_TAG_LINK) {
  ------------------
  |  Branch (712:14): [True: 30, False: 57]
  ------------------
  713|     30|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (713:8): [True: 0, False: 30]
  ------------------
  714|     30|							 fu_coswid_firmware_parse_link,
  715|     30|							 self, /* user_data */
  716|     30|							 error))
  717|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  718|     57|		} else if (tag_id == FU_COSWID_TAG_PAYLOAD) {
  ------------------
  |  Branch (718:14): [True: 27, False: 30]
  ------------------
  719|     27|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (719:8): [True: 1, False: 26]
  ------------------
  720|     27|							 fu_coswid_firmware_parse_payload,
  721|     27|							 self, /* user_data */
  722|     27|							 error))
  723|      1|				return FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
  724|     30|		} else if (tag_id == FU_COSWID_TAG_ENTITY) {
  ------------------
  |  Branch (724:14): [True: 0, False: 30]
  ------------------
  725|      0|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (725:8): [True: 0, False: 0]
  ------------------
  726|      0|							 fu_coswid_firmware_parse_entity,
  727|      0|							 self, /* user_data */
  728|      0|							 error))
  729|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  730|     30|		} else {
  731|     30|			g_debug("unhandled tag %s from root", fu_coswid_tag_to_string(tag_id));
  ------------------
  |  |  368|     30|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|     30|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|     30|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|     30|                               __VA_ARGS__)
  ------------------
  732|     30|		}
  733|    116|	}
  734|       |
  735|       |	/* device not supported */
  736|     58|	if (fu_firmware_get_id(firmware) == NULL && fu_firmware_get_version(firmware) == NULL &&
  ------------------
  |  Branch (736:6): [True: 58, False: 0]
  |  Branch (736:46): [True: 30, False: 28]
  ------------------
  737|     30|	    priv->product == NULL && priv->entities->len == 0 && priv->links->len == 0) {
  ------------------
  |  Branch (737:6): [True: 30, False: 0]
  |  Branch (737:31): [True: 30, False: 0]
  |  Branch (737:59): [True: 0, False: 30]
  ------------------
  738|      0|		g_set_error_literal(error,
  739|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  740|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
  741|      0|				    "not enough SBOM data");
  742|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  743|      0|	}
  744|       |
  745|       |	/* success */
  746|     58|	return TRUE;
  ------------------
  |  |  929|     58|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     58|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  747|     58|}
fu-coswid-firmware.c:fu_coswid_firmware_parse_link:
  204|     60|{
  205|     60|	FuCoswidFirmware *self = FU_COSWID_FIRMWARE(user_data);
  206|     60|	FuCoswidFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   40|     60|#define GET_PRIVATE(o) (fu_coswid_firmware_get_instance_private(o))
  ------------------
  207|     60|	g_autoptr(FuCoswidFirmwareLink) link = g_new0(FuCoswidFirmwareLink, 1);
  ------------------
  |  | 1381|     60|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     60|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
              	g_autoptr(FuCoswidFirmwareLink) link = g_new0(FuCoswidFirmwareLink, 1);
  ------------------
  |  |  332|     60|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     60|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     60|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     60|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     60|	  gpointer __p;						\
  |  |  |  |  264|     60|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 60]
  |  |  |  |  ------------------
  |  |  |  |  265|     60|	    __p = g_##func (__n);				\
  |  |  |  |  266|     60|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     60|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     60|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     60|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 60]
  |  |  |  |  |  Branch (267:26): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     60|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     60|	  else							\
  |  |  |  |  270|     60|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     60|	  __p;							\
  |  |  |  |  272|     60|	}))
  |  |  ------------------
  ------------------
  208|       |
  209|    120|	for (gsize i = 0; i < fu_cbor_item_map_length(item); i++) {
  ------------------
  |  Branch (209:20): [True: 60, False: 60]
  ------------------
  210|     60|		FuCoswidTag tag_id = 0;
  211|     60|		FuCborItem *item_key = NULL;
  212|     60|		FuCborItem *item_value = NULL;
  213|       |
  214|     60|		fu_cbor_item_map_index(item, i, &item_key, &item_value);
  215|     60|		if (!fu_coswid_read_tag(item_key, &tag_id, error)) {
  ------------------
  |  Branch (215:7): [True: 0, False: 60]
  ------------------
  216|      0|			g_prefix_error(error, "failed to parse link tag %u: ", (guint)i);
  217|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  218|      0|		}
  219|     60|		if (tag_id == FU_COSWID_TAG_HREF) {
  ------------------
  |  Branch (219:7): [True: 0, False: 60]
  ------------------
  220|      0|			g_free(link->href);
  221|      0|			link->href = fu_coswid_read_string(item_value, error);
  222|      0|			if (link->href == NULL) {
  ------------------
  |  Branch (222:8): [True: 0, False: 0]
  ------------------
  223|      0|				g_prefix_error_literal(error, "failed to parse link href: ");
  224|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  225|      0|			}
  226|     60|		} else if (tag_id == FU_COSWID_TAG_REL) {
  ------------------
  |  Branch (226:14): [True: 0, False: 60]
  ------------------
  227|      0|			gint64 tmp = 0;
  228|      0|			if (!fu_cbor_item_get_integer(item_value, &tmp, error)) {
  ------------------
  |  Branch (228:8): [True: 0, False: 0]
  ------------------
  229|      0|				g_prefix_error_literal(error, "failed to parse link rel: ");
  230|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  231|      0|			}
  232|      0|			link->rel = tmp;
  233|     60|		} else {
  234|     60|			g_debug("unhandled tag %s from %s",
  ------------------
  |  |  368|     60|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|     60|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|     60|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|     60|                               __VA_ARGS__)
  ------------------
  235|     60|				fu_coswid_tag_to_string(tag_id),
  236|     60|				fu_coswid_tag_to_string(FU_COSWID_TAG_LINK));
  237|     60|		}
  238|     60|	}
  239|       |
  240|       |	/* success */
  241|     60|	g_ptr_array_add(priv->links, g_steal_pointer(&link));
  ------------------
  |  |  247|     60|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  242|     60|	return TRUE;
  ------------------
  |  |  929|     60|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     60|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  243|     60|}
fu-coswid-firmware.c:fu_coswid_firmware_link_free:
   80|     60|{
   81|     60|	g_free(link->href);
   82|     60|	g_free(link);
   83|     60|}
fu-coswid-firmware.c:fu_coswid_firmware_parse_payload:
  447|     27|{
  448|     27|	FuCoswidFirmware *self = FU_COSWID_FIRMWARE(user_data);
  449|     55|	for (gsize i = 0; i < fu_cbor_item_map_length(item); i++) {
  ------------------
  |  Branch (449:20): [True: 29, False: 26]
  ------------------
  450|     29|		FuCoswidTag tag_id = 0;
  451|     29|		FuCborItem *item_key = NULL;
  452|     29|		FuCborItem *item_value = NULL;
  453|       |
  454|     29|		fu_cbor_item_map_index(item, i, &item_key, &item_value);
  455|     29|		if (!fu_coswid_read_tag(item_key, &tag_id, error)) {
  ------------------
  |  Branch (455:7): [True: 0, False: 29]
  ------------------
  456|      0|			g_prefix_error(error, "failed to parse payload tag %u: ", (guint)i);
  457|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  458|      0|		}
  459|     29|		if (tag_id == FU_COSWID_TAG_FILE) {
  ------------------
  |  Branch (459:7): [True: 26, False: 3]
  ------------------
  460|     26|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (460:8): [True: 0, False: 26]
  ------------------
  461|     26|							 fu_coswid_firmware_parse_file,
  462|     26|							 self, /* user_data */
  463|     26|							 error))
  464|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  465|     26|		} else if (tag_id == FU_COSWID_TAG_DIRECTORY) {
  ------------------
  |  Branch (465:14): [True: 1, False: 2]
  ------------------
  466|      1|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (466:8): [True: 1, False: 0]
  ------------------
  467|      1|							 fu_coswid_firmware_parse_directory,
  468|      1|							 self, /* user_data */
  469|      1|							 error))
  470|      1|				return FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
  471|      2|		} else {
  472|      2|			g_debug("unhandled tag %s from %s",
  ------------------
  |  |  368|      2|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      2|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|      2|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      2|                               __VA_ARGS__)
  ------------------
  473|      2|				fu_coswid_tag_to_string(tag_id),
  474|      2|				fu_coswid_tag_to_string(FU_COSWID_TAG_PAYLOAD));
  475|      2|		}
  476|     29|	}
  477|       |
  478|       |	/* success */
  479|     26|	return TRUE;
  ------------------
  |  |  929|     26|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     26|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  480|     27|}
fu-coswid-firmware.c:fu_coswid_firmware_parse_file:
  310|     26|{
  311|     26|	FuCoswidFirmware *self = FU_COSWID_FIRMWARE(user_data);
  312|     26|	FuCoswidFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   40|     26|#define GET_PRIVATE(o) (fu_coswid_firmware_get_instance_private(o))
  ------------------
  313|     26|	g_autoptr(FuCoswidFirmwarePayload) payload = fu_coswid_firmware_payload_new();
  ------------------
  |  | 1381|     26|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     26|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  314|       |
  315|     52|	for (gsize i = 0; i < fu_cbor_item_map_length(item); i++) {
  ------------------
  |  Branch (315:20): [True: 26, False: 26]
  ------------------
  316|     26|		FuCoswidTag tag_id = 0;
  317|     26|		FuCborItem *item_key = NULL;
  318|     26|		FuCborItem *item_value = NULL;
  319|       |
  320|     26|		fu_cbor_item_map_index(item, i, &item_key, &item_value);
  321|     26|		if (!fu_coswid_read_tag(item_key, &tag_id, error)) {
  ------------------
  |  Branch (321:7): [True: 0, False: 26]
  ------------------
  322|      0|			g_prefix_error(error, "failed to parse file tag %u: ", (guint)i);
  323|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  324|      0|		}
  325|     26|		if (tag_id == FU_COSWID_TAG_FS_NAME) {
  ------------------
  |  Branch (325:7): [True: 0, False: 26]
  ------------------
  326|      0|			g_free(payload->name);
  327|      0|			payload->name = fu_coswid_read_string(item_value, error);
  328|      0|			if (payload->name == NULL) {
  ------------------
  |  Branch (328:8): [True: 0, False: 0]
  ------------------
  329|      0|				g_prefix_error_literal(error, "failed to parse payload name: ");
  330|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  331|      0|			}
  332|     26|		} else if (tag_id == FU_COSWID_TAG_SIZE) {
  ------------------
  |  Branch (332:14): [True: 26, False: 0]
  ------------------
  333|     26|			gint64 tmp;
  334|     26|			if (!fu_cbor_item_get_integer(item_value, &tmp, error))
  ------------------
  |  Branch (334:8): [True: 0, False: 26]
  ------------------
  335|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  336|     26|			if (tmp < 0) {
  ------------------
  |  Branch (336:8): [True: 0, False: 26]
  ------------------
  337|      0|				g_set_error_literal(error,
  338|      0|						    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  339|      0|						    FWUPD_ERROR_INVALID_DATA,
  340|      0|						    "payload size cannot be negative");
  341|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  342|      0|			}
  343|     26|			payload->size = (guint64)tmp;
  344|     26|		} else if (tag_id == FU_COSWID_TAG_HASH) {
  ------------------
  |  Branch (344:14): [True: 0, False: 0]
  ------------------
  345|      0|			if (fu_cbor_item_get_kind(item_value) == FU_CBOR_ITEM_KIND_ARRAY &&
  ------------------
  |  Branch (345:8): [True: 0, False: 0]
  ------------------
  346|      0|			    fu_cbor_item_array_length(item_value) >= 1) {
  ------------------
  |  Branch (346:8): [True: 0, False: 0]
  ------------------
  347|      0|				FuCborItem *value = fu_cbor_item_array_index(item_value, 0);
  348|       |				/* we can't use fu_coswid_parse_one_or_many() here as
  349|       |				 * the hash is an array, not a map -- for some reason */
  350|      0|				if (fu_cbor_item_get_kind(value) == FU_CBOR_ITEM_KIND_ARRAY) {
  ------------------
  |  Branch (350:9): [True: 0, False: 0]
  ------------------
  351|      0|					if (!fu_coswid_firmware_parse_hash_array(item_value,
  ------------------
  |  Branch (351:10): [True: 0, False: 0]
  ------------------
  352|      0|										 payload,
  353|      0|										 error))
  354|      0|						return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  355|      0|				} else {
  356|      0|					if (!fu_coswid_firmware_parse_hash(item_value,
  ------------------
  |  Branch (356:10): [True: 0, False: 0]
  ------------------
  357|      0|									   payload,
  358|      0|									   error))
  359|      0|						return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  360|      0|				}
  361|      0|			} else {
  362|      0|				g_set_error_literal(error,
  363|      0|						    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  364|      0|						    FWUPD_ERROR_INVALID_DATA,
  365|      0|						    "hashes neither an array or array of array");
  366|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  367|      0|			}
  368|      0|		} else {
  369|      0|			g_debug("unhandled tag %s from %s",
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
  370|      0|				fu_coswid_tag_to_string(tag_id),
  371|      0|				fu_coswid_tag_to_string(FU_COSWID_TAG_FILE));
  372|      0|		}
  373|     26|	}
  374|       |
  375|       |	/* success */
  376|     26|	g_ptr_array_add(priv->payloads, g_steal_pointer(&payload));
  ------------------
  |  |  247|     26|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  377|     26|	return TRUE;
  ------------------
  |  |  929|     26|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     26|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  378|     26|}
fu-coswid-firmware.c:fu_coswid_firmware_payload_new:
   99|     26|{
  100|       |	FuCoswidFirmwarePayload *payload = g_new0(FuCoswidFirmwarePayload, 1);
  ------------------
  |  |  332|     26|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     26|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     26|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     26|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     26|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     26|	  gpointer __p;						\
  |  |  |  |  264|     26|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 26]
  |  |  |  |  ------------------
  |  |  |  |  265|     26|	    __p = g_##func (__n);				\
  |  |  |  |  266|     26|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 26, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     26|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     26|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     26|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 26]
  |  |  |  |  |  Branch (267:26): [True: 26, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     26|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     26|	  else							\
  |  |  |  |  270|     26|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     26|	  __p;							\
  |  |  |  |  272|     26|	}))
  |  |  ------------------
  ------------------
  101|     26|	payload->hashes =
  102|     26|	    g_ptr_array_new_with_free_func((GDestroyNotify)fu_coswid_firmware_hash_free);
  103|     26|	return payload;
  104|     26|}
fu-coswid-firmware.c:fu_coswid_firmware_payload_free:
  108|     26|{
  109|     26|	g_ptr_array_unref(payload->hashes);
  110|     26|	g_free(payload->name);
  111|     26|	g_free(payload);
  112|     26|}
fu-coswid-firmware.c:fu_coswid_firmware_parse_directory:
  415|      1|{
  416|      1|	FuCoswidFirmware *self = FU_COSWID_FIRMWARE(user_data);
  417|      3|	for (gsize i = 0; i < fu_cbor_item_map_length(item); i++) {
  ------------------
  |  Branch (417:20): [True: 3, False: 0]
  ------------------
  418|      3|		FuCoswidTag tag_id = 0;
  419|      3|		FuCborItem *item_key = NULL;
  420|      3|		FuCborItem *item_value = NULL;
  421|       |
  422|      3|		fu_cbor_item_map_index(item, i, &item_key, &item_value);
  423|      3|		if (!fu_coswid_read_tag(item_key, &tag_id, error)) {
  ------------------
  |  Branch (423:7): [True: 0, False: 3]
  ------------------
  424|      0|			g_prefix_error(error, "failed to parse directory tag %u: ", (guint)i);
  425|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  426|      0|		}
  427|      3|		if (tag_id == FU_COSWID_TAG_PATH_ELEMENTS) {
  ------------------
  |  Branch (427:7): [True: 1, False: 2]
  ------------------
  428|      1|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (428:8): [True: 1, False: 0]
  ------------------
  429|      1|							 fu_coswid_firmware_parse_path_elements,
  430|      1|							 self, /* user_data */
  431|      1|							 error))
  432|      1|				return FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
  433|      2|		} else {
  434|      2|			g_debug("unhandled tag %s from %s",
  ------------------
  |  |  368|      2|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      2|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|      2|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      2|                               __VA_ARGS__)
  ------------------
  435|      2|				fu_coswid_tag_to_string(tag_id),
  436|      2|				fu_coswid_tag_to_string(FU_COSWID_TAG_DIRECTORY));
  437|      2|		}
  438|      3|	}
  439|       |
  440|       |	/* success */
  441|      0|	return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  442|      1|}
fu-coswid-firmware.c:fu_coswid_firmware_parse_path_elements:
  383|      1|{
  384|      1|	FuCoswidFirmware *self = FU_COSWID_FIRMWARE(user_data);
  385|      2|	for (gsize i = 0; i < fu_cbor_item_map_length(item); i++) {
  ------------------
  |  Branch (385:20): [True: 2, False: 0]
  ------------------
  386|      2|		FuCoswidTag tag_id = 0;
  387|      2|		FuCborItem *item_key = NULL;
  388|      2|		FuCborItem *item_value = NULL;
  389|       |
  390|      2|		fu_cbor_item_map_index(item, i, &item_key, &item_value);
  391|      2|		if (!fu_coswid_read_tag(item_key, &tag_id, error)) {
  ------------------
  |  Branch (391:7): [True: 1, False: 1]
  ------------------
  392|      1|			g_prefix_error(error, "failed to parse elements tag %u: ", (guint)i);
  393|      1|			return FALSE;
  ------------------
  |  |  925|      1|#define	FALSE	(0)
  ------------------
  394|      1|		}
  395|      1|		if (tag_id == FU_COSWID_TAG_FILE) {
  ------------------
  |  Branch (395:7): [True: 0, False: 1]
  ------------------
  396|      0|			if (!fu_coswid_parse_one_or_many(item_value,
  ------------------
  |  Branch (396:8): [True: 0, False: 0]
  ------------------
  397|      0|							 fu_coswid_firmware_parse_file,
  398|      0|							 self, /* user_data */
  399|      0|							 error))
  400|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  401|      1|		} else {
  402|      1|			g_debug("unhandled tag %s from %s",
  ------------------
  |  |  368|      1|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      1|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|      1|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      1|                               __VA_ARGS__)
  ------------------
  403|      1|				fu_coswid_tag_to_string(tag_id),
  404|      1|				fu_coswid_tag_to_string(FU_COSWID_TAG_PATH_ELEMENTS));
  405|      1|		}
  406|      1|	}
  407|       |
  408|       |	/* success */
  409|      0|	return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  410|      1|}
fu-coswid-firmware.c:fu_coswid_firmware_init:
 1307|     69|{
 1308|     69|	FuCoswidFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   40|     69|#define GET_PRIVATE(o) (fu_coswid_firmware_get_instance_private(o))
  ------------------
 1309|     69|	priv->version_scheme = FU_COSWID_VERSION_SCHEME_SEMVER;
 1310|     69|	priv->links = g_ptr_array_new_with_free_func((GDestroyNotify)fu_coswid_firmware_link_free);
 1311|     69|	priv->payloads =
 1312|     69|	    g_ptr_array_new_with_free_func((GDestroyNotify)fu_coswid_firmware_payload_free);
 1313|     69|	priv->entities =
 1314|     69|	    g_ptr_array_new_with_free_func((GDestroyNotify)fu_coswid_firmware_entity_free);
 1315|     69|	fu_firmware_add_flag(FU_FIRMWARE(self), FU_FIRMWARE_FLAG_ALLOW_LINEAR);
 1316|     69|}

fu_firmware_add_flag:
  107|    193|{
  108|    193|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    193|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  109|    193|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    193|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    193|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    193|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    193|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    193|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    193| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    193|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    193|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    193|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 193, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    193|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    193|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    193|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    193|   else                                         \
  |  |  |  |  |  |  |  | 1240|    193|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    193|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    193|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    193|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    193|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 193, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    193|      { } \
  |  |  653|    193|    else \
  |  |  654|    193|      { \
  |  |  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|    193|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    193|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 193]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  110|    193|	priv->flags |= flag;
  111|    193|}
fu_firmware_has_flag:
  126|    171|{
  127|    171|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    171|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  128|    171|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|    171|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    171|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    171|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    171|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    171|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    171| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    171|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    171|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    171|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 171, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    171|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    171|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    171|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    171|   else                                         \
  |  |  |  |  |  |  |  | 1240|    171|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    171|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    171|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    171|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    171|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 171, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    171|      { } \
  |  |  666|    171|    else \
  |  |  667|    171|      { \
  |  |  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|    171|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    171|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 171]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  129|    171|	return (priv->flags & flag) > 0;
  130|    171|}
fu_firmware_get_version:
  144|     58|{
  145|     58|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     58|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  146|     58|	g_return_val_if_fail(FU_IS_FIRMWARE(self), NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  147|     58|	return priv->version;
  148|     58|}
fu_firmware_set_version:
  161|     28|{
  162|     28|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     28|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  163|     28|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|     28|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     28|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     28|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     28|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     28|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     28| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     28|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     28|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     28|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 28, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     28|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     28|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     28|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     28|   else                                         \
  |  |  |  |  |  |  |  | 1240|     28|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     28|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     28|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     28|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     28|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 28, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     28|      { } \
  |  |  653|     28|    else \
  |  |  654|     28|      { \
  |  |  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|     28|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     28|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  164|     28|	g_set_str(&priv->version, version);
  165|     28|}
fu_firmware_set_id:
  307|      1|{
  308|      1|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|      1|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  309|      1|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  310|      1|	g_set_str(&priv->id, id);
  311|      1|}
fu_firmware_get_id:
  325|     58|{
  326|     58|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     58|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  327|     58|	g_return_val_if_fail(FU_IS_FIRMWARE(self), NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|     58|	return priv->id;
  329|     58|}
fu_firmware_set_offset:
  377|     84|{
  378|     84|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     84|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  379|     84|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|     84|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     84|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     84|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     84|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     84|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     84| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     84|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     84|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     84|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 84, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     84|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     84|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     84|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     84|   else                                         \
  |  |  |  |  |  |  |  | 1240|     84|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     84|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     84|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     84|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     84|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 84, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     84|      { } \
  |  |  653|     84|    else \
  |  |  654|     84|      { \
  |  |  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|     84|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     84|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 84]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  380|     84|	priv->offset = offset;
  381|     84|}
fu_firmware_set_parent:
  430|    151|{
  431|    151|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|    151|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  432|    151|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|    151|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    151|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    151|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    151|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    151|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    151| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    151|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    151|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    151|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 151, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    151|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    151|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    151|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    151|   else                                         \
  |  |  |  |  |  |  |  | 1240|    151|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    151|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    151|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    151|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    151|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 151, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    151|      { } \
  |  |  653|    151|    else \
  |  |  654|    151|      { \
  |  |  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|    151|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    151|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 151]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  433|       |
  434|    151|	if (priv->parent != NULL)
  ------------------
  |  Branch (434:6): [True: 0, False: 151]
  ------------------
  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|    151|	if (parent != NULL)
  ------------------
  |  Branch (436:6): [True: 60, False: 91]
  ------------------
  437|     60|		g_object_add_weak_pointer(G_OBJECT(parent), (gpointer *)&priv->parent);
  ------------------
  |  |   54|     60|#define G_OBJECT(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
  |  |  ------------------
  |  |  |  |  528|     60|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     60|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  438|    151|	priv->parent = parent;
  439|    151|}
fu_firmware_set_size:
  453|     73|{
  454|     73|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     73|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  455|     73|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|     73|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     73|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     73|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     73|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     73|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     73| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     73|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     73|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     73|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 73, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     73|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     73|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     73|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     73|   else                                         \
  |  |  |  |  |  |  |  | 1240|     73|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     73|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     73|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     73|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     73|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 73, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     73|      { } \
  |  |  653|     73|    else \
  |  |  654|     73|      { \
  |  |  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|     73|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     73|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 73]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  456|     73|	priv->size = size;
  457|     73|}
fu_firmware_get_size:
  475|     60|{
  476|     60|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     60|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  477|     60|	g_return_val_if_fail(FU_IS_FIRMWARE(self), G_MAXSIZE);
  ------------------
  |  |  663|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     60|      { } \
  |  |  666|     60|    else \
  |  |  667|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  478|     60|	if (priv->size != 0)
  ------------------
  |  Branch (478:6): [True: 58, False: 2]
  ------------------
  479|     58|		return priv->size;
  480|      2|	if (priv->stream != NULL && priv->streamsz != 0)
  ------------------
  |  Branch (480:6): [True: 0, False: 2]
  |  Branch (480:30): [True: 0, False: 0]
  ------------------
  481|      0|		return priv->streamsz;
  482|      2|	if (priv->bytes != NULL)
  ------------------
  |  Branch (482:6): [True: 2, False: 0]
  ------------------
  483|      2|		return g_bytes_get_size(priv->bytes);
  484|      0|	return 0;
  485|      2|}
fu_firmware_set_size_max:
  500|      3|{
  501|      3|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(klass);
  502|      3|	cpriv->size_max = size_max;
  503|      3|}
fu_firmware_set_bytes:
  570|     84|{
  571|     84|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     84|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  572|     84|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|     84|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     84|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     84|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     84|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     84|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     84| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     84|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     84|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     84|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 84, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     84|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     84|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     84|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     84|   else                                         \
  |  |  |  |  |  |  |  | 1240|     84|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     84|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     84|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     84|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     84|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 84, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     84|      { } \
  |  |  653|     84|    else \
  |  |  654|     84|      { \
  |  |  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|     84|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     84|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 84]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  573|     84|	g_return_if_fail(bytes != NULL);
  ------------------
  |  |  650|     84|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     84|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     84|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     84|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     84|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     84| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     84|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     84|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     84|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 84, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     84|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     84|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     84|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     84|   else                                         \
  |  |  |  |  |  |  |  | 1240|     84|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     84|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     84|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     84|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     84|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 84, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     84|      { } \
  |  |  653|     84|    else \
  |  |  654|     84|      { \
  |  |  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|     84|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     84|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 84]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  574|     84|	if (priv->bytes == bytes)
  ------------------
  |  Branch (574:6): [True: 0, False: 84]
  ------------------
  575|      0|		return;
  576|     84|	if (priv->bytes != NULL)
  ------------------
  |  Branch (576:6): [True: 0, False: 84]
  ------------------
  577|      0|		g_bytes_unref(priv->bytes);
  578|     84|	priv->bytes = g_bytes_ref(bytes);
  579|       |
  580|       |	/* the input stream is no longer valid */
  581|       |	g_clear_object(&priv->stream);
  ------------------
  |  |  695|     84|#define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
  |  |  ------------------
  |  |  |  |  136|     84|  G_STMT_START                                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     84|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  137|     84|  {                                                      \
  |  |  |  |  138|     84|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|     84|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  139|     84|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|     84|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  140|     84|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|     84|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  141|     84|    *_pp = NULL;                                         \
  |  |  |  |  142|     84|    if (_ptr)                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (142:9): [True: 0, False: 84]
  |  |  |  |  ------------------
  |  |  |  |  143|     84|      (destroy) (_ptr);                                  \
  |  |  |  |  144|     84|  }                                                      \
  |  |  |  |  145|     84|  G_STMT_END                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     84|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 84]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  146|     84|  GLIB_AVAILABLE_MACRO_IN_2_34
  |  |  ------------------
  ------------------
  582|     84|}
fu_firmware_get_bytes:
  600|      2|{
  601|      2|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|      2|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  602|      2|	g_return_val_if_fail(FU_IS_FIRMWARE(self), 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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  603|      2|	if (priv->bytes != NULL)
  ------------------
  |  Branch (603:6): [True: 2, False: 0]
  ------------------
  604|      2|		return g_bytes_ref(priv->bytes);
  605|      0|	if (priv->stream != NULL) {
  ------------------
  |  Branch (605:6): [True: 0, False: 0]
  ------------------
  606|      0|		if (priv->streamsz == 0) {
  ------------------
  |  Branch (606:7): [True: 0, False: 0]
  ------------------
  607|      0|			g_set_error_literal(error,
  608|      0|					    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  609|      0|					    FWUPD_ERROR_INVALID_DATA,
  610|      0|					    "stream size unknown");
  611|      0|			return NULL;
  612|      0|		}
  613|      0|		return fu_input_stream_read_bytes(priv->stream, 0x0, priv->streamsz, NULL, error);
  614|      0|	}
  615|      0|	g_set_error_literal(error, FWUPD_ERROR, FWUPD_ERROR_NOT_FOUND, "no payload set");
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  616|       |	return NULL;
  617|      0|}
fu_firmware_get_bytes_with_patches:
  632|      2|{
  633|      2|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|      2|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  634|      2|	g_autoptr(GByteArray) buf = g_byte_array_new();
  ------------------
  |  | 1381|      2|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      2|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  635|       |
  636|      2|	g_return_val_if_fail(FU_IS_FIRMWARE(self), 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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  637|       |
  638|      2|	if (priv->bytes == NULL) {
  ------------------
  |  Branch (638:6): [True: 0, False: 2]
  ------------------
  639|      0|		if (priv->stream != NULL)
  ------------------
  |  Branch (639:7): [True: 0, False: 0]
  ------------------
  640|      0|			return fu_firmware_get_bytes(self, error);
  641|      0|		g_set_error_literal(error, FWUPD_ERROR, FWUPD_ERROR_NOT_FOUND, "no payload set");
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  642|      0|		return NULL;
  643|      0|	}
  644|       |
  645|       |	/* usual case */
  646|      2|	if (priv->patches == NULL)
  ------------------
  |  Branch (646:6): [True: 2, False: 0]
  ------------------
  647|      2|		return fu_firmware_get_bytes(self, error);
  648|       |
  649|       |	/* convert to a mutable buffer, apply each patch, aborting if the offset isn't valid */
  650|      0|	fu_byte_array_append_bytes(buf, priv->bytes);
  651|      0|	for (guint i = 0; i < priv->patches->len; i++) {
  ------------------
  |  Branch (651:20): [True: 0, False: 0]
  ------------------
  652|      0|		FuFirmwarePatch *ptch = g_ptr_array_index(priv->patches, i);
  ------------------
  |  |  149|      0|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  653|      0|		if (!fu_memcpy_safe(buf->data,
  ------------------
  |  Branch (653:7): [True: 0, False: 0]
  ------------------
  654|      0|				    buf->len,
  655|      0|				    ptch->offset, /* dst */
  656|      0|				    g_bytes_get_data(ptch->blob, NULL),
  657|      0|				    g_bytes_get_size(ptch->blob),
  658|      0|				    0x0, /* src */
  659|      0|				    g_bytes_get_size(ptch->blob),
  660|      0|				    error)) {
  661|      0|			g_prefix_error(error, "failed to apply patch @0x%x: ", (guint)ptch->offset);
  662|      0|			return NULL;
  663|      0|		}
  664|      0|	}
  665|       |
  666|       |	/* success */
  667|      0|	return g_bytes_new(buf->data, buf->len);
  668|      0|}
fu_firmware_add_magic:
  839|     20|{
  840|     20|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     20|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  841|     20|	g_autofree FuFirmwarePatch *patch = g_new0(FuFirmwarePatch, 1);
  ------------------
  |  | 1386|     20|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|     20|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
              	g_autofree FuFirmwarePatch *patch = g_new0(FuFirmwarePatch, 1);
  ------------------
  |  |  332|     20|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     20|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     20|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     20|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     20|	  gpointer __p;						\
  |  |  |  |  264|     20|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 20]
  |  |  |  |  ------------------
  |  |  |  |  265|     20|	    __p = g_##func (__n);				\
  |  |  |  |  266|     20|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     20|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     20|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     20|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 20]
  |  |  |  |  |  Branch (267:26): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     20|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     20|	  else							\
  |  |  |  |  270|     20|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     20|	  __p;							\
  |  |  |  |  272|     20|	}))
  |  |  ------------------
  ------------------
  842|       |
  843|     20|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|     20|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     20|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     20|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     20|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     20|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     20| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     20|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     20|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 20, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     20|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     20|   else                                         \
  |  |  |  |  |  |  |  | 1240|     20|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     20|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     20|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     20|      { } \
  |  |  653|     20|    else \
  |  |  654|     20|      { \
  |  |  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|     20|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     20|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  844|     20|	g_return_if_fail(buf != NULL);
  ------------------
  |  |  650|     20|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     20|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     20|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     20|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     20|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     20| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     20|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     20|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 20, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     20|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     20|   else                                         \
  |  |  |  |  |  |  |  | 1240|     20|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     20|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     20|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     20|      { } \
  |  |  653|     20|    else \
  |  |  654|     20|      { \
  |  |  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|     20|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     20|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  845|     20|	g_return_if_fail(bufsz != 0);
  ------------------
  |  |  650|     20|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     20|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     20|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     20|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     20|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     20| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     20|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     20|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 20, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     20|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     20|   else                                         \
  |  |  |  |  |  |  |  | 1240|     20|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     20|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     20|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     20|      { } \
  |  |  653|     20|    else \
  |  |  654|     20|      { \
  |  |  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|     20|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     20|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  846|       |
  847|     20|	if (priv->magic == NULL)
  ------------------
  |  Branch (847:6): [True: 20, False: 0]
  ------------------
  848|     20|		priv->magic =
  849|     20|		    g_ptr_array_new_with_free_func((GDestroyNotify)fu_firmware_patch_free);
  850|     20|	patch->blob = g_bytes_new(buf, bufsz);
  851|     20|	patch->offset = offset;
  852|     20|	g_ptr_array_add(priv->magic, g_steal_pointer(&patch));
  ------------------
  |  |  247|     20|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  853|     20|}
fu_firmware_parse_stream:
 1095|     91|{
 1096|     91|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1097|     91|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     91|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1098|     91|	gsize streamsz = 0;
 1099|     91|	g_autoptr(FuInputStream) partial_stream = NULL;
  ------------------
  |  | 1381|     91|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     91|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1100|     91|	g_autoptr(FuInputStream) seekable_stream = NULL;
  ------------------
  |  | 1381|     91|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     91|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1101|     91|	g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|     91|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     91|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1102|       |
 1103|     91|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1104|     91|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1105|     91|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    182|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1106|       |
 1107|       |	/* sanity check */
 1108|     91|	if (fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_DONE_PARSE)) {
  ------------------
  |  Branch (1108:6): [True: 0, False: 91]
  ------------------
 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|     91|	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|    182|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|     91|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|     91|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|     91|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|     91|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 91]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|     91|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|     91|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 91, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 91]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|     91|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|     91|  else \
  |  |  |  |  |  | 2678|     91|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|     91|  __r; \
  |  |  |  |  |  | 2680|     91|}))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|     91|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|     91|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     91|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1117:6): [True: 0, False: 91]
  |  Branch (1117:32): [True: 0, False: 91]
  ------------------
 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|     91|	} else {
 1127|     91|		seekable_stream = g_object_ref(stream);
  ------------------
  |  |  533|     91|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 1128|     91|	}
 1129|       |
 1130|       |	/* check size */
 1131|     91|	if (!fu_input_stream_size(seekable_stream, &streamsz, error))
  ------------------
  |  Branch (1131:6): [True: 0, False: 91]
  ------------------
 1132|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1133|     91|	if (streamsz <= offset) {
  ------------------
  |  Branch (1133:6): [True: 0, False: 91]
  ------------------
 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|     91|	if (!fu_firmware_validate_for_offset(self, seekable_stream, offset, &offset, flags, error))
  ------------------
  |  Branch (1144:6): [True: 7, False: 84]
  ------------------
 1145|      7|		return FALSE;
  ------------------
  |  |  925|      7|#define	FALSE	(0)
  ------------------
 1146|     84|	fu_firmware_set_offset(self, offset);
 1147|       |
 1148|       |	/* validate offset hasn't been corrupted */
 1149|     84|	if (offset >= streamsz) {
  ------------------
  |  Branch (1149:6): [True: 0, False: 84]
  ------------------
 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|     84|	priv->streamsz = streamsz - offset;
 1161|     84|	if (priv->streamsz == 0) {
  ------------------
  |  Branch (1161:6): [True: 0, False: 84]
  ------------------
 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|     84|	{
 1169|     84|		FuFirmwareClassPrivate *cpriv =
 1170|     84|		    fu_firmware_get_class_private(FU_FIRMWARE_GET_CLASS(self));
 1171|     84|		if (cpriv->size_max > 0 && priv->streamsz > cpriv->size_max) {
  ------------------
  |  Branch (1171:7): [True: 84, False: 0]
  |  Branch (1171:30): [True: 0, False: 84]
  ------------------
 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|     84|#ifndef SUPPORTED_BUILD
 1185|       |		/* we want all firmware subclasses to set this now */
 1186|     84|		if (G_OBJECT_TYPE(self) != FU_TYPE_FIRMWARE &&
  ------------------
  |  |   98|     84|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  ------------------
  |  |  |  |  646|     84|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  ------------------
  |  |  |  |  |  |  657|     84|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              		if (G_OBJECT_TYPE(self) != FU_TYPE_FIRMWARE &&
  ------------------
  |  |   18|    168|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
  |  Branch (1186:7): [True: 82, False: 2]
  ------------------
 1187|     82|		    cpriv->size_max == FU_FIRMWARE_SIZE_MAX_DEFAULT) {
  ------------------
  |  |   13|     82|#define FU_FIRMWARE_SIZE_MAX_DEFAULT ((100 * FU_MB) + 1)
  |  |  ------------------
  |  |  |  |   81|     82|#define FU_MB (1ull << 20)
  |  |  ------------------
  ------------------
  |  Branch (1187:7): [True: 0, False: 82]
  ------------------
 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|     84|#endif
 1195|     84|	}
 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|     84|	if (klass->check_compatible != NULL)
  ------------------
  |  Branch (1202:6): [True: 0, False: 84]
  ------------------
 1203|      0|		fu_firmware_add_flag(self, FU_FIRMWARE_FLAG_HAS_CHECK_COMPATIBLE);
 1204|       |
 1205|       |	/* save stream */
 1206|     84|	if (offset == 0) {
  ------------------
  |  Branch (1206:6): [True: 78, False: 6]
  ------------------
 1207|     78|		partial_stream = g_object_ref(seekable_stream);
  ------------------
  |  |  533|     78|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 1208|     78|	} else {
 1209|      6|		partial_stream =
 1210|      6|		    fu_partial_input_stream_new(seekable_stream, offset, priv->streamsz, error);
 1211|      6|		if (partial_stream == NULL) {
  ------------------
  |  Branch (1211:7): [True: 0, False: 6]
  ------------------
 1212|      0|			g_prefix_error_literal(error, "failed to cut firmware: ");
 1213|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1214|      0|		}
 1215|      6|	}
 1216|       |
 1217|       |	/* cache */
 1218|     84|	if (flags & FU_FIRMWARE_PARSE_FLAG_CACHE_BLOB) {
  ------------------
  |  Branch (1218:6): [True: 84, False: 0]
  ------------------
 1219|     84|		if (blob == NULL) {
  ------------------
  |  Branch (1219:7): [True: 84, False: 0]
  ------------------
 1220|     84|			blob = fu_input_stream_read_bytes(partial_stream,
 1221|     84|							  0x0,
 1222|     84|							  priv->streamsz,
 1223|     84|							  NULL,
 1224|     84|							  error);
 1225|     84|			if (blob == NULL)
  ------------------
  |  Branch (1225:8): [True: 0, False: 84]
  ------------------
 1226|      0|				return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1227|     84|		}
 1228|     84|		fu_firmware_set_bytes(self, blob);
 1229|     84|	}
 1230|     84|	if (flags & FU_FIRMWARE_PARSE_FLAG_CACHE_STREAM)
  ------------------
  |  Branch (1230:6): [True: 0, False: 84]
  ------------------
 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|     84|  GOBJECT_AVAILABLE_MACRO_IN_2_44
  ------------------
 1232|       |
 1233|       |	/* optional */
 1234|     84|	if (klass->tokenize != NULL) {
  ------------------
  |  Branch (1234:6): [True: 0, False: 84]
  ------------------
 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|     84|	if (klass->parse_full != NULL)
  ------------------
  |  Branch (1240:6): [True: 0, False: 84]
  ------------------
 1241|      0|		return klass->parse_full(self, seekable_stream, offset, flags, error);
 1242|     84|	if (klass->parse != NULL)
  ------------------
  |  Branch (1242:6): [True: 82, False: 2]
  ------------------
 1243|     82|		return klass->parse(self, partial_stream, flags, error);
 1244|       |
 1245|       |	/* verify alignment */
 1246|      2|	if (streamsz % (1ull << priv->alignment) != 0) {
  ------------------
  |  Branch (1246:6): [True: 0, False: 2]
  ------------------
 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|      2|	return TRUE;
  ------------------
  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1260|      2|}
fu_firmware_parse_bytes:
 1282|     71|{
 1283|     71|	g_autoptr(FuInputStream) stream = NULL;
  ------------------
  |  | 1381|     71|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     71|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1284|       |
 1285|     71|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|     71|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     71|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     71|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     71|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     71|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     71| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     71|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     71|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     71|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 71, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     71|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     71|   else                                         \
  |  |  |  |  |  |  |  | 1240|     71|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     71|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     71|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 71, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     71|      { } \
  |  |  666|     71|    else \
  |  |  667|     71|      { \
  |  |  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|     71|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     71|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 71]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1286|     71|	g_return_val_if_fail(fw != NULL, FALSE);
  ------------------
  |  |  663|     71|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     71|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     71|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     71|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     71|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     71| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     71|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     71|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     71|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 71, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     71|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     71|   else                                         \
  |  |  |  |  |  |  |  | 1240|     71|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     71|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     71|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 71, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     71|      { } \
  |  |  666|     71|    else \
  |  |  667|     71|      { \
  |  |  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|     71|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     71|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 71]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1287|     71|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     71|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     71|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     71|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     71|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     71|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     71| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     71|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     71|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    142|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 71, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     71|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     71|   else                                         \
  |  |  |  |  |  |  |  | 1240|     71|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     71|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     71|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     71|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     71|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 71, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     71|      { } \
  |  |  666|     71|    else \
  |  |  667|     71|      { \
  |  |  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|     71|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     71|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 71]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1288|       |
 1289|     71|	stream = fu_memory_input_stream_new_from_bytes(fw);
 1290|     71|	return fu_firmware_parse_stream(self, stream, offset, flags, error);
 1291|     71|}
fu_firmware_write_array:
 1666|      4|{
 1667|      4|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1668|      4|	g_autoptr(GBytes) blob = NULL;
  ------------------
  |  | 1381|      4|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      4|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 1669|       |
 1670|      4|	g_return_val_if_fail(FU_IS_FIRMWARE(self), NULL);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |    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|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1671|      4|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  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|      8|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, 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, \
  |  |  ------------------
  |  |  |  |    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|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1672|       |
 1673|       |	/* subclassed */
 1674|      4|	if (klass->write != NULL)
  ------------------
  |  Branch (1674:6): [True: 2, False: 2]
  ------------------
 1675|      2|		return klass->write(self, error);
 1676|       |
 1677|       |	/* just add default blob */
 1678|      2|	blob = fu_firmware_get_bytes_with_patches(self, error);
 1679|      2|	if (blob == NULL)
  ------------------
  |  Branch (1679:6): [True: 0, False: 2]
  ------------------
 1680|      0|		return NULL;
 1681|      2|	return g_bytes_unref_to_array(g_steal_pointer(&blob));
  ------------------
  |  |  247|      2|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 1682|      2|}
fu_firmware_add_image_gtype:
 1904|      2|{
 1905|      2|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(klass);
 1906|       |
 1907|      2|	g_return_if_fail(FU_IS_FIRMWARE_CLASS(klass));
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1908|      2|	g_return_if_fail(type != G_TYPE_INVALID);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1909|      2|	g_return_if_fail(cpriv->image_gtypes_cnt < FU_FIRMWARE_IMAGE_GTYPES_MAX);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1910|       |
 1911|      2|	g_type_ensure(type);
 1912|      2|	cpriv->image_gtypes[cpriv->image_gtypes_cnt++] = type;
 1913|      2|}
fu_firmware_add_image:
 1987|     60|{
 1988|     60|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     60|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1989|       |
 1990|     60|	g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE);
  ------------------
  |  |  663|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     60|      { } \
  |  |  666|     60|    else \
  |  |  667|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1991|     60|	g_return_val_if_fail(FU_IS_FIRMWARE(img), FALSE);
  ------------------
  |  |  663|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     60|      { } \
  |  |  666|     60|    else \
  |  |  667|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1992|     60|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    120|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     60|      { } \
  |  |  666|     60|    else \
  |  |  667|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1993|       |
 1994|       |	/* check depth */
 1995|     60|	if (priv->depth > FU_FIRMWARE_IMAGE_DEPTH_MAX) {
  ------------------
  |  |   82|     60|#define FU_FIRMWARE_IMAGE_DEPTH_MAX 50
  ------------------
  |  Branch (1995:6): [True: 0, False: 60]
  ------------------
 1996|      0|		g_set_error(error,
 1997|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1998|      0|			    FWUPD_ERROR_INVALID_DATA,
 1999|      0|			    "images are nested too deep, limit is %u",
 2000|      0|			    (guint)FU_FIRMWARE_IMAGE_DEPTH_MAX);
  ------------------
  |  |   82|      0|#define FU_FIRMWARE_IMAGE_DEPTH_MAX 50
  ------------------
 2001|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2002|      0|	}
 2003|       |
 2004|       |	/* check image is a permissible GType */
 2005|     60|	if (!fu_firmware_check_image_gtype(self, G_OBJECT_TYPE(img), error))
  ------------------
  |  |   98|     60|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  ------------------
  |  |  |  |  646|     60|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  ------------------
  |  |  |  |  |  |  657|     60|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2005:6): [True: 0, False: 60]
  ------------------
 2006|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2007|       |
 2008|       |	/* dedupe */
 2009|     60|	if (priv->flags & FU_FIRMWARE_FLAG_DEDUPE_ID) {
  ------------------
  |  Branch (2009:6): [True: 0, False: 60]
  ------------------
 2010|      0|		for (guint i = 0; i < priv->images->len; i++) {
  ------------------
  |  Branch (2010:21): [True: 0, False: 0]
  ------------------
 2011|      0|			FuFirmware *img_tmp = g_ptr_array_index(priv->images, i);
  ------------------
  |  |  149|      0|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
 2012|      0|			if (g_strcmp0(fu_firmware_get_id(img_tmp), fu_firmware_get_id(img)) == 0) {
  ------------------
  |  Branch (2012:8): [True: 0, False: 0]
  ------------------
 2013|      0|				g_ptr_array_remove_index(priv->images, i);
 2014|      0|				break;
 2015|      0|			}
 2016|      0|		}
 2017|      0|	}
 2018|     60|	if (priv->flags & FU_FIRMWARE_FLAG_DEDUPE_IDX) {
  ------------------
  |  Branch (2018:6): [True: 0, False: 60]
  ------------------
 2019|      0|		for (guint i = 0; i < priv->images->len; i++) {
  ------------------
  |  Branch (2019:21): [True: 0, False: 0]
  ------------------
 2020|      0|			FuFirmware *img_tmp = g_ptr_array_index(priv->images, i);
  ------------------
  |  |  149|      0|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
 2021|      0|			if (fu_firmware_get_idx(img_tmp) == fu_firmware_get_idx(img)) {
  ------------------
  |  Branch (2021:8): [True: 0, False: 0]
  ------------------
 2022|      0|				g_ptr_array_remove_index(priv->images, i);
 2023|      0|				break;
 2024|      0|			}
 2025|      0|		}
 2026|      0|	}
 2027|       |
 2028|       |	/* sanity check */
 2029|     60|	{
 2030|     60|		FuFirmwareClassPrivate *cpriv =
 2031|     60|		    fu_firmware_get_class_private(FU_FIRMWARE_GET_CLASS(self));
 2032|     60|		if (cpriv->images_max > 0 && priv->images->len >= cpriv->images_max) {
  ------------------
  |  Branch (2032:7): [True: 60, False: 0]
  |  Branch (2032:32): [True: 0, False: 60]
  ------------------
 2033|      0|			g_set_error(error,
 2034|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 2035|      0|				    FWUPD_ERROR_INVALID_DATA,
 2036|      0|				    "too many images, limit is %u",
 2037|      0|				    cpriv->images_max);
 2038|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2039|      0|		}
 2040|     60|	}
 2041|       |
 2042|     60|	g_ptr_array_add(priv->images, g_object_ref(img));
  ------------------
  |  |  533|     60|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 2043|       |
 2044|       |	/* set the other way around */
 2045|     60|	fu_firmware_set_parent(img, self);
 2046|     60|	fu_firmware_set_depth(img, priv->depth + 1);
 2047|       |
 2048|       |	/* success */
 2049|     60|	return TRUE;
  ------------------
  |  |  929|     60|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     60|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2050|     60|}
fu_firmware_set_images_max:
 2063|      1|{
 2064|      1|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(klass);
 2065|      1|	cpriv->images_max = images_max;
 2066|      1|}
fu_firmware_get_images:
 2188|      2|{
 2189|      2|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|      2|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 2190|      2|	g_autoptr(GPtrArray) imgs = NULL;
  ------------------
  |  | 1381|      2|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      2|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 2191|       |
 2192|      2|	g_return_val_if_fail(FU_IS_FIRMWARE(self), 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, \
  |  |  ------------------
  |  |  |  |    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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2193|       |
 2194|      2|	imgs = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref);
 2195|      4|	for (guint i = 0; i < priv->images->len; i++) {
  ------------------
  |  Branch (2195:20): [True: 2, False: 2]
  ------------------
 2196|      2|		FuFirmware *img = g_ptr_array_index(priv->images, i);
  ------------------
  |  |  149|      2|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
 2197|      2|		g_ptr_array_add(imgs, g_object_ref(img));
  ------------------
  |  |  533|      2|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
 2198|      2|	}
 2199|      2|	return g_steal_pointer(&imgs);
  ------------------
  |  |  247|      2|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 2200|      2|}
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|     91|{
 2778|     91|	FuFirmware *self = FU_FIRMWARE(object);
 2779|     91|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     91|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 2780|     91|	g_free(priv->version);
 2781|     91|	g_free(priv->id);
 2782|     91|	g_free(priv->filename);
 2783|     91|	if (priv->bytes != NULL)
  ------------------
  |  Branch (2783:6): [True: 84, False: 7]
  ------------------
 2784|     84|		g_bytes_unref(priv->bytes);
 2785|     91|	if (priv->stream != NULL)
  ------------------
  |  Branch (2785:6): [True: 0, False: 91]
  ------------------
 2786|      0|		g_object_unref(priv->stream);
 2787|     91|	if (priv->chunks != NULL)
  ------------------
  |  Branch (2787:6): [True: 0, False: 91]
  ------------------
 2788|      0|		g_ptr_array_unref(priv->chunks);
 2789|     91|	if (priv->patches != NULL)
  ------------------
  |  Branch (2789:6): [True: 0, False: 91]
  ------------------
 2790|      0|		g_ptr_array_unref(priv->patches);
 2791|     91|	if (priv->magic != NULL)
  ------------------
  |  Branch (2791:6): [True: 20, False: 71]
  ------------------
 2792|     20|		g_ptr_array_unref(priv->magic);
 2793|     91|	if (priv->parent != NULL)
  ------------------
  |  Branch (2793:6): [True: 0, False: 91]
  ------------------
 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|     91|	g_ptr_array_unref(priv->images);
 2796|     91|	G_OBJECT_CLASS(fu_firmware_parent_class)->finalize(object);
  ------------------
  |  |   61|     91|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|     91|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|     91|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2797|     91|}
fu-firmware.c:fu_firmware_set_property:
 2741|     91|{
 2742|     91|	FuFirmware *self = FU_FIRMWARE(object);
 2743|     91|	switch (prop_id) {
 2744|     91|	case PROP_PARENT:
  ------------------
  |  Branch (2744:2): [True: 91, False: 0]
  ------------------
 2745|     91|		fu_firmware_set_parent(self, g_value_get_object(value));
 2746|     91|		break;
 2747|      0|	default:
  ------------------
  |  Branch (2747:2): [True: 0, False: 91]
  ------------------
 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|     91|	}
 2751|     91|}
fu-firmware.c:fu_firmware_constructed:
 2762|     91|{
 2763|     91|	FuFirmware *self = FU_FIRMWARE(obj);
 2764|     91|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 2765|     91|	if (klass->add_magic != NULL)
  ------------------
  |  Branch (2765:6): [True: 20, False: 71]
  ------------------
 2766|     20|		klass->add_magic(self);
 2767|     91|	if (G_TYPE_FROM_CLASS(klass) != FU_TYPE_FIRMWARE && klass->parse_full == NULL &&
  ------------------
  |  |  657|     91|#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|    182|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
  |  Branch (2767:6): [True: 89, False: 2]
  |  Branch (2767:54): [True: 89, False: 0]
  ------------------
 2768|     89|	    klass->parse == NULL)
  ------------------
  |  Branch (2768:6): [True: 0, False: 89]
  ------------------
 2769|      0|		fu_firmware_add_flag(self, FU_FIRMWARE_FLAG_IS_ABSTRACT);
 2770|       |
 2771|       |	/* chain up to parent */
 2772|     91|	G_OBJECT_CLASS(fu_firmware_parent_class)->constructed(obj);
  ------------------
  |  |   61|     91|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|     91|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|     91|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2773|     91|}
fu-firmware.c:fu_firmware_init:
 2755|     91|{
 2756|     91|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     91|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 2757|     91|	priv->images = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref);
 2758|     91|}
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|     20|{
 3071|     20|	FuFirmware *self = FU_FIRMWARE(fuzzer);
 3072|     20|	g_autoptr(GByteArray) buf_out = NULL;
  ------------------
  |  | 1381|     20|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     20|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 3073|     20|	g_autoptr(FuInputStream) stream = NULL;
  ------------------
  |  | 1381|     20|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     20|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
 3074|       |
 3075|     20|	stream = fu_memory_input_stream_new_from_data(buf->data, buf->len, NULL);
 3076|     20|	if (!fu_firmware_parse_stream(
  ------------------
  |  Branch (3076:6): [True: 18, False: 2]
  ------------------
 3077|     20|		self,
 3078|     20|		stream,
 3079|     20|		0x0,
 3080|     20|		FU_FIRMWARE_PARSE_FLAG_NO_SEARCH | FU_FIRMWARE_PARSE_FLAG_CACHE_BLOB |
 3081|     20|		    FU_FIRMWARE_PARSE_FLAG_IGNORE_VID_PID | FU_FIRMWARE_PARSE_FLAG_IGNORE_CHECKSUM,
 3082|     20|		error))
 3083|     18|		return FALSE;
  ------------------
  |  |  925|     18|#define	FALSE	(0)
  ------------------
 3084|      2|	buf_out = fu_firmware_write_array(self, error);
 3085|      2|	if (buf_out == NULL)
  ------------------
  |  Branch (3085:6): [True: 0, False: 2]
  ------------------
 3086|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3087|       |
 3088|       |	/* success */
 3089|      2|	return TRUE;
  ------------------
  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3090|      2|}
fu-firmware.c:fu_firmware_get_class_private:
   76|    210|{
   77|    210|	return G_TYPE_CLASS_GET_PRIVATE(klass, FU_TYPE_FIRMWARE, FuFirmwareClassPrivate);
  ------------------
  |  |  706|    210|#define G_TYPE_CLASS_GET_PRIVATE(klass, g_type, c_type)   ((c_type*) g_type_class_get_private ((GTypeClass*) (klass), (g_type)))
  ------------------
   78|    210|}
fu-firmware.c:fu_firmware_patch_free:
   91|     20|{
   92|     20|	g_bytes_unref(ptch->blob);
   93|     20|	g_free(ptch);
   94|     20|}
fu-firmware.c:fu_firmware_validate_for_offset:
 1040|     91|{
 1041|     91|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
 1042|     91|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     91|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1043|     91|	gsize streamsz = 0;
 1044|       |
 1045|       |	/* not implemented */
 1046|     91|	if (klass->validate == NULL)
  ------------------
  |  Branch (1046:6): [True: 71, False: 20]
  ------------------
 1047|     71|		return TRUE;
  ------------------
  |  |  929|     71|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     71|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1048|       |
 1049|       |	/* fuzzing */
 1050|     20|	if (!fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_ALWAYS_SEARCH) &&
  ------------------
  |  Branch (1050:6): [True: 0, False: 20]
  ------------------
 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|     20|	if (priv->magic != NULL)
  ------------------
  |  Branch (1056:6): [True: 20, False: 0]
  ------------------
 1057|     20|		return fu_firmware_validate_with_magic(self, stream, offset, offset_found, error);
 1058|       |
 1059|       |	/* limit the size of firmware we search as brute force is expensive */
 1060|      0|	if (!fu_input_stream_size(stream, &streamsz, error))
  ------------------
  |  Branch (1060:6): [True: 0, False: 0]
  ------------------
 1061|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1062|      0|	if (streamsz < FU_FIRMWARE_SEARCH_MAGIC_BUFSZ_MAX) {
  ------------------
  |  |   84|      0|#define FU_FIRMWARE_SEARCH_MAGIC_BUFSZ_MAX (64 * FU_KB)
  |  |  ------------------
  |  |  |  |   72|      0|#define FU_KB (1ull << 10)
  |  |  ------------------
  ------------------
  |  Branch (1062:6): [True: 0, False: 0]
  ------------------
 1063|      0|		for (gsize offset_tmp = offset; offset_tmp < streamsz; offset_tmp++) {
  ------------------
  |  Branch (1063:35): [True: 0, False: 0]
  ------------------
 1064|      0|			if (klass->validate(self, stream, offset_tmp, NULL)) {
  ------------------
  |  Branch (1064:8): [True: 0, False: 0]
  ------------------
 1065|      0|				*offset_found = offset_tmp;
 1066|      0|				return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1067|      0|			}
 1068|      0|		}
 1069|      0|	}
 1070|       |
 1071|       |	/* check in more detail */
 1072|      0|	return klass->validate(self, stream, offset, error);
 1073|      0|}
fu-firmware.c:fu_firmware_validate_with_magic:
  982|     20|{
  983|     20|	FuFirmwareClass *klass = FU_FIRMWARE_GET_CLASS(self);
  984|     20|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     20|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
  985|     20|	gsize offset_lowest = G_MAXSIZE;
  ------------------
  |  |   89|     20|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|     20|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  986|       |
  987|     40|	for (guint i = 0; i < priv->magic->len; i++) {
  ------------------
  |  Branch (987:20): [True: 20, False: 20]
  ------------------
  988|     20|		FuFirmwarePatch *patch = g_ptr_array_index(priv->magic, i);
  ------------------
  |  |  149|     20|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  989|     20|		gsize offset_tmp = 0;
  990|     20|		g_autoptr(GError) error_local = NULL;
  ------------------
  |  | 1381|     20|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     20|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  991|       |
  992|     20|		g_debug("searching for 0x%zx bytes of magic", g_bytes_get_size(patch->blob));
  ------------------
  |  |  368|     20|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|     20|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|     20|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|     20|                               __VA_ARGS__)
  ------------------
  993|     20|		if (!fu_input_stream_find(stream,
  ------------------
  |  Branch (993:7): [True: 7, False: 13]
  ------------------
  994|     20|					  g_bytes_get_data(patch->blob, NULL),
  995|     20|					  g_bytes_get_size(patch->blob),
  996|     20|					  offset,
  997|     20|					  &offset_tmp,
  998|     20|					  &error_local)) {
  999|      7|			g_debug("ignoring: %s", error_local->message);
  ------------------
  |  |  368|      7|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      7|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|      7|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      7|                               __VA_ARGS__)
  ------------------
 1000|      7|			continue;
 1001|      7|		}
 1002|       |
 1003|       |		/* ensure magic found at or after expected offset */
 1004|     13|		if (offset_tmp < patch->offset) {
  ------------------
  |  Branch (1004:7): [True: 0, False: 13]
  ------------------
 1005|      0|			g_debug("magic at 0x%zx but expected >= 0x%zx", offset_tmp, patch->offset);
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
 1006|      0|			continue;
 1007|      0|		}
 1008|     13|		offset_tmp -= patch->offset;
 1009|     13|		g_debug("found magic at 0x%zx", offset_tmp);
  ------------------
  |  |  368|     13|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|     13|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|     13|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|     13|                               __VA_ARGS__)
  ------------------
 1010|     13|		if (!klass->validate(self, stream, offset_tmp, &error_local)) {
  ------------------
  |  Branch (1010:7): [True: 0, False: 13]
  ------------------
 1011|      0|			g_debug("ignoring: %s", error_local->message);
  ------------------
  |  |  368|      0|#define g_debug(...)    g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  369|      0|                               G_LOG_LEVEL_DEBUG,    \
  |  |  370|      0|                               __VA_ARGS__)
  ------------------
 1012|      0|			continue;
 1013|      0|		}
 1014|       |
 1015|       |		/* any better? */
 1016|     13|		if (offset_tmp < offset_lowest)
  ------------------
  |  Branch (1016:7): [True: 13, False: 0]
  ------------------
 1017|     13|			offset_lowest = offset_tmp;
 1018|     13|	}
 1019|     20|	if (offset_lowest == G_MAXSIZE) {
  ------------------
  |  |   89|     20|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|     20|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  |  Branch (1019:6): [True: 7, False: 13]
  ------------------
 1020|      7|		g_set_error_literal(error,
 1021|      7|				    FWUPD_ERROR,
  ------------------
  |  |   15|      7|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1022|      7|				    FWUPD_ERROR_INVALID_FILE,
 1023|      7|				    "failed to find magic bytes");
 1024|      7|		return FALSE;
  ------------------
  |  |  925|      7|#define	FALSE	(0)
  ------------------
 1025|      7|	}
 1026|       |
 1027|       |	/* success */
 1028|     13|	if (offset_found != NULL)
  ------------------
  |  Branch (1028:6): [True: 13, False: 0]
  ------------------
 1029|     13|		*offset_found = offset_lowest;
 1030|     13|	return TRUE;
  ------------------
  |  |  929|     13|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     13|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1031|     20|}
fu-firmware.c:fu_firmware_check_image_gtype:
 1941|     60|{
 1942|     60|	FuFirmwareClassPrivate *cpriv = fu_firmware_get_class_private(FU_FIRMWARE_GET_CLASS(self));
 1943|       |
 1944|       |	/* certain GTypes can opt-out of this check */
 1945|     60|	if (fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_NO_IMAGE_TYPE_CHECK))
  ------------------
  |  Branch (1945:6): [True: 0, False: 60]
  ------------------
 1946|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1947|       |
 1948|     60|	if (cpriv->image_gtypes_cnt == 0) {
  ------------------
  |  Branch (1948:6): [True: 0, False: 60]
  ------------------
 1949|      0|#ifndef SUPPORTED_BUILD
 1950|      0|		g_critical("%s did not add image GType %s with fu_firmware_add_image_gtype()",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuFirmware"
  |  |  ------------------
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 1951|      0|			   G_OBJECT_TYPE_NAME(self),
 1952|      0|			   g_type_name(gtype));
 1953|      0|#endif
 1954|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1955|      0|	}
 1956|     62|	for (guint i = 0; i < cpriv->image_gtypes_cnt; i++) {
  ------------------
  |  Branch (1956:20): [True: 62, False: 0]
  ------------------
 1957|     62|		if (cpriv->image_gtypes[i] == gtype)
  ------------------
  |  Branch (1957:7): [True: 60, False: 2]
  ------------------
 1958|     60|			return TRUE;
  ------------------
  |  |  929|     60|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     60|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1959|     62|	}
 1960|      0|	g_set_error(error,
 1961|      0|		    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1962|      0|		    FWUPD_ERROR_NOT_SUPPORTED,
 1963|      0|		    "cannot add %s to %s",
 1964|      0|		    g_type_name(gtype),
 1965|      0|		    G_OBJECT_TYPE_NAME(self));
  ------------------
  |  |  108|      0|#define G_OBJECT_TYPE_NAME(object)  (g_type_name (G_OBJECT_TYPE (object)))
  |  |  ------------------
  |  |  |  |   98|      0|#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
  |  |  |  |  ------------------
  |  |  |  |  |  |  646|      0|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  657|      0|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1966|      0|	return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1967|     60|}
fu-firmware.c:fu_firmware_set_depth:
 1869|     60|{
 1870|     60|	FuFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   72|     60|#define GET_PRIVATE(o) (fu_firmware_get_instance_private(o))
  ------------------
 1871|     60|	g_return_if_fail(FU_IS_FIRMWARE(self));
  ------------------
  |  |  650|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     60|      { } \
  |  |  653|     60|    else \
  |  |  654|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1872|     60|	priv->depth = depth;
 1873|     60|}

fu_fuzzer_test_input:
   32|     20|{
   33|     20|	FuFuzzerInterface *iface = FU_FUZZER_GET_IFACE(self);
   34|     20|	if (iface->test_input == NULL) {
  ------------------
  |  Branch (34:6): [True: 0, False: 20]
  ------------------
   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|     20|	return iface->test_input(self, buf, error);
   42|     20|}
fu-fuzzer.c:fu_fuzzer_default_init:
   15|      1|{
   16|      1|}

fu_input_stream_read:
  155|  2.77k|{
  156|  2.77k|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), -1);
  ------------------
  |  |  663|  2.77k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.77k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.77k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.77k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.77k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.77k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.77k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.77k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.77k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.77k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.77k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.77k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.77k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.77k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.77k|      G_PASTE (_g_boolean_var_, uniq) = 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.77k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.77k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.77k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.77k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.77k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.77k|      { } \
  |  |  666|  2.77k|    else \
  |  |  667|  2.77k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.77k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.77k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.77k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  157|  2.77k|	g_return_val_if_fail(buffer != NULL, -1);
  ------------------
  |  |  663|  2.77k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.77k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.77k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.77k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.77k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.77k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.77k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.77k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.77k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.77k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.77k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.77k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.77k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.77k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.77k|      G_PASTE (_g_boolean_var_, uniq) = 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.77k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.77k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.77k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.77k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.77k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.77k|      { } \
  |  |  666|  2.77k|    else \
  |  |  667|  2.77k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.77k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.77k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.77k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  158|  2.77k|	g_return_val_if_fail(error == NULL || *error == NULL, -1);
  ------------------
  |  |  663|  2.77k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.77k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.77k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.77k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.77k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.77k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.77k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.77k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  7.46k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 848, False: 1.92k]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.92k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.77k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.77k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.77k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.77k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.77k|      G_PASTE (_g_boolean_var_, uniq) = 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.77k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.77k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.77k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.77k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.77k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.77k|      { } \
  |  |  666|  2.77k|    else \
  |  |  667|  2.77k|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|  2.77k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.77k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.77k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  159|  2.77k|	return FU_INPUT_STREAM_GET_CLASS(stream)->read_fn(stream,
  160|  2.77k|							  buffer,
  161|  2.77k|							  count,
  162|  2.77k|							  cancellable,
  163|  2.77k|							  error);
  164|  2.77k|}
fu_input_stream_read_safe:
  277|    848|{
  278|    848|	gssize rc;
  279|       |
  280|    848|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|    848|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    848|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    848|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    848|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    848|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    848| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    848|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    848|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    848|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 848, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    848|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    848|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    848|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    848|   else                                         \
  |  |  |  |  |  |  |  | 1240|    848|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    848|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    848|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    848|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    848|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 848, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    848|      { } \
  |  |  666|    848|    else \
  |  |  667|    848|      { \
  |  |  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|    848|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    848|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 848]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  281|    848|	g_return_val_if_fail(buf != NULL, FALSE);
  ------------------
  |  |  663|    848|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    848|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    848|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    848|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    848|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    848| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    848|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    848|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    848|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 848, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    848|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    848|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    848|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    848|   else                                         \
  |  |  |  |  |  |  |  | 1240|    848|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    848|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    848|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    848|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    848|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 848, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    848|      { } \
  |  |  666|    848|    else \
  |  |  667|    848|      { \
  |  |  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|    848|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    848|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 848]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  282|    848|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    848|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    848|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    848|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    848|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    848|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    848| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    848|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    848|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.69k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 848, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    848|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    848|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    848|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    848|   else                                         \
  |  |  |  |  |  |  |  | 1240|    848|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    848|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    848|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    848|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    848|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 848, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    848|      { } \
  |  |  666|    848|    else \
  |  |  667|    848|      { \
  |  |  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|    848|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    848|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 848]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  283|       |
  284|    848|	if (!fu_memchk_write(bufsz, offset, count, error))
  ------------------
  |  Branch (284:6): [True: 0, False: 848]
  ------------------
  285|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  286|    848|	if (!g_seekable_seek(G_SEEKABLE(stream), seek_set, G_SEEK_SET, NULL, error)) {
  ------------------
  |  |   35|    848|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    848|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    848|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (286:6): [True: 0, False: 848]
  ------------------
  287|      0|		g_prefix_error(error, "seek to 0x%x: ", (guint)seek_set);
  288|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  289|      0|	}
  290|    848|	rc = fu_input_stream_read(stream, buf + offset, count, NULL, error);
  291|    848|	if (rc == -1) {
  ------------------
  |  Branch (291:6): [True: 0, False: 848]
  ------------------
  292|      0|		g_prefix_error(error, "failed read of 0x%x: ", (guint)count);
  293|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  294|      0|	}
  295|    848|	if ((gsize)rc != count) {
  ------------------
  |  Branch (295:6): [True: 0, False: 848]
  ------------------
  296|      0|		g_set_error(error,
  297|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  298|      0|			    FWUPD_ERROR_READ,
  299|      0|			    "requested 0x%x and got 0x%x",
  300|      0|			    (guint)count,
  301|      0|			    (guint)rc);
  302|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  303|      0|	}
  304|    848|	return TRUE;
  ------------------
  |  |  929|    848|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    848|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  305|    848|}
fu_input_stream_read_u8:
  322|    780|{
  323|    780|	guint8 buf = 0;
  324|    780|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|    780|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    780|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    780|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    780|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    780|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    780| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    780|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    780|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    780|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 780, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    780|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    780|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    780|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    780|   else                                         \
  |  |  |  |  |  |  |  | 1240|    780|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    780|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    780|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    780|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    780|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 780, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    780|      { } \
  |  |  666|    780|    else \
  |  |  667|    780|      { \
  |  |  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|    780|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    780|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 780]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  325|    780|	g_return_val_if_fail(value != NULL, FALSE);
  ------------------
  |  |  663|    780|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    780|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    780|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    780|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    780|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    780| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    780|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    780|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    780|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 780, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    780|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    780|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    780|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    780|   else                                         \
  |  |  |  |  |  |  |  | 1240|    780|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    780|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    780|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    780|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    780|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 780, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    780|      { } \
  |  |  666|    780|    else \
  |  |  667|    780|      { \
  |  |  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|    780|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    780|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 780]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  326|    780|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    780|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    780|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    780|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    780|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    780|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    780| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    780|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    780|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.56k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 780, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    780|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    780|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    780|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    780|   else                                         \
  |  |  |  |  |  |  |  | 1240|    780|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    780|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    780|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    780|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    780|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 780, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    780|      { } \
  |  |  666|    780|    else \
  |  |  667|    780|      { \
  |  |  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|    780|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    780|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 780]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  327|    780|	if (!fu_input_stream_read_safe(stream, &buf, sizeof(buf), 0x0, offset, sizeof(buf), error))
  ------------------
  |  Branch (327:6): [True: 0, False: 780]
  ------------------
  328|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  329|    780|	*value = buf;
  330|    780|	return TRUE;
  ------------------
  |  |  929|    780|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    780|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  331|    780|}
fu_input_stream_read_u32:
  415|     30|{
  416|     30|	guint8 buf[4] = {0};
  417|     30|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|     30|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     30|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     30|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 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:24): [True: 30, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     30|      { } \
  |  |  666|     30|    else \
  |  |  667|     30|      { \
  |  |  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|     30|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     30|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 30]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  418|     30|	g_return_val_if_fail(value != NULL, FALSE);
  ------------------
  |  |  663|     30|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     30|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     30|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 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:24): [True: 30, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     30|      { } \
  |  |  666|     30|    else \
  |  |  667|     30|      { \
  |  |  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|     30|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     30|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 30]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  419|     30|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     30|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     30|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     30|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 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|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 30, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, 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:24): [True: 30, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     30|      { } \
  |  |  666|     30|    else \
  |  |  667|     30|      { \
  |  |  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|     30|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     30|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 30]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  420|     30|	if (!fu_input_stream_read_safe(stream, buf, sizeof(buf), 0x0, offset, sizeof(buf), error))
  ------------------
  |  Branch (420:6): [True: 0, False: 30]
  ------------------
  421|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  422|     30|	*value = fu_memread_uint32(buf, endian);
  423|     30|	return TRUE;
  ------------------
  |  |  929|     30|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     30|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  424|     30|}
fu_input_stream_read_u64:
  446|     38|{
  447|     38|	guint8 buf[8] = {0};
  448|     38|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |    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|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  449|     38|	g_return_val_if_fail(value != NULL, FALSE);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |    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|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  450|     38|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  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|     76|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, 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, \
  |  |  ------------------
  |  |  |  |    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|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  451|     38|	if (!fu_input_stream_read_safe(stream, buf, sizeof(buf), 0x0, offset, sizeof(buf), error))
  ------------------
  |  Branch (451:6): [True: 0, False: 38]
  ------------------
  452|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  453|     38|	*value = fu_memread_uint64(buf, endian);
  454|     38|	return TRUE;
  ------------------
  |  |  929|     38|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     38|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  455|     38|}
fu_input_stream_read_byte_array:
  479|    297|{
  480|    297|	guint8 tmp[0x8000]; /* nocheck:zero-init */
  481|    297|	g_autoptr(GByteArray) buf = g_byte_array_new();
  ------------------
  |  | 1381|    297|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    297|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  482|    297|	g_autoptr(GError) error_local = NULL;
  ------------------
  |  | 1381|    297|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    297|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  483|       |
  484|    297|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|    297|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    297|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    297|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    297|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    297|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    297| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    297|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    297|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    297|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 297, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    297|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    297|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    297|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    297|   else                                         \
  |  |  |  |  |  |  |  | 1240|    297|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    297|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    297|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    297|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    297|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 297, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    297|      { } \
  |  |  666|    297|    else \
  |  |  667|    297|      { \
  |  |  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|    297|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    297|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 297]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  485|    297|	g_return_val_if_fail(progress == NULL || FU_IS_PROGRESS(progress), NULL);
  ------------------
  |  |  663|    297|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    297|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    297|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    297|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    297|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    297| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    297|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    297|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    594|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 297, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    297|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    297|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    297|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    297|   else                                         \
  |  |  |  |  |  |  |  | 1240|    297|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    297|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    297|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    297|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    297|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 297, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    297|      { } \
  |  |  666|    297|    else \
  |  |  667|    297|      { \
  |  |  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|    297|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    297|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 297]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  486|    297|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|    297|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    297|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    297|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    297|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    297|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    297| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    297|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    297|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    729|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 162, False: 135]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 135, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    297|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    297|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    297|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    297|   else                                         \
  |  |  |  |  |  |  |  | 1240|    297|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    297|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    297|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    297|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    297|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 297, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    297|      { } \
  |  |  666|    297|    else \
  |  |  667|    297|      { \
  |  |  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|    297|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    297|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 297]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  487|       |
  488|       |	/* this is invalid */
  489|    297|	if (count == 0) {
  ------------------
  |  Branch (489:6): [True: 1, False: 296]
  ------------------
  490|      1|		g_set_error_literal(error,
  491|      1|				    FWUPD_ERROR,
  ------------------
  |  |   15|      1|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  492|      1|				    FWUPD_ERROR_NOT_SUPPORTED,
  493|      1|				    "read size must be non-zero");
  494|      1|		return NULL;
  495|      1|	}
  496|       |
  497|       |	/* seek back to start */
  498|    296|	if (G_IS_SEEKABLE(stream) && g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|    592|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|    296|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|    296|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    296|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|    296|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|    296|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 296]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|    296|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|    296|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 296, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 296]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|    296|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|    296|  else \
  |  |  |  |  |  | 2678|    296|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|    296|  __r; \
  |  |  |  |  |  | 2680|    296|}))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (36:36): [True: 296, False: 0]
  |  |  ------------------
  ------------------
              	if (G_IS_SEEKABLE(stream) && g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|    296|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    296|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    296|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (498:31): [True: 296, False: 0]
  ------------------
  499|    296|		if (!g_seekable_seek(G_SEEKABLE(stream), offset, G_SEEK_SET, NULL, error))
  ------------------
  |  |   35|    296|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|    296|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|    296|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (499:7): [True: 0, False: 296]
  ------------------
  500|      0|			return NULL;
  501|    296|	}
  502|       |
  503|       |	/* read from stream in 32kB chunks */
  504|  1.92k|	while (TRUE) {
  ------------------
  |  |  929|  1.92k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.92k|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (929:14): [True: 1.92k, Folded]
  |  |  ------------------
  ------------------
  505|  1.92k|		gssize sz;
  506|  1.92k|		sz = fu_input_stream_read(stream,
  507|  1.92k|					  tmp,
  508|  1.92k|					  MIN(count - buf->len, sizeof(tmp)),
  ------------------
  |  |  936|  1.92k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 154, False: 1.77k]
  |  |  ------------------
  ------------------
  509|  1.92k|					  NULL,
  510|  1.92k|					  &error_local);
  511|  1.92k|		if (sz == 0)
  ------------------
  |  Branch (511:7): [True: 24, False: 1.90k]
  ------------------
  512|     24|			break;
  513|  1.90k|		if (sz < 0) {
  ------------------
  |  Branch (513:7): [True: 0, False: 1.90k]
  ------------------
  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|  1.90k|		if (progress != NULL)
  ------------------
  |  Branch (522:7): [True: 0, False: 1.90k]
  ------------------
  523|      0|			fu_progress_set_percentage_full(progress, buf->len, count);
  524|       |
  525|  1.90k|		g_byte_array_append(buf, tmp, sz);
  526|  1.90k|		if (buf->len >= count)
  ------------------
  |  Branch (526:7): [True: 272, False: 1.62k]
  ------------------
  527|    272|			break;
  528|  1.90k|	}
  529|       |
  530|       |	/* no data was read */
  531|    296|	if (buf->len == 0) {
  ------------------
  |  Branch (531:6): [True: 7, False: 289]
  ------------------
  532|      7|		g_set_error_literal(error,
  533|      7|				    FWUPD_ERROR,
  ------------------
  |  |   15|      7|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  534|      7|				    FWUPD_ERROR_INVALID_FILE,
  535|      7|				    "no data could be read");
  536|      7|		return NULL;
  537|      7|	}
  538|       |
  539|       |	/* success */
  540|    289|	return g_steal_pointer(&buf);
  ------------------
  |  |  247|    289|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  541|    296|}
fu_input_stream_read_bytes:
  565|    138|{
  566|    138|	g_autoptr(GByteArray) buf = NULL;
  ------------------
  |  | 1381|    138|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    138|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  567|    138|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|    138|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    138|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    138|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    138|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    138|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    138| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    138|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    138|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    138|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 138, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    138|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    138|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    138|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    138|   else                                         \
  |  |  |  |  |  |  |  | 1240|    138|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    138|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    138|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    138|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    138|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 138, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    138|      { } \
  |  |  666|    138|    else \
  |  |  667|    138|      { \
  |  |  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|    138|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    138|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 138]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  568|    138|	g_return_val_if_fail(progress == NULL || FU_IS_PROGRESS(progress), NULL);
  ------------------
  |  |  663|    138|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    138|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    138|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    138|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    138|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    138| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    138|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    138|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    276|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 138, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    138|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    138|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    138|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    138|   else                                         \
  |  |  |  |  |  |  |  | 1240|    138|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    138|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    138|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    138|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    138|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 138, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    138|      { } \
  |  |  666|    138|    else \
  |  |  667|    138|      { \
  |  |  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|    138|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    138|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 138]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  569|    138|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|    138|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    138|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    138|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    138|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    138|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    138| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    138|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    138|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    276|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 138, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    138|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    138|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    138|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    138|   else                                         \
  |  |  |  |  |  |  |  | 1240|    138|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    138|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    138|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    138|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    138|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 138, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    138|      { } \
  |  |  666|    138|    else \
  |  |  667|    138|      { \
  |  |  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|    138|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    138|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 138]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  570|    138|	buf = fu_input_stream_read_byte_array(stream, offset, count, progress, error);
  571|    138|	if (buf == NULL)
  ------------------
  |  Branch (571:6): [True: 1, False: 137]
  ------------------
  572|      1|		return NULL;
  573|    137|	return g_byte_array_free_to_bytes(g_steal_pointer(&buf));
  ------------------
  |  |  247|    137|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  574|    138|}
fu_input_stream_read_string:
  591|     11|{
  592|     11|	g_autoptr(GByteArray) buf = NULL;
  ------------------
  |  | 1381|     11|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     11|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  593|       |
  594|     11|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|     11|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     11|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     11|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     11|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     11|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     11| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     11|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     11|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     11|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 11, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     11|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     11|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     11|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     11|   else                                         \
  |  |  |  |  |  |  |  | 1240|     11|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     11|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     11|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     11|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     11|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 11, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     11|      { } \
  |  |  666|     11|    else \
  |  |  667|     11|      { \
  |  |  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|     11|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     11|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 11]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  595|     11|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|     11|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     11|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     11|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     11|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     11|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     11| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     11|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     11|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     22|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 11, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     11|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     11|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     11|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     11|   else                                         \
  |  |  |  |  |  |  |  | 1240|     11|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     11|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     11|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     11|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     11|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 11, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     11|      { } \
  |  |  666|     11|    else \
  |  |  667|     11|      { \
  |  |  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|     11|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     11|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 11]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  596|       |
  597|     11|	buf = fu_input_stream_read_byte_array(stream, offset, count, NULL, error);
  598|     11|	if (buf == NULL)
  ------------------
  |  Branch (598:6): [True: 0, False: 11]
  ------------------
  599|      0|		return NULL;
  600|     11|	if (!g_utf8_validate_len((const gchar *)buf->data, buf->len, NULL)) {
  ------------------
  |  Branch (600:6): [True: 0, False: 11]
  ------------------
  601|      0|		g_set_error_literal(error,
  602|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  603|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
  604|      0|				    "non UTF-8 string");
  605|      0|		return NULL;
  606|      0|	}
  607|     11|	return g_strndup((const gchar *)buf->data, buf->len);
  608|     11|}
fu_input_stream_size:
  626|     97|{
  627|     97|	goffset current;
  628|       |
  629|     97|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|     97|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     97|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     97|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     97|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     97|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     97| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     97|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     97|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     97|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 97, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     97|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     97|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     97|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     97|   else                                         \
  |  |  |  |  |  |  |  | 1240|     97|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     97|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     97|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     97|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     97|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 97, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     97|      { } \
  |  |  666|     97|    else \
  |  |  667|     97|      { \
  |  |  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|     97|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     97|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 97]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  630|     97|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     97|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     97|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     97|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     97|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     97|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     97| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     97|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     97|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    194|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 97, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     97|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     97|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     97|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     97|   else                                         \
  |  |  |  |  |  |  |  | 1240|     97|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     97|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     97|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     97|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     97|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 97, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     97|      { } \
  |  |  666|     97|    else \
  |  |  667|     97|      { \
  |  |  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|     97|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     97|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 97]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  631|       |
  632|       |	/* streaming from unseekable stream */
  633|     97|	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   36|    194|#define G_IS_SEEKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE))
  |  |  ------------------
  |  |  |  |  541|     97|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2671|     97|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     97|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2672|     97|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2673|     97|  if (!__inst) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2673:7): [True: 0, False: 97]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2674|     97|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2675|     97|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2675:12): [True: 97, False: 0]
  |  |  |  |  |  |  |  Branch (2675:31): [True: 0, False: 97]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2676|     97|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2677|     97|  else \
  |  |  |  |  |  | 2678|     97|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  |  |  | 2679|     97|  __r; \
  |  |  |  |  |  | 2680|     97|}))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
              	if (!G_IS_SEEKABLE(stream) || !g_seekable_can_seek(G_SEEKABLE(stream))) {
  ------------------
  |  |   35|     97|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|     97|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     97|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (633:6): [True: 0, False: 97]
  |  Branch (633:32): [True: 0, False: 97]
  ------------------
  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|     97|	current = g_seekable_tell(G_SEEKABLE(stream));
  ------------------
  |  |   35|     97|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|     97|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     97|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  640|     97|	if (!g_seekable_seek(G_SEEKABLE(stream), 0, G_SEEK_END, NULL, error)) {
  ------------------
  |  |   35|     97|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|     97|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     97|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (640:6): [True: 0, False: 97]
  ------------------
  641|      0|		g_prefix_error_literal(error, "seek to end: ");
  642|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  643|      0|	}
  644|     97|	if (val != NULL)
  ------------------
  |  Branch (644:6): [True: 97, False: 0]
  ------------------
  645|     97|		*val = g_seekable_tell(G_SEEKABLE(stream));
  ------------------
  |  |   35|     97|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|     97|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     97|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  646|       |
  647|     97|	return g_seekable_seek(G_SEEKABLE(stream), current, G_SEEK_SET, NULL, error);
  ------------------
  |  |   35|     97|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  528|     97|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     97|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  648|     97|}
fu_input_stream_find:
  960|     20|{
  961|     20|	g_autoptr(GByteArray) buf_acc = g_byte_array_new();
  ------------------
  |  | 1381|     20|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     20|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  962|     20|	const gsize blocksz = 0x10000;
  963|     20|	gsize offset_add = 0;
  964|     20|	gsize offset_cur = offset;
  965|       |
  966|     20|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|     20|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     20|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     20|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     20|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     20|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     20| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     20|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     20|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 20, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     20|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     20|   else                                         \
  |  |  |  |  |  |  |  | 1240|     20|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     20|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     20|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     20|      { } \
  |  |  666|     20|    else \
  |  |  667|     20|      { \
  |  |  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|     20|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     20|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  967|     20|	g_return_val_if_fail(buf != NULL, FALSE);
  ------------------
  |  |  663|     20|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     20|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     20|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     20|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     20|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     20| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     20|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     20|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 20, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     20|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     20|   else                                         \
  |  |  |  |  |  |  |  | 1240|     20|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     20|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     20|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     20|      { } \
  |  |  666|     20|    else \
  |  |  667|     20|      { \
  |  |  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|     20|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     20|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  968|     20|	g_return_val_if_fail(bufsz != 0, FALSE);
  ------------------
  |  |  663|     20|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     20|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     20|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     20|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     20|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     20| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     20|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     20|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 20, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     20|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     20|   else                                         \
  |  |  |  |  |  |  |  | 1240|     20|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     20|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     20|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     20|      { } \
  |  |  666|     20|    else \
  |  |  667|     20|      { \
  |  |  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|     20|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     20|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  969|     20|	g_return_val_if_fail(bufsz < blocksz, FALSE);
  ------------------
  |  |  663|     20|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     20|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     20|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     20|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     20|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     20| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     20|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     20|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 20, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     20|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     20|   else                                         \
  |  |  |  |  |  |  |  | 1240|     20|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     20|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     20|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     20|      { } \
  |  |  666|     20|    else \
  |  |  667|     20|      { \
  |  |  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|     20|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     20|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  970|     20|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     20|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     20|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     20|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     20|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     20|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     20| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     20|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     20|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 20]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 20, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     20|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     20|   else                                         \
  |  |  |  |  |  |  |  | 1240|     20|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     20|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     20|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     20|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     20|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 20, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     20|      { } \
  |  |  666|     20|    else \
  |  |  667|     20|      { \
  |  |  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|     20|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     20|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 20]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  971|       |
  972|    122|	while (TRUE) {
  ------------------
  |  |  929|    122|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    122|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (929:14): [True: 122, Folded]
  |  |  ------------------
  ------------------
  973|    122|		g_autoptr(GByteArray) buf_tmp = NULL;
  ------------------
  |  | 1381|    122|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    122|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  974|    122|		g_autoptr(GError) error_local = NULL;
  ------------------
  |  | 1381|    122|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|    122|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  975|       |
  976|       |		/* read more data */
  977|    122|		buf_tmp = fu_input_stream_read_byte_array(stream,
  978|    122|							  offset_cur,
  979|    122|							  blocksz,
  980|    122|							  NULL,
  981|    122|							  &error_local);
  982|    122|		if (buf_tmp == NULL) {
  ------------------
  |  Branch (982:7): [True: 7, False: 115]
  ------------------
  983|      7|			if (g_error_matches(error_local, FWUPD_ERROR, FWUPD_ERROR_INVALID_FILE))
  ------------------
  |  |   15|      7|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  |  Branch (983:8): [True: 7, False: 0]
  ------------------
  984|      7|				break;
  985|      0|			g_propagate_error(error, g_steal_pointer(&error_local));
  ------------------
  |  |  247|      0|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  986|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  987|      7|		}
  988|    115|		g_byte_array_append(buf_acc, buf_tmp->data, buf_tmp->len);
  989|       |
  990|       |		/* we found something */
  991|    115|		if (fu_memmem_safe(buf_acc->data, buf_acc->len, buf, bufsz, offset_found, NULL)) {
  ------------------
  |  Branch (991:7): [True: 13, False: 102]
  ------------------
  992|     13|			if (offset_found != NULL)
  ------------------
  |  Branch (992:8): [True: 13, False: 0]
  ------------------
  993|     13|				*offset_found += offset + offset_add;
  994|     13|			return TRUE;
  ------------------
  |  |  929|     13|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     13|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  995|     13|		}
  996|       |
  997|       |		/* truncate the buffer */
  998|    102|		if (buf_acc->len > bufsz) {
  ------------------
  |  Branch (998:7): [True: 102, False: 0]
  ------------------
  999|    102|			offset_add += buf_acc->len - bufsz;
 1000|    102|			g_byte_array_remove_range(buf_acc, 0, buf_acc->len - bufsz);
 1001|    102|		}
 1002|       |
 1003|       |		/* move the offset */
 1004|    102|		offset_cur += buf_tmp->len;
 1005|    102|	}
 1006|      7|	g_set_error(error,
 1007|      7|		    FWUPD_ERROR,
  ------------------
  |  |   15|      7|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
 1008|      7|		    FWUPD_ERROR_NOT_FOUND,
 1009|      7|		    "failed to find buffer of size 0x%x",
 1010|      7|		    (guint)bufsz);
 1011|      7|	return FALSE;
  ------------------
  |  |  925|      7|#define	FALSE	(0)
  ------------------
 1012|     20|}
fu_input_stream_get_stream_impl:
 1026|      6|{
 1027|      6|	FuInputStreamClass *klass;
 1028|       |
 1029|      6|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|      6|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      6|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      6|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      6|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      6|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      6| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      6|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      6|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      6|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      6|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      6|   else                                         \
  |  |  |  |  |  |  |  | 1240|      6|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      6|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      6|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      6|      { } \
  |  |  666|      6|    else \
  |  |  667|      6|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      6|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      6|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1030|       |
 1031|      6|	klass = FU_INPUT_STREAM_GET_CLASS(stream);
 1032|      6|	g_return_val_if_fail(klass->get_stream_impl != NULL, NULL);
  ------------------
  |  |  663|      6|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      6|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      6|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      6|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      6|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      6| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      6|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      6|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      6|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      6|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      6|   else                                         \
  |  |  |  |  |  |  |  | 1240|      6|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      6|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      6|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      6|      { } \
  |  |  666|      6|    else \
  |  |  667|      6|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      6|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      6|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1033|       |
 1034|      6|	return klass->get_stream_impl(stream);
 1035|      6|}
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|     97|{
  112|     97|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(object);
  113|       |
  114|     97|	G_OBJECT_CLASS(fu_input_stream_parent_class)->constructed(object);
  ------------------
  |  |   61|     97|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|     97|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|     97|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  115|       |
  116|       |	/* every FuInputStream subclass must implement read_fn */
  117|     97|	g_assert(klass->read_fn != NULL); /* nocheck:blocked */
  ------------------
  |  |  275|     97|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     97|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     97|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     97|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     97|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     97| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     97|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     97|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     97|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 97, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     97|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     97|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     97|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     97|   else                                         \
  |  |  |  |  |  |  |  | 1240|     97|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     97|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     97|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     97|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     97|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 97, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     97|                                               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|     97|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     97|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 97]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  118|     97|}
fu-input-stream.c:fu_input_stream_init:
  132|     97|{
  133|     97|}
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|    194|{
   55|    194|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   56|    194|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   57|    194|	return klass->tell(self);
   58|    194|}
fu-input-stream.c:fu_input_stream_seekable_can_seek:
   62|    484|{
   63|    484|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   64|    484|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   65|    484|	return klass->can_seek(self);
   66|    484|}
fu-input-stream.c:fu_input_stream_seekable_seek:
   74|  1.33k|{
   75|  1.33k|	FuInputStream *self = FU_INPUT_STREAM(seekable);
   76|  1.33k|	FuInputStreamClass *klass = FU_INPUT_STREAM_GET_CLASS(self);
   77|  1.33k|	return klass->seek(self, offset, type, cancellable, error);
   78|  1.33k|}

fu_memwrite_uint16:
   29|      4|{
   30|      4|	guint16 val_hw;
   31|      4|	switch (endian) {
   32|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (32:2): [True: 0, False: 4]
  ------------------
   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|      4|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|      4|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (35:2): [True: 4, False: 0]
  ------------------
   36|      4|		val_hw = GUINT16_TO_LE(val_native); /* nocheck:blocked */
  ------------------
  |  |  158|      4|#define GUINT16_TO_LE(val)	((guint16) (val))
  ------------------
   37|      4|		break;
   38|      0|	default:
  ------------------
  |  Branch (38:2): [True: 0, False: 4]
  ------------------
   39|      0|		val_hw = val_native;
   40|      0|		break;
   41|      4|	}
   42|      4|	memcpy(buf, &val_hw, sizeof(val_hw)); /* nocheck:blocked */
   43|      4|}
fu_memwrite_uint32:
   85|      2|{
   86|      2|	guint32 val_hw;
   87|      2|	switch (endian) {
   88|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (88:2): [True: 0, False: 2]
  ------------------
   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|      2|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|      2|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (91:2): [True: 2, False: 0]
  ------------------
   92|      2|		val_hw = GUINT32_TO_LE(val_native); /* nocheck:blocked */
  ------------------
  |  |  163|      2|#define GUINT32_TO_LE(val)	((guint32) (val))
  ------------------
   93|      2|		break;
   94|      0|	default:
  ------------------
  |  Branch (94:2): [True: 0, False: 2]
  ------------------
   95|      0|		val_hw = val_native;
   96|      0|		break;
   97|      2|	}
   98|      2|	memcpy(buf, &val_hw, sizeof(val_hw)); /* nocheck:blocked */
   99|      2|}
fu_memread_uint16:
  142|     13|{
  143|     13|	guint16 val_hw;
  144|     13|	guint16 val_native;
  145|     13|	memcpy(&val_hw, buf, sizeof(val_hw)); /* nocheck:blocked */
  146|     13|	switch (endian) {
  147|      0|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|      0|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (147:2): [True: 0, False: 13]
  ------------------
  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|     13|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|     13|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (150:2): [True: 13, False: 0]
  ------------------
  151|     13|		val_native = GUINT16_FROM_LE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  413|     13|#define GUINT16_FROM_LE(val)	(GUINT16_TO_LE (val))
  |  |  ------------------
  |  |  |  |  158|     13|#define GUINT16_TO_LE(val)	((guint16) (val))
  |  |  ------------------
  ------------------
  152|     13|		break;
  153|      0|	default:
  ------------------
  |  Branch (153:2): [True: 0, False: 13]
  ------------------
  154|      0|		val_native = val_hw;
  155|      0|		break;
  156|     13|	}
  157|     13|	return val_native;
  158|     13|}
fu_memread_uint32:
  205|     43|{
  206|     43|	guint32 val_hw;
  207|     43|	guint32 val_native;
  208|     43|	memcpy(&val_hw, buf, sizeof(val_hw)); /* nocheck:blocked */
  209|     43|	switch (endian) {
  210|     30|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|     30|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (210:2): [True: 30, False: 13]
  ------------------
  211|     30|		val_native = GUINT32_FROM_BE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  419|     30|#define GUINT32_FROM_BE(val)	(GUINT32_TO_BE (val))
  |  |  ------------------
  |  |  |  |  165|     30|#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  380|     30|#      define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86_64 (val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  358|     30|       (G_GNUC_EXTENSION					\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     30|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  359|     30|	 ({ guint32 __v, __x = ((guint32) (val));		\
  |  |  |  |  |  |  |  |  360|     30|	    if (__builtin_constant_p (__x))			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (360:10): [True: 0, False: 30]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  361|     30|	      __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|     30|	    else						\
  |  |  |  |  |  |  |  |  363|     30|	     __asm__ ("bswapl %0"				\
  |  |  |  |  |  |  |  |  364|     30|		      : "=r" (__v)				\
  |  |  |  |  |  |  |  |  365|     30|		      : "0" (__x));				\
  |  |  |  |  |  |  |  |  366|     30|	    __v; }))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  212|     30|		break;
  213|     13|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|     13|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (213:2): [True: 13, False: 30]
  ------------------
  214|     13|		val_native = GUINT32_FROM_LE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  417|     13|#define GUINT32_FROM_LE(val)	(GUINT32_TO_LE (val))
  |  |  ------------------
  |  |  |  |  163|     13|#define GUINT32_TO_LE(val)	((guint32) (val))
  |  |  ------------------
  ------------------
  215|     13|		break;
  216|      0|	default:
  ------------------
  |  Branch (216:2): [True: 0, False: 43]
  ------------------
  217|      0|		val_native = val_hw;
  218|      0|		break;
  219|     43|	}
  220|     43|	return val_native;
  221|     43|}
fu_memread_uint64:
  236|     38|{
  237|     38|	guint64 val_hw;
  238|     38|	guint64 val_native;
  239|     38|	memcpy(&val_hw, buf, sizeof(val_hw)); /* nocheck:blocked */
  240|     38|	switch (endian) {
  241|     38|	case G_BIG_ENDIAN:
  ------------------
  |  |  212|     38|#define G_BIG_ENDIAN    4321
  ------------------
  |  Branch (241:2): [True: 38, False: 0]
  ------------------
  242|     38|		val_native = GUINT64_FROM_BE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  424|     38|#define GUINT64_FROM_BE(val)	(GUINT64_TO_BE (val))
  |  |  ------------------
  |  |  |  |  170|     38|#define GUINT64_TO_BE(val)	(GUINT64_SWAP_LE_BE (val))
  |  |  |  |  ------------------
  |  |  |  |  |  |  383|     38|#      define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_X86_64 (val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  368|     38|       (G_GNUC_EXTENSION					\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  369|     38|	({ guint64 __v, __x = ((guint64) (val));		\
  |  |  |  |  |  |  |  |  370|     38|	   if (__builtin_constant_p (__x))			\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (370:9): [True: 0, False: 38]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  371|     38|	     __v = GUINT64_SWAP_LE_BE_CONSTANT (__x);		\
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  228|      0|#define GUINT64_SWAP_LE_BE_CONSTANT(val)	((guint64) ( \
  |  |  |  |  |  |  |  |  |  |  229|      0|      (((guint64) (val) &						\
  |  |  |  |  |  |  |  |  |  |  230|      0|	(guint64) G_GINT64_CONSTANT (0x00000000000000ffU)) << 56) |	\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   69|      0|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  231|      0|      (((guint64) (val) &						\
  |  |  |  |  |  |  |  |  |  |  232|      0|	(guint64) G_GINT64_CONSTANT (0x000000000000ff00U)) << 40) |	\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   69|      0|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  233|      0|      (((guint64) (val) &						\
  |  |  |  |  |  |  |  |  |  |  234|      0|	(guint64) G_GINT64_CONSTANT (0x0000000000ff0000U)) << 24) |	\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   69|      0|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  235|      0|      (((guint64) (val) &						\
  |  |  |  |  |  |  |  |  |  |  236|      0|	(guint64) G_GINT64_CONSTANT (0x00000000ff000000U)) <<  8) |	\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   69|      0|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  237|      0|      (((guint64) (val) &						\
  |  |  |  |  |  |  |  |  |  |  238|      0|	(guint64) G_GINT64_CONSTANT (0x000000ff00000000U)) >>  8) |	\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   69|      0|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  239|      0|      (((guint64) (val) &						\
  |  |  |  |  |  |  |  |  |  |  240|      0|	(guint64) G_GINT64_CONSTANT (0x0000ff0000000000U)) >> 24) |	\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   69|      0|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  241|      0|      (((guint64) (val) &						\
  |  |  |  |  |  |  |  |  |  |  242|      0|	(guint64) G_GINT64_CONSTANT (0x00ff000000000000U)) >> 40) |	\
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   69|      0|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  243|      0|      (((guint64) (val) &						\
  |  |  |  |  |  |  |  |  |  |  244|      0|	(guint64) G_GINT64_CONSTANT (0xff00000000000000U)) >> 56)))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   69|      0|#define G_GINT64_CONSTANT(val)	(val##L)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  372|     38|	   else							\
  |  |  |  |  |  |  |  |  373|     38|	     __asm__ ("bswapq %0"				\
  |  |  |  |  |  |  |  |  374|     38|		      : "=r" (__v)				\
  |  |  |  |  |  |  |  |  375|     38|		      : "0" (__x));				\
  |  |  |  |  |  |  |  |  376|     38|	   __v; }))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  243|     38|		break;
  244|      0|	case G_LITTLE_ENDIAN:
  ------------------
  |  |  211|      0|#define G_LITTLE_ENDIAN 1234
  ------------------
  |  Branch (244:2): [True: 0, False: 38]
  ------------------
  245|      0|		val_native = GUINT64_FROM_LE(val_hw); /* nocheck:blocked */
  ------------------
  |  |  422|      0|#define GUINT64_FROM_LE(val)	(GUINT64_TO_LE (val))
  |  |  ------------------
  |  |  |  |  168|      0|#define GUINT64_TO_LE(val)	((guint64) (val))
  |  |  ------------------
  ------------------
  246|      0|		break;
  247|      0|	default:
  ------------------
  |  Branch (247:2): [True: 0, False: 38]
  ------------------
  248|      0|		val_native = val_hw;
  249|      0|		break;
  250|     38|	}
  251|     38|	return val_native;
  252|     38|}
fu_memchk_write:
  383|    848|{
  384|    848|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    848|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    848|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    848|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    848|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    848|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    848| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    848|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    848|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.69k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 848, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    848|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    848|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    848|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    848|   else                                         \
  |  |  |  |  |  |  |  | 1240|    848|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    848|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    848|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    848|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    848|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 848, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    848|      { } \
  |  |  666|    848|    else \
  |  |  667|    848|      { \
  |  |  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|    848|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    848|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 848]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  385|    848|	if (n == 0)
  ------------------
  |  Branch (385:6): [True: 0, False: 848]
  ------------------
  386|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  387|    848|	if (n > bufsz) {
  ------------------
  |  Branch (387:6): [True: 0, False: 848]
  ------------------
  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|    848|	if (fu_size_checked_add(offset, n) == G_MAXSIZE) {
  ------------------
  |  |   89|    848|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|    848|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  |  Branch (396:6): [True: 0, False: 848]
  ------------------
  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|    848|	if (offset > bufsz || n + offset > bufsz) {
  ------------------
  |  Branch (405:6): [True: 0, False: 848]
  |  Branch (405:24): [True: 0, False: 848]
  ------------------
  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|    848|	return TRUE;
  ------------------
  |  |  929|    848|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    848|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  416|    848|}
fu_memmem_safe:
  488|    115|{
  489|       |#ifdef HAVE_MEMMEM
  490|       |	const guint8 *tmp;
  491|       |#endif
  492|    115|	g_return_val_if_fail(haystack != NULL, FALSE);
  ------------------
  |  |  663|    115|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    115|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    115|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    115|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    115|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    115| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    115|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    115|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    115|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 115, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    115|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    115|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    115|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    115|   else                                         \
  |  |  |  |  |  |  |  | 1240|    115|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    115|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    115|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    115|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    115|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 115, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    115|      { } \
  |  |  666|    115|    else \
  |  |  667|    115|      { \
  |  |  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|    115|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    115|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 115]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  493|    115|	g_return_val_if_fail(needle != NULL, FALSE);
  ------------------
  |  |  663|    115|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    115|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    115|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    115|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    115|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    115| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    115|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    115|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    115|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 115, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    115|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    115|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    115|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    115|   else                                         \
  |  |  |  |  |  |  |  | 1240|    115|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    115|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    115|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    115|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    115|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 115, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    115|      { } \
  |  |  666|    115|    else \
  |  |  667|    115|      { \
  |  |  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|    115|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    115|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 115]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  494|    115|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|    115|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    115|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    115|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    115|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    115|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    115| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    115|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    115|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    230|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 115, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    115|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    115|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    115|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    115|   else                                         \
  |  |  |  |  |  |  |  | 1240|    115|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    115|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    115|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    115|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    115|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 115, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    115|      { } \
  |  |  666|    115|    else \
  |  |  667|    115|      { \
  |  |  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|    115|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    115|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 115]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  495|       |
  496|       |	/* nothing to find */
  497|    115|	if (needle_sz == 0) {
  ------------------
  |  Branch (497:6): [True: 0, False: 115]
  ------------------
  498|      0|		if (offset != NULL)
  ------------------
  |  Branch (498:7): [True: 0, False: 0]
  ------------------
  499|      0|			*offset = 0;
  500|      0|		return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  501|      0|	}
  502|       |
  503|       |	/* impossible */
  504|    115|	if (needle_sz > haystack_sz) {
  ------------------
  |  Branch (504:6): [True: 0, False: 115]
  ------------------
  505|      0|		g_set_error(error,
  506|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  507|      0|			    FWUPD_ERROR_NOT_FOUND,
  508|      0|			    "needle of 0x%02x bytes is larger than haystack of 0x%02x bytes",
  509|      0|			    (guint)needle_sz,
  510|      0|			    (guint)haystack_sz);
  511|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  512|      0|	}
  513|       |
  514|       |#ifdef HAVE_MEMMEM
  515|       |	/* trust glibc to do a binary or linear search as appropriate */
  516|       |	tmp = memmem(haystack, haystack_sz, needle, needle_sz);
  517|       |	if (tmp != NULL) {
  518|       |		if (offset != NULL)
  519|       |			*offset = tmp - haystack;
  520|       |		return TRUE;
  521|       |	}
  522|       |#else
  523|  6.45M|	for (gsize i = 0; i < haystack_sz - needle_sz; i++) {
  ------------------
  |  Branch (523:20): [True: 6.45M, False: 102]
  ------------------
  524|  6.45M|		if (memcmp(haystack + i, needle, needle_sz) == 0) {
  ------------------
  |  Branch (524:7): [True: 13, False: 6.45M]
  ------------------
  525|     13|			if (offset != NULL)
  ------------------
  |  Branch (525:8): [True: 13, False: 0]
  ------------------
  526|     13|				*offset = i;
  527|     13|			return TRUE;
  ------------------
  |  |  929|     13|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     13|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  528|     13|		}
  529|  6.45M|	}
  530|    102|#endif
  531|       |
  532|       |	/* not found */
  533|    102|	g_set_error(error,
  534|    102|		    FWUPD_ERROR,
  ------------------
  |  |   15|    102|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  535|    102|		    FWUPD_ERROR_NOT_FOUND,
  536|    102|		    "needle of 0x%02x bytes was not found in haystack of 0x%02x bytes",
  537|    102|		    (guint)needle_sz,
  538|    102|		    (guint)haystack_sz);
  539|    102|	return FALSE;
  ------------------
  |  |  925|    102|#define	FALSE	(0)
  ------------------
  540|    115|}

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

fu_partial_input_stream_new:
  130|      6|{
  131|      6|	gsize base_sz = 0;
  132|      6|	g_autoptr(FuPartialInputStream) self = g_object_new(FU_TYPE_PARTIAL_INPUT_STREAM, NULL);
  ------------------
  |  | 1381|      6|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      6|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
              	g_autoptr(FuPartialInputStream) self = g_object_new(FU_TYPE_PARTIAL_INPUT_STREAM, NULL);
  ------------------
  |  |   15|      6|#define FU_TYPE_PARTIAL_INPUT_STREAM (fu_partial_input_stream_get_type())
  ------------------
  133|      6|	FuRsStreamImpl *impl;
  134|       |
  135|      6|	g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), NULL);
  ------------------
  |  |  663|      6|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      6|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      6|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      6|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      6|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      6| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      6|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      6|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      6|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      6|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      6|   else                                         \
  |  |  |  |  |  |  |  | 1240|      6|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      6|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      6|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      6|      { } \
  |  |  666|      6|    else \
  |  |  667|      6|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuPartialInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      6|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      6|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  136|      6|	g_return_val_if_fail(error == NULL || *error == NULL, NULL);
  ------------------
  |  |  663|      6|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      6|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      6|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      6|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      6|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      6| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      6|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      6|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     12|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 6, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      6|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      6|   else                                         \
  |  |  |  |  |  |  |  | 1240|      6|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      6|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      6|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      6|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      6|      { } \
  |  |  666|      6|    else \
  |  |  667|      6|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuPartialInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      6|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      6|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 6]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  137|       |
  138|      6|	self->base_stream = g_object_ref(stream);
  ------------------
  |  |  533|      6|#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
  ------------------
  139|       |
  140|       |	/* sanity check */
  141|      6|	if (!fu_input_stream_size(stream, &base_sz, error)) {
  ------------------
  |  Branch (141:6): [True: 0, False: 6]
  ------------------
  142|      0|		g_prefix_error_literal(error, "failed to get size: ");
  143|      0|		return NULL;
  144|      0|	}
  145|      6|	if (size == G_MAXSIZE) {
  ------------------
  |  |   89|      6|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|      6|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  |  Branch (145:6): [True: 0, False: 6]
  ------------------
  146|      0|		if (offset > base_sz) {
  ------------------
  |  Branch (146:7): [True: 0, False: 0]
  ------------------
  147|      0|			g_set_error(error,
  148|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  149|      0|				    FWUPD_ERROR_INVALID_DATA,
  150|      0|				    "base stream was 0x%x bytes in size "
  151|      0|				    "and tried to create partial stream @0x%x",
  152|      0|				    (guint)base_sz,
  153|      0|				    (guint)offset);
  154|      0|			return NULL;
  155|      0|		}
  156|      0|		size = base_sz - offset;
  157|      6|	} else {
  158|      6|		if (fu_size_checked_add(offset, size) > base_sz) {
  ------------------
  |  Branch (158:7): [True: 0, False: 6]
  ------------------
  159|      0|			g_set_error(error,
  160|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  161|      0|				    FWUPD_ERROR_INVALID_DATA,
  162|      0|				    "base stream was 0x%x bytes in size, and tried to create "
  163|      0|				    "partial stream @0x%x of 0x%x bytes",
  164|      0|				    (guint)base_sz,
  165|      0|				    (guint)offset,
  166|      0|				    (guint)size);
  167|      0|			return NULL;
  168|      0|		}
  169|      6|	}
  170|       |
  171|      6|	impl = fu_input_stream_get_stream_impl(stream);
  172|      6|	if (impl == NULL) {
  ------------------
  |  Branch (172:6): [True: 0, False: 6]
  ------------------
  173|      0|		g_set_error_literal(error,
  174|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  175|      0|				    FWUPD_ERROR_INTERNAL,
  176|      0|				    "Partial streams only support Rust-based streams");
  177|      0|		return NULL;
  178|      0|	}
  179|      6|	self->rust = fu_rs_partial_input_stream_new(impl, offset, size);
  180|       |
  181|       |	/* success */
  182|      6|	return FU_INPUT_STREAM(g_steal_pointer(&self));
  ------------------
  |  |  247|      6|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  183|      6|}
fu-partial-input-stream.c:fu_partial_input_stream_class_init:
  272|      1|{
  273|      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)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  274|      1|	FuInputStreamClass *istream_class = FU_INPUT_STREAM_CLASS(klass);
  275|      1|	istream_class->read_fn = fu_partial_input_stream_read_fn;
  276|      1|	istream_class->tell = fu_partial_input_stream_tell;
  277|      1|	istream_class->can_seek = fu_partial_input_stream_can_seek;
  278|      1|	istream_class->seek = fu_partial_input_stream_seek;
  279|      1|	istream_class->get_stream_impl = fu_partial_input_stream_get_stream_impl;
  280|      1|	object_class->finalize = fu_partial_input_stream_finalize;
  281|      1|}
fu-partial-input-stream.c:fu_partial_input_stream_read_fn:
  225|    154|{
  226|    154|	FuPartialInputStream *self = FU_PARTIAL_INPUT_STREAM(stream);
  227|    154|	gssize rc;
  228|    154|	g_return_val_if_fail(FU_IS_PARTIAL_INPUT_STREAM(self), -1);
  ------------------
  |  |  663|    154|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    154|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    154|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    154|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    154|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    154| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    154|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    154|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    154|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 154, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    154|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    154|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    154|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    154|   else                                         \
  |  |  |  |  |  |  |  | 1240|    154|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    154|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    154|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    154|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    154|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 154, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    154|      { } \
  |  |  666|    154|    else \
  |  |  667|    154|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuPartialInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    154|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    154|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 154]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  229|    154|	g_return_val_if_fail(error == NULL || *error == NULL, -1);
  ------------------
  |  |  663|    154|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    154|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    154|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    154|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    154|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    154| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    154|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    154|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    462|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 154]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 154, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    154|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    154|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    154|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    154|   else                                         \
  |  |  |  |  |  |  |  | 1240|    154|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    154|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    154|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    154|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    154|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 154, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    154|      { } \
  |  |  666|    154|    else \
  |  |  667|    154|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuPartialInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    154|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    154|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 154]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  230|       |
  231|    154|	if (g_cancellable_set_error_if_cancelled(cancellable, error))
  ------------------
  |  Branch (231:6): [True: 0, False: 154]
  ------------------
  232|      0|		return -1;
  233|       |
  234|    154|	rc = fu_rs_partial_input_stream_read(self->rust, buffer, count);
  235|    154|	if (rc < 0) {
  ------------------
  |  Branch (235:6): [True: 0, False: 154]
  ------------------
  236|      0|		g_set_error(error,
  237|      0|			    G_IO_ERROR, /* nocheck:error */
  ------------------
  |  |   42|      0|#define G_IO_ERROR g_io_error_quark()
  ------------------
  238|       |#ifdef HAVE_ERRNO_H
  239|       |			    g_io_error_from_errno(-rc),
  240|       |#else
  241|      0|			    G_IO_ERROR_FAILED, /* nocheck:blocked */
  242|      0|#endif
  243|      0|			    "failed to read %zu bytes: %s",
  244|      0|			    count,
  245|      0|			    fwupd_strerror(-rc));
  246|      0|		fwupd_error_convert(error);
  247|      0|		return -1;
  248|      0|	}
  249|    154|	return rc;
  250|    154|}
fu-partial-input-stream.c:fu_partial_input_stream_can_seek:
   79|     18|{
   80|     18|	FuPartialInputStream *self = FU_PARTIAL_INPUT_STREAM(stream);
   81|     18|	return fu_rs_partial_input_stream_can_seek(self->rust);
   82|     18|}
fu-partial-input-stream.c:fu_partial_input_stream_seek:
   90|     18|{
   91|     18|	FuPartialInputStream *self = FU_PARTIAL_INPUT_STREAM(stream);
   92|       |
   93|     18|	g_return_val_if_fail(FU_IS_PARTIAL_INPUT_STREAM(self), FALSE);
  ------------------
  |  |  663|     18|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     18|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     18|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     18|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     18|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     18| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     18|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     18|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     18|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 18, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     18|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     18|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     18|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     18|   else                                         \
  |  |  |  |  |  |  |  | 1240|     18|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     18|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     18|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     18|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     18|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 18, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     18|      { } \
  |  |  666|     18|    else \
  |  |  667|     18|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuPartialInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     18|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     18|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 18]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   94|     18|	g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     18|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     18|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     18|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     18|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     18|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     18| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     18|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     18|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     36|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 18, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     18|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     18|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     18|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     18|   else                                         \
  |  |  |  |  |  |  |  | 1240|     18|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     18|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     18|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     18|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     18|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 18, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     18|      { } \
  |  |  666|     18|    else \
  |  |  667|     18|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |    7|      0|#define G_LOG_DOMAIN "FuPartialInputStream"
  |  |  ------------------
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     18|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     18|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 18]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   95|       |
   96|     18|	if (!fu_rs_partial_input_stream_seek(self->rust, offset, (gint32)type)) {
  ------------------
  |  Branch (96:6): [True: 0, False: 18]
  ------------------
   97|      0|		if (offset >= 0)
  ------------------
  |  Branch (97:7): [True: 0, False: 0]
  ------------------
   98|      0|			g_set_error(error,
   99|      0|				    G_IO_ERROR,
  ------------------
  |  |   42|      0|#define G_IO_ERROR g_io_error_quark()
  ------------------
  100|      0|				    G_IO_ERROR_INVALID_ARGUMENT,
  101|      0|				    "seek to 0x%" G_GINT64_MODIFIER "x failed",
  102|      0|				    (guint64)offset); /* nocheck:error */
  103|      0|		else
  104|      0|			g_set_error(error,
  105|      0|				    G_IO_ERROR,
  ------------------
  |  |   42|      0|#define G_IO_ERROR g_io_error_quark()
  ------------------
  106|      0|				    G_IO_ERROR_INVALID_ARGUMENT,
  107|      0|				    "seek to %" G_GINT64_MODIFIER "d failed",
  108|      0|				    offset); /* nocheck:error */
  109|      0|		fwupd_error_convert(error);
  110|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  111|      0|	}
  112|     18|	return TRUE;
  ------------------
  |  |  929|     18|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     18|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  113|     18|}
fu-partial-input-stream.c:fu_partial_input_stream_finalize:
  254|      6|{
  255|      6|	FuPartialInputStream *self = FU_PARTIAL_INPUT_STREAM(object);
  256|       |	/* must free the Rust stream first */
  257|      6|	fu_rs_partial_input_stream_free(self->rust);
  258|      6|	if (self->base_stream != NULL)
  ------------------
  |  Branch (258:6): [True: 6, False: 0]
  ------------------
  259|      6|		g_object_unref(self->base_stream);
  260|      6|	G_OBJECT_CLASS(fu_partial_input_stream_parent_class)->finalize(object);
  ------------------
  |  |   61|      6|#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  597|      6|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2657|      6|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  261|      6|}
fu-partial-input-stream.c:fu_partial_input_stream_init:
  285|      6|{
  286|      6|}
fu-partial-input-stream.c:fu_partial_input_stream_codec_iface_init:
   66|      1|{
   67|      1|	iface->add_string = fu_partial_input_stream_add_string;
   68|      1|}

fu-uswid-firmware.c:fu_uswid_firmware_class_init:
  377|      1|{
  378|      1|	FuFirmwareClass *firmware_class = FU_FIRMWARE_CLASS(klass);
  379|      1|	fu_firmware_add_image_gtype(firmware_class, FU_TYPE_COSWID_FIRMWARE);
  ------------------
  |  |   13|      1|#define FU_TYPE_COSWID_FIRMWARE (fu_coswid_firmware_get_type())
  ------------------
  380|      1|	fu_firmware_add_image_gtype(firmware_class, FU_TYPE_FIRMWARE);
  ------------------
  |  |   18|      1|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
  381|      1|	firmware_class->validate = fu_uswid_firmware_validate;
  382|      1|	firmware_class->parse = fu_uswid_firmware_parse;
  383|      1|	firmware_class->write = fu_uswid_firmware_write;
  384|      1|	firmware_class->build = fu_uswid_firmware_build;
  385|      1|	firmware_class->export = fu_uswid_firmware_export;
  386|      1|	firmware_class->add_magic = fu_uswid_firmware_add_magic;
  387|      1|	fu_firmware_set_size_max(firmware_class, 16 * FU_MB);
  ------------------
  |  |   81|      1|#define FU_MB (1ull << 20)
  ------------------
  388|      1|	fu_firmware_set_images_max(firmware_class, 2000);
  389|      1|}
fu-uswid-firmware.c:fu_uswid_firmware_validate:
   62|     13|{
   63|     13|	return fu_struct_uswid_validate_stream(stream, offset, error);
   64|     13|}
fu-uswid-firmware.c:fu_uswid_firmware_parse:
   88|     13|{
   89|     13|	FuUswidFirmware *self = FU_USWID_FIRMWARE(firmware);
   90|     13|	FuUswidFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   38|     13|#define GET_PRIVATE(o) (fu_uswid_firmware_get_instance_private(o))
  ------------------
   91|     13|	GType img_gtype;
   92|     13|	gsize payloadsz_max;
   93|     13|	guint16 hdrsz;
   94|     13|	guint32 payloadsz;
   95|     13|	g_autoptr(FuStructUswid) st = NULL;
  ------------------
  |  | 1381|     13|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     13|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   96|     13|	g_autoptr(GBytes) payload = NULL;
  ------------------
  |  | 1381|     13|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     13|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
   97|       |
   98|       |	/* unpack */
   99|     13|	st = fu_struct_uswid_parse_stream(stream, 0x0, error);
  100|     13|	if (st == NULL)
  ------------------
  |  Branch (100:6): [True: 0, False: 13]
  ------------------
  101|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  102|       |
  103|       |	/* hdrver */
  104|     13|	priv->hdrver = fu_struct_uswid_get_hdrver(st);
  105|     13|	if (priv->hdrver < FU_USWID_FIRMWARE_MINIMUM_HDRVER) {
  ------------------
  |  |   40|     13|#define FU_USWID_FIRMWARE_MINIMUM_HDRVER 1
  ------------------
  |  Branch (105:6): [True: 0, False: 13]
  ------------------
  106|      0|		g_set_error_literal(error,
  107|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  108|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
  109|      0|				    "header version was unsupported");
  110|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  111|      0|	}
  112|       |
  113|       |	/* hdrsz+payloadsz */
  114|     13|	hdrsz = fu_struct_uswid_get_hdrsz(st);
  115|     13|	payloadsz = fu_struct_uswid_get_payloadsz(st);
  116|     13|	if (payloadsz == 0x0) {
  ------------------
  |  Branch (116:6): [True: 0, False: 13]
  ------------------
  117|      0|		g_set_error_literal(error,
  118|      0|				    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  119|      0|				    FWUPD_ERROR_NOT_SUPPORTED,
  120|      0|				    "payload size is invalid");
  121|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  122|      0|	}
  123|     13|	fu_firmware_set_size(firmware, hdrsz + payloadsz);
  124|       |
  125|       |	/* payload compression */
  126|     13|	if (priv->hdrver >= 0x03) {
  ------------------
  |  Branch (126:6): [True: 9, False: 4]
  ------------------
  127|      9|		if (fu_struct_uswid_get_flags(st) & FU_USWID_HEADER_FLAG_COMPRESSED) {
  ------------------
  |  Branch (127:7): [True: 5, False: 4]
  ------------------
  128|      5|			priv->compression = fu_struct_uswid_get_compression(st);
  129|      5|		} else {
  130|      4|			priv->compression = FU_USWID_PAYLOAD_COMPRESSION_NONE;
  131|      4|		}
  132|      9|	} else if (priv->hdrver >= 0x02) {
  ------------------
  |  Branch (132:13): [True: 1, False: 3]
  ------------------
  133|      1|		priv->compression = fu_struct_uswid_get_flags(st) & FU_USWID_HEADER_FLAG_COMPRESSED
  ------------------
  |  Branch (133:23): [True: 0, False: 1]
  ------------------
  134|      1|					? FU_USWID_PAYLOAD_COMPRESSION_ZLIB
  135|      1|					: FU_USWID_PAYLOAD_COMPRESSION_NONE;
  136|      3|	} else {
  137|      3|		priv->compression = FU_USWID_PAYLOAD_COMPRESSION_NONE;
  138|      3|	}
  139|       |
  140|       |	/* payload format */
  141|     13|	if (priv->hdrver >= 0x04) {
  ------------------
  |  Branch (141:6): [True: 3, False: 10]
  ------------------
  142|      3|		priv->format = fu_struct_uswid_get_format(st);
  143|      3|		img_gtype = fu_uswid_firmware_format_to_gtype(priv->format, error);
  144|      3|		if (img_gtype == G_TYPE_INVALID)
  ------------------
  |  |   65|      3|#define G_TYPE_INVALID			G_TYPE_MAKE_FUNDAMENTAL (0)
  |  |  ------------------
  |  |  |  |  227|      3|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      3|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (144:7): [True: 0, False: 3]
  ------------------
  145|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  146|     10|	} else {
  147|     10|		priv->format = FU_USWID_PAYLOAD_FORMAT_COSWID;
  148|     10|		img_gtype = FU_TYPE_COSWID_FIRMWARE;
  ------------------
  |  |   13|     10|#define FU_TYPE_COSWID_FIRMWARE (fu_coswid_firmware_get_type())
  ------------------
  149|     10|	}
  150|       |
  151|       |	/* limit inflated size to prevent decompression bombs */
  152|     13|	payloadsz_max = MIN((gsize)payloadsz * 64, 32 * FU_MB);
  ------------------
  |  |  936|     13|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 1, False: 12]
  |  |  ------------------
  ------------------
  153|       |
  154|       |	/* zlib stream */
  155|     13|	if (priv->compression == FU_USWID_PAYLOAD_COMPRESSION_ZLIB) {
  ------------------
  |  Branch (155:6): [True: 0, False: 13]
  ------------------
  156|      0|		g_autoptr(FuInputStream) istream1 = NULL;
  ------------------
  |  | 1381|      0|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  157|      0|		g_autoptr(FuInputStream) istream2 = NULL;
  ------------------
  |  | 1381|      0|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  158|      0|		istream1 = fu_partial_input_stream_new(stream, hdrsz, payloadsz, error);
  159|      0|		if (istream1 == NULL) {
  ------------------
  |  Branch (159:7): [True: 0, False: 0]
  ------------------
  160|      0|			g_prefix_error_literal(error, "failed to cut uSWID payload: ");
  161|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  162|      0|		}
  163|      0|		if (!g_seekable_seek(G_SEEKABLE(istream1), 0, G_SEEK_SET, NULL, error))
  ------------------
  |  |   35|      0|#define G_SEEKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable))
  |  |  ------------------
  |  |  |  |  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 (163:7): [True: 0, False: 0]
  ------------------
  164|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  165|      0|		istream2 = fu_compressor_stream_new_decompress(istream1,
  166|      0|							       FWUPD_COMPRESSOR_FORMAT_ZLIB,
  167|      0|							       error);
  168|      0|		if (istream2 == NULL)
  ------------------
  |  Branch (168:7): [True: 0, False: 0]
  ------------------
  169|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  170|      0|		payload = fu_input_stream_read_bytes(istream2, 0, payloadsz_max + 1, NULL, error);
  171|      0|		if (payload == NULL)
  ------------------
  |  Branch (171:7): [True: 0, False: 0]
  ------------------
  172|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  173|     13|	} else if (priv->compression == FU_USWID_PAYLOAD_COMPRESSION_LZMA) {
  ------------------
  |  Branch (173:13): [True: 0, False: 13]
  ------------------
  174|      0|		g_autoptr(GBytes) payload_tmp = NULL;
  ------------------
  |  | 1381|      0|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  175|      0|		payload_tmp = fu_input_stream_read_bytes(stream, hdrsz, payloadsz, NULL, error);
  176|      0|		if (payload_tmp == NULL)
  ------------------
  |  Branch (176:7): [True: 0, False: 0]
  ------------------
  177|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  178|      0|		payload = fu_lzma_decompress_bytes(payload_tmp, payloadsz_max + 1, error);
  179|      0|		if (payload == NULL)
  ------------------
  |  Branch (179:7): [True: 0, False: 0]
  ------------------
  180|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  181|     13|	} else if (priv->compression == FU_USWID_PAYLOAD_COMPRESSION_NONE) {
  ------------------
  |  Branch (181:13): [True: 13, False: 0]
  ------------------
  182|     13|		payload = fu_input_stream_read_bytes(stream, hdrsz, payloadsz, NULL, error);
  183|     13|		if (payload == NULL)
  ------------------
  |  Branch (183:7): [True: 0, False: 13]
  ------------------
  184|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  185|     13|	} else {
  186|      0|		g_set_error(error,
  187|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  188|      0|			    FWUPD_ERROR_NOT_SUPPORTED,
  189|      0|			    "compression format 0x%x is not supported",
  190|      0|			    priv->compression);
  191|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  192|      0|	}
  193|       |
  194|       |	/* payload */
  195|     13|	payloadsz = g_bytes_get_size(payload);
  196|     13|	if (payloadsz > payloadsz_max) {
  ------------------
  |  Branch (196:6): [True: 0, False: 13]
  ------------------
  197|      0|		g_set_error(error,
  198|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  199|      0|			    FWUPD_ERROR_NOT_SUPPORTED,
  200|      0|			    "inflated size 0x%x larger than allowed 0x%x",
  201|      0|			    payloadsz,
  202|      0|			    (guint)payloadsz_max);
  203|      0|		return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  204|      0|	}
  205|     73|	for (gsize offset_tmp = 0; offset_tmp < payloadsz;) {
  ------------------
  |  Branch (205:29): [True: 71, False: 2]
  ------------------
  206|     71|		g_autoptr(FuFirmware) img = g_object_new(img_gtype, NULL);
  ------------------
  |  | 1381|     71|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     71|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  207|     71|		g_autoptr(GBytes) img_blob = NULL;
  ------------------
  |  | 1381|     71|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     71|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  208|       |
  209|       |		/* parse SBOM component */
  210|     71|		img_blob = fu_bytes_new_offset(payload, offset_tmp, payloadsz - offset_tmp, error);
  211|     71|		if (img_blob == NULL)
  ------------------
  |  Branch (211:7): [True: 0, False: 71]
  ------------------
  212|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  213|     71|		if (!fu_firmware_parse_bytes(img,
  ------------------
  |  Branch (213:7): [True: 11, False: 60]
  ------------------
  214|     71|					     img_blob,
  215|     71|					     0x0,
  216|     71|					     flags | FU_FIRMWARE_PARSE_FLAG_NO_SEARCH,
  217|     71|					     error))
  218|     11|			return FALSE;
  ------------------
  |  |  925|     11|#define	FALSE	(0)
  ------------------
  219|     60|		if (!fu_firmware_add_image(firmware, img, error))
  ------------------
  |  Branch (219:7): [True: 0, False: 60]
  ------------------
  220|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  221|     60|		if (fu_firmware_get_size(img) == 0) {
  ------------------
  |  Branch (221:7): [True: 0, False: 60]
  ------------------
  222|      0|			g_set_error_literal(error,
  223|      0|					    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  224|      0|					    FWUPD_ERROR_NOT_SUPPORTED,
  225|      0|					    "read no bytes from uSWID child");
  226|      0|			return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  227|      0|		}
  228|     60|		offset_tmp += fu_firmware_get_size(img);
  229|     60|	}
  230|       |
  231|       |	/* success */
  232|      2|	return TRUE;
  ------------------
  |  |  929|      2|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      2|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  233|     13|}
fu-uswid-firmware.c:fu_uswid_firmware_format_to_gtype:
   68|      3|{
   69|      3|	if (format == FU_USWID_PAYLOAD_FORMAT_COSWID)
  ------------------
  |  Branch (69:6): [True: 1, False: 2]
  ------------------
   70|      1|		return FU_TYPE_COSWID_FIRMWARE;
  ------------------
  |  |   13|      1|#define FU_TYPE_COSWID_FIRMWARE (fu_coswid_firmware_get_type())
  ------------------
   71|      2|	if (format == FU_USWID_PAYLOAD_FORMAT_CYCLONEDX)
  ------------------
  |  Branch (71:6): [True: 2, False: 0]
  ------------------
   72|      2|		return FU_TYPE_FIRMWARE;
  ------------------
  |  |   18|      2|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
   73|      0|	if (format == FU_USWID_PAYLOAD_FORMAT_SPDX)
  ------------------
  |  Branch (73:6): [True: 0, False: 0]
  ------------------
   74|      0|		return FU_TYPE_FIRMWARE;
  ------------------
  |  |   18|      0|#define FU_TYPE_FIRMWARE (fu_firmware_get_type())
  ------------------
   75|      0|	g_set_error(error,
   76|      0|		    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
   77|      0|		    FWUPD_ERROR_NOT_SUPPORTED,
   78|      0|		    "format 0x%x is not supported",
   79|      0|		    format);
   80|      0|	return G_TYPE_INVALID;
  ------------------
  |  |   65|      0|#define G_TYPE_INVALID			G_TYPE_MAKE_FUNDAMENTAL (0)
  |  |  ------------------
  |  |  |  |  227|      0|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      0|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   81|      0|}
fu-uswid-firmware.c:fu_uswid_firmware_write:
  237|      2|{
  238|      2|	FuUswidFirmware *self = FU_USWID_FIRMWARE(firmware);
  239|      2|	FuUswidFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   38|      2|#define GET_PRIVATE(o) (fu_uswid_firmware_get_instance_private(o))
  ------------------
  240|      2|	FuUswidHeaderFlags flags = FU_USWID_HEADER_FLAG_NONE;
  241|      2|	g_autoptr(FuStructUswid) st = fu_struct_uswid_new();
  ------------------
  |  | 1381|      2|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      2|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  242|      2|	g_autoptr(GByteArray) payload = g_byte_array_new();
  ------------------
  |  | 1381|      2|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      2|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  243|      2|	g_autoptr(GBytes) payload_blob = NULL;
  ------------------
  |  | 1381|      2|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      2|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  244|      2|	g_autoptr(GPtrArray) images = fu_firmware_get_images(firmware);
  ------------------
  |  | 1381|      2|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      2|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  245|       |
  246|       |	/* sanity check */
  247|      2|	if (priv->hdrver > FU_STRUCT_USWID_DEFAULT_HDRVER) {
  ------------------
  |  |  116|      2|#define FU_STRUCT_USWID_DEFAULT_HDRVER 0x04
  ------------------
  |  Branch (247:6): [True: 0, False: 2]
  ------------------
  248|      0|		g_set_error(error,
  249|      0|			    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  250|      0|			    FWUPD_ERROR_NOT_SUPPORTED,
  251|      0|			    "no idea how to write header format 0x%02x",
  252|      0|			    priv->hdrver);
  253|      0|		return NULL;
  254|      0|	}
  255|       |
  256|       |	/* generate early so we know the size */
  257|      4|	for (guint i = 0; i < images->len; i++) {
  ------------------
  |  Branch (257:20): [True: 2, False: 2]
  ------------------
  258|      2|		FuFirmware *img = g_ptr_array_index(images, i);
  ------------------
  |  |  149|      2|#define    g_ptr_array_index(array,index_) ((array)->pdata)[index_]
  ------------------
  259|      2|		g_autoptr(GByteArray) buf_tmp = fu_firmware_write_array(img, error);
  ------------------
  |  | 1381|      2|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      2|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  260|      2|		if (buf_tmp == NULL)
  ------------------
  |  Branch (260:7): [True: 0, False: 2]
  ------------------
  261|      0|			return NULL;
  262|      2|		fu_byte_array_append_array(payload, buf_tmp);
  263|      2|	}
  264|       |
  265|       |	/* compression flag */
  266|      2|	if (priv->compression != FU_USWID_PAYLOAD_COMPRESSION_NONE)
  ------------------
  |  Branch (266:6): [True: 0, False: 2]
  ------------------
  267|      0|		flags |= FU_USWID_HEADER_FLAG_COMPRESSED;
  268|       |
  269|       |	/* compression format */
  270|      2|	if (priv->compression == FU_USWID_PAYLOAD_COMPRESSION_ZLIB) {
  ------------------
  |  Branch (270:6): [True: 0, False: 2]
  ------------------
  271|      0|		g_autoptr(FuInputStream) istream1 = NULL;
  ------------------
  |  | 1381|      0|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  272|      0|		g_autoptr(FuInputStream) istream2 = NULL;
  ------------------
  |  | 1381|      0|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  273|       |
  274|      0|		istream1 = fu_memory_input_stream_new_from_data(payload->data, payload->len, NULL);
  275|      0|		istream2 = fu_compressor_stream_new_compress(istream1,
  276|      0|							     FWUPD_COMPRESSOR_FORMAT_ZLIB,
  277|      0|							     error);
  278|      0|		if (istream2 == NULL)
  ------------------
  |  Branch (278:7): [True: 0, False: 0]
  ------------------
  279|      0|			return NULL;
  280|      0|		payload_blob = fu_input_stream_read_bytes(istream2, 0, G_MAXSIZE, NULL, error);
  ------------------
  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  ------------------
  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  ------------------
  ------------------
  281|      0|		if (payload_blob == NULL)
  ------------------
  |  Branch (281:7): [True: 0, False: 0]
  ------------------
  282|      0|			return NULL;
  283|      2|	} else if (priv->compression == FU_USWID_PAYLOAD_COMPRESSION_LZMA) {
  ------------------
  |  Branch (283:13): [True: 0, False: 2]
  ------------------
  284|      0|		g_autoptr(GBytes) payload_tmp = g_bytes_new(payload->data, payload->len);
  ------------------
  |  | 1381|      0|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  285|      0|		payload_blob = fu_lzma_compress_bytes(payload_tmp, error);
  286|      0|		if (payload_blob == NULL)
  ------------------
  |  Branch (286:7): [True: 0, False: 0]
  ------------------
  287|      0|			return NULL;
  288|      2|	} else {
  289|      2|		payload_blob = g_bytes_new(payload->data, payload->len);
  290|      2|	}
  291|       |
  292|       |	/* pack */
  293|      2|	fu_struct_uswid_set_hdrver(st, priv->hdrver);
  294|      2|	fu_struct_uswid_set_payloadsz(st, g_bytes_get_size(payload_blob));
  295|      2|	fu_struct_uswid_set_flags(st, flags);
  296|      2|	fu_struct_uswid_set_compression(st, priv->compression);
  297|      2|	fu_struct_uswid_set_format(st, priv->format);
  298|       |
  299|       |	/* previous headers were smaller in size */
  300|      2|	if (priv->hdrver == 3) {
  ------------------
  |  Branch (300:6): [True: 0, False: 2]
  ------------------
  301|      0|		g_byte_array_set_size(st->buf, st->buf->len - 1);
  302|      2|	} else if (priv->hdrver == 2) {
  ------------------
  |  Branch (302:13): [True: 0, False: 2]
  ------------------
  303|      0|		if (priv->compression != FU_USWID_PAYLOAD_COMPRESSION_NONE &&
  ------------------
  |  Branch (303:7): [True: 0, False: 0]
  ------------------
  304|      0|		    priv->compression != FU_USWID_PAYLOAD_COMPRESSION_ZLIB) {
  ------------------
  |  Branch (304:7): [True: 0, False: 0]
  ------------------
  305|      0|			g_set_error_literal(error,
  306|      0|					    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  307|      0|					    FWUPD_ERROR_NOT_SUPPORTED,
  308|      0|					    "hdrver 0x02 only supports zlib compression");
  309|      0|			return NULL;
  310|      0|		}
  311|      0|		g_byte_array_set_size(st->buf, st->buf->len - 2);
  312|      2|	} else if (priv->hdrver == 1) {
  ------------------
  |  Branch (312:13): [True: 0, False: 2]
  ------------------
  313|      0|		g_byte_array_set_size(st->buf, st->buf->len - 3);
  314|      0|	}
  315|      2|	fu_struct_uswid_set_hdrsz(st, st->buf->len);
  316|       |
  317|       |	/* success */
  318|      2|	fu_byte_array_append_bytes(st->buf, payload_blob);
  319|      2|	return g_steal_pointer(&st->buf);
  ------------------
  |  |  247|      2|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  320|      2|}
fu-uswid-firmware.c:fu_uswid_firmware_add_magic:
  357|     20|{
  358|     20|	fu_firmware_add_magic(firmware,
  359|     20|			      (const guint8 *)FU_STRUCT_USWID_DEFAULT_MAGIC,
  ------------------
  |  |  115|     20|#define FU_STRUCT_USWID_DEFAULT_MAGIC "\x53\x42\x4f\x4d\xd6\xba\x2e\xac\xa3\xe6\x7a\x52\xaa\xee\x3b\xaf"
  ------------------
  360|     20|			      sizeof(fwupd_guid_t),
  361|     20|			      0x0);
  362|     20|}
fu-uswid-firmware.c:fu_uswid_firmware_init:
  366|     20|{
  367|     20|	FuUswidFirmwarePrivate *priv = GET_PRIVATE(self);
  ------------------
  |  |   38|     20|#define GET_PRIVATE(o) (fu_uswid_firmware_get_instance_private(o))
  ------------------
  368|     20|	priv->hdrver = FU_USWID_FIRMWARE_MINIMUM_HDRVER;
  ------------------
  |  |   40|     20|#define FU_USWID_FIRMWARE_MINIMUM_HDRVER 1
  ------------------
  369|     20|	priv->compression = FU_USWID_PAYLOAD_COMPRESSION_NONE;
  370|     20|	priv->format = FU_USWID_PAYLOAD_FORMAT_COSWID;
  371|     20|	fu_firmware_add_flag(FU_FIRMWARE(self), FU_FIRMWARE_FLAG_HAS_STORED_SIZE);
  372|     20|	fu_firmware_add_flag(FU_FIRMWARE(self), FU_FIRMWARE_FLAG_ALWAYS_SEARCH);
  373|     20|}

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

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

_RNvMNtNtCshhFiJze6Khb_5fwupd7streams20partial_input_streamNtB2_18PartialInputStream11from_stream:
   42|      6|    pub fn from_stream(base: Arc<Mutex<dyn ReadSeek + Send>>, offset: usize, size: usize) -> Self {
   43|      6|        Self { base, offset, size }
   44|      6|    }
_RNvXs1_NtNtCshhFiJze6Khb_5fwupd7streams20partial_input_streamNtB5_18PartialInputStreamNtB7_10IsSeekable11is_seekable:
  149|     18|    fn is_seekable(&self) -> bool {
  150|     18|        true
  151|     18|    }
_RNvXs0_NtNtCshhFiJze6Khb_5fwupd7streams20partial_input_streamNtB5_18PartialInputStreamNtNtCsjS9ICikYiHq_3std2io4Seek4seek:
   96|     18|    fn seek(&mut self, pos: SeekFrom) -> io::Result<u64> {
   97|     18|        let mut base = self
   98|     18|            .base
   99|     18|            .lock()
  100|     18|            .map_err(|e| io::Error::other(e.to_string()))?;
  101|       |
  102|     18|        let relative: i64 = match pos {
  103|     18|            SeekFrom::Start(n) => {
  104|     18|                i64::try_from(n).map_err(|_| io::Error::other("invalid seek position"))?
  105|       |            }
  106|      0|            SeekFrom::Current(n) => {
  107|      0|                let base_pos = base.stream_position()?;
  108|      0|                let base_pos = i64::try_from(base_pos)
  109|      0|                    .map_err(|_| io::Error::other("base position i64 overflow"))?;
  110|      0|                let off = i64::try_from(self.offset)
  111|      0|                    .map_err(|_| io::Error::other("offset i64 overflow"))?;
  112|      0|                let rel = base_pos
  113|      0|                    .checked_sub(off)
  114|      0|                    .ok_or(io::Error::other("base position - offset i64 underflow"))?;
  115|       |
  116|      0|                if rel < 0 {
  117|      0|                    return Err(io::Error::other("tell returned invalid position"));
  118|      0|                }
  119|      0|                rel.checked_add(n)
  120|      0|                    .ok_or_else(|| io::Error::other("size overflow"))?
  121|       |            }
  122|      0|            SeekFrom::End(n) => {
  123|      0|                let size =
  124|      0|                    i64::try_from(self.size).map_err(|_| io::Error::other("size i64 overflow"))?;
  125|      0|                size.checked_add(n)
  126|      0|                    .ok_or_else(|| io::Error::other("seek position overflow"))?
  127|       |            }
  128|       |        };
  129|       |
  130|     18|        if relative < 0 {
  131|      0|            return Err(io::Error::new(
  132|      0|                io::ErrorKind::InvalidInput,
  133|      0|                "seek to negative position",
  134|      0|            ));
  135|     18|        }
  136|     18|        let relative = usize::try_from(relative)
  137|     18|            .map_err(|_| io::Error::other("seek position usize overflow"))?;
  138|     18|        let abs = self
  139|     18|            .offset
  140|     18|            .checked_add(relative)
  141|     18|            .ok_or_else(|| io::Error::other("seek position overflow"))?;
  142|       |
  143|     18|        base.seek(SeekFrom::Start(abs as u64))?;
  144|     18|        Ok(relative as u64)
  145|     18|    }
_RNvXs_NtNtCshhFiJze6Khb_5fwupd7streams20partial_input_streamNtB4_18PartialInputStreamNtNtCsjS9ICikYiHq_3std2io4Read4read:
   71|    154|    fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
   72|    154|        let mut base = self
   73|    154|            .base
   74|    154|            .lock()
   75|    154|            .map_err(|e| io::Error::other(e.to_string()))?;
   76|       |        // Can't use relative_pos here because we need to hold the lock
   77|    154|        let base_pos = base.stream_position()?;
   78|    154|        let tell_pos = base_pos
   79|    154|            .checked_sub(self.offset as u64)
   80|    154|            .ok_or_else(|| io::Error::other("tell returned invalid position"))?;
   81|    154|        let tell_pos = usize::try_from(tell_pos)
   82|    154|            .map_err(|_| io::Error::other("tell position usize overflow"))?;
   83|    154|        if tell_pos >= self.size {
   84|      5|            return Ok(0); // EOF
   85|    149|        }
   86|    149|        let remaining = self.size - tell_pos;
   87|    149|        let count = buf.len().min(remaining);
   88|    149|        if count == 0 {
   89|      0|            return Ok(0);
   90|    149|        }
   91|    149|        base.read(&mut buf[..count])
   92|    154|    }

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

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

g_array_sized_new:
  336|    325|{
  337|    325|  GRealArray *array;
  338|       |  
  339|    325|  g_return_val_if_fail (elt_size > 0, NULL);
  ------------------
  |  |  663|    325|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    325|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    325|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    325|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    325|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    325| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    325|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    325|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    325|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 325, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    325|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    325|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    325|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    325|   else                                         \
  |  |  |  |  |  |  |  | 1240|    325|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    325|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    325|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    325|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    325|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 325, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    325|      { } \
  |  |  666|    325|    else \
  |  |  667|    325|      { \
  |  |  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|    325|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    325|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 325]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  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|    325|  array = g_slice_new (GRealArray);
  ------------------
  |  |   48|    325|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
  345|       |
  346|    325|  array->data            = NULL;
  347|    325|  array->len             = 0;
  348|    325|  array->elt_capacity = 0;
  349|    325|  array->zero_terminated = (zero_terminated ? 1 : 0);
  ------------------
  |  Branch (349:29): [True: 0, False: 325]
  ------------------
  350|    325|  array->clear           = (clear ? 1 : 0);
  ------------------
  |  Branch (350:29): [True: 0, False: 325]
  ------------------
  351|    325|  array->elt_size        = elt_size;
  352|    325|  array->clear_func      = NULL;
  353|       |
  354|    325|  g_atomic_ref_count_init (&array->ref_count);
  355|       |
  356|    325|  if (array->zero_terminated || reserved_size != 0)
  ------------------
  |  Branch (356:7): [True: 0, False: 325]
  |  Branch (356:33): [True: 2, False: 323]
  ------------------
  357|      2|    {
  358|      2|      g_array_maybe_expand (array, reserved_size);
  359|      2|      g_assert (array->data != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  360|      2|      g_array_zero_terminate (array);
  ------------------
  |  |  114|      2|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|      2|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 2]
  |  |  ------------------
  |  |  116|      2|    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|      2|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  361|      2|    }
  362|       |
  363|    325|  return (GArray*) array;
  364|    325|}
g_array_unref:
  459|    188|{
  460|    188|  GRealArray *rarray = (GRealArray*) array;
  461|    188|  g_return_if_fail (array);
  ------------------
  |  |  650|    188|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    188|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    188|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    188|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    188|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 188, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    188|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    188|   else                                         \
  |  |  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 188, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    188|      { } \
  |  |  653|    188|    else \
  |  |  654|    188|      { \
  |  |  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|    188|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    188|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 188]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  462|       |
  463|    188|  if (g_atomic_ref_count_dec (&rarray->ref_count))
  ------------------
  |  Branch (463:7): [True: 188, False: 0]
  ------------------
  464|    188|    array_free (rarray, FREE_SEGMENT);
  465|    188|}
g_array_free:
  513|    137|{
  514|    137|  GRealArray *array = (GRealArray*) farray;
  515|    137|  ArrayFreeFlags flags;
  516|       |
  517|    137|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|    137|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    137|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    137|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    137|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    137|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    137| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    137|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    137|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    137|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 137, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    137|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    137|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    137|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    137|   else                                         \
  |  |  |  |  |  |  |  | 1240|    137|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    137|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    137|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    137|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    137|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 137, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    137|      { } \
  |  |  666|    137|    else \
  |  |  667|    137|      { \
  |  |  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|    137|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    137|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 137]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  518|       |
  519|    137|  flags = (free_segment ? FREE_SEGMENT : 0);
  ------------------
  |  Branch (519:12): [True: 0, False: 137]
  ------------------
  520|       |
  521|       |  /* if others are holding a reference, preserve the wrapper but do free/return the data */
  522|    137|  if (!g_atomic_ref_count_dec (&array->ref_count))
  ------------------
  |  Branch (522:7): [True: 0, False: 137]
  ------------------
  523|      0|    flags |= PRESERVE_WRAPPER;
  524|       |
  525|    137|  return array_free (array, flags);
  526|    137|}
g_array_append_vals:
  592|  2.01k|{
  593|  2.01k|  GRealArray *array = (GRealArray*) farray;
  594|       |
  595|  2.01k|  g_return_val_if_fail (array, 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  596|       |
  597|  2.01k|  if (len == 0)
  ------------------
  |  Branch (597:7): [True: 0, False: 2.01k]
  ------------------
  598|      0|    return farray;
  599|       |
  600|  2.01k|  g_array_maybe_expand (array, len);
  601|       |
  602|  2.01k|  memcpy (g_array_elt_pos (array, array->len), data, 
  ------------------
  |  |  111|  2.01k|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  ------------------
  |  |  |  |  110|  2.01k|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  ------------------
  ------------------
  603|  2.01k|          g_array_elt_len (array, len));
  ------------------
  |  |  110|  2.01k|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  ------------------
  604|       |
  605|  2.01k|  array->len += len;
  606|       |
  607|  2.01k|  g_array_zero_terminate (array);
  ------------------
  |  |  114|  2.01k|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|  2.01k|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|  2.01k|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 2.01k]
  |  |  ------------------
  |  |  116|  2.01k|    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|  2.01k|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.01k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.01k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  608|       |
  609|  2.01k|  return farray;
  610|  2.01k|}
g_array_set_size:
  759|      2|{
  760|      2|  GRealArray *array = (GRealArray*) farray;
  761|       |
  762|      2|  g_return_val_if_fail (array, 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  763|       |
  764|      2|  if (length > array->len)
  ------------------
  |  Branch (764:7): [True: 2, False: 0]
  ------------------
  765|      2|    {
  766|      2|      g_array_maybe_expand (array, length - array->len);
  767|       |      
  768|      2|      if (array->clear)
  ------------------
  |  Branch (768:11): [True: 0, False: 2]
  ------------------
  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|      2|    }
  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|      2|  array->len = length;
  775|       |  
  776|      2|  g_array_zero_terminate (array);
  ------------------
  |  |  114|      2|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|      2|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|      2|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 2]
  |  |  ------------------
  |  |  116|      2|    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|      2|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  777|       |  
  778|      2|  return farray;
  779|      2|}
g_array_remove_range:
  876|    102|{
  877|    102|  GRealArray *array = (GRealArray*) farray;
  878|       |
  879|    102|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  880|    102|  g_return_val_if_fail (index_ <= array->len, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  881|    102|  g_return_val_if_fail (index_ <= G_MAXUINT - length, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  882|    102|  g_return_val_if_fail (index_ + length <= array->len, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  883|       |
  884|    102|  if (array->clear_func != NULL)
  ------------------
  |  Branch (884:7): [True: 0, False: 102]
  ------------------
  885|      0|    {
  886|      0|      guint i;
  887|       |
  888|      0|      for (i = 0; i < length; i++)
  ------------------
  |  Branch (888:19): [True: 0, False: 0]
  ------------------
  889|      0|        array->clear_func (g_array_elt_pos (array, index_ + 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))
  |  |  ------------------
  ------------------
  890|      0|    }
  891|       |
  892|    102|  if (index_ + length != array->len)
  ------------------
  |  Branch (892:7): [True: 102, False: 0]
  ------------------
  893|    102|    memmove (g_array_elt_pos (array, index_),
  ------------------
  |  |  111|    102|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  ------------------
  |  |  |  |  110|    102|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  ------------------
  ------------------
  894|    102|             g_array_elt_pos (array, index_ + length),
  ------------------
  |  |  111|    102|#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i)))
  |  |  ------------------
  |  |  |  |  110|    102|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  |  |  ------------------
  ------------------
  895|    102|             (array->len - (index_ + length)) * array->elt_size);
  896|       |
  897|    102|  array->len -= length;
  898|    102|  if (G_UNLIKELY (g_mem_gc_friendly))
  ------------------
  |  | 1245|    102|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 102]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    102|      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|    102|   else                                         \
  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 102]
  |  |  ------------------
  ------------------
  899|      0|    g_array_elt_zero (array, array->len, length);
  ------------------
  |  |  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))
  |  |  ------------------
  ------------------
  900|    102|  else
  901|    102|    g_array_zero_terminate (array);
  ------------------
  |  |  114|    102|#define g_array_zero_terminate(array) G_STMT_START{                     \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  115|    102|  if ((array)->zero_terminated)                                         \
  |  |  ------------------
  |  |  |  Branch (115:7): [True: 0, False: 102]
  |  |  ------------------
  |  |  116|    102|    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|    102|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  902|       |
  903|    102|  return farray;
  904|    102|}
g_ptr_array_new_with_free_func:
 1616|    599|{
 1617|    599|  return ptr_array_new (0, element_free_func, FALSE);
  ------------------
  |  |  925|    599|#define	FALSE	(0)
  ------------------
 1618|    599|}
g_ptr_array_unref:
 1767|    599|{
 1768|    599|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 1769|       |
 1770|    599|  g_return_if_fail (array);
  ------------------
  |  |  650|    599|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    599|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    599|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    599|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    599|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    599| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    599|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    599|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    599|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 599, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    599|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    599|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    599|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    599|   else                                         \
  |  |  |  |  |  |  |  | 1240|    599|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    599|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    599|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    599|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    599|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 599, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    599|      { } \
  |  |  653|    599|    else \
  |  |  654|    599|      { \
  |  |  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|    599|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    599|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 599]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1771|       |
 1772|    599|  if (g_atomic_ref_count_dec (&rarray->ref_count))
  ------------------
  |  Branch (1772:7): [True: 599, False: 0]
  ------------------
 1773|    599|    ptr_array_free (array, FREE_SEGMENT);
 1774|    599|}
g_ptr_array_add:
 2215|    525|{
 2216|    525|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 2217|       |
 2218|    525|  g_return_if_fail (rarray);
  ------------------
  |  |  650|    525|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    525|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    525|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    525|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    525|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    525| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    525|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    525|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    525|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 525, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    525|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    525|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    525|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    525|   else                                         \
  |  |  |  |  |  |  |  | 1240|    525|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    525|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    525|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    525|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    525|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 525, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    525|      { } \
  |  |  653|    525|    else \
  |  |  654|    525|      { \
  |  |  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|    525|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    525|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 525]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2219|    525|  g_return_if_fail (rarray->len == 0 || (rarray->len != 0 && rarray->pdata != NULL));
  ------------------
  |  |  650|    525|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    525|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    525|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    525|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    525|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    525| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    525|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    525|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.63k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 196, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 196, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 329, False: 196]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    525|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    525|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    525|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    525|   else                                         \
  |  |  |  |  |  |  |  | 1240|    525|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    525|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    525|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    525|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    525|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 525, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    525|      { } \
  |  |  653|    525|    else \
  |  |  654|    525|      { \
  |  |  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|    525|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    525|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 525]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2220|       |
 2221|    525|  g_ptr_array_maybe_expand (rarray, 1u + rarray->null_terminated);
 2222|       |
 2223|    525|  rarray->pdata[rarray->len++] = data;
 2224|       |
 2225|    525|  ptr_array_maybe_null_terminate (rarray);
 2226|    525|}
g_byte_array_new:
 2694|    323|{
 2695|    323|  return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, 0);
  ------------------
  |  |  925|    323|#define	FALSE	(0)
  ------------------
                return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, 0);
  ------------------
  |  |  925|    323|#define	FALSE	(0)
  ------------------
 2696|    323|}
g_byte_array_new_take:
 2741|      2|{
 2742|      2|  GByteArray *array;
 2743|      2|  GRealArray *real;
 2744|       |
 2745|      2|  g_return_val_if_fail (len <= G_MAXUINT, 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2746|      2|  array = g_byte_array_new ();
 2747|      2|  real = (GRealArray *)array;
 2748|      2|  g_assert (real->data == 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2749|      2|  g_assert (real->len == 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2750|       |
 2751|      2|  real->data = data;
 2752|      2|  real->len = len;
 2753|      2|  real->elt_capacity = len;
 2754|       |
 2755|      2|  return array;
 2756|      2|}
g_byte_array_sized_new:
 2771|      2|{
 2772|      2|  return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, reserved_size);
  ------------------
  |  |  925|      2|#define	FALSE	(0)
  ------------------
                return (GByteArray *)g_array_sized_new (FALSE, FALSE, 1, reserved_size);
  ------------------
  |  |  925|      2|#define	FALSE	(0)
  ------------------
 2773|      2|}
g_byte_array_free:
 2791|    137|{
 2792|    137|  return (guint8 *)g_array_free ((GArray *)array, free_segment);
 2793|    137|}
g_byte_array_free_to_bytes:
 2815|    137|{
 2816|    137|  gsize length;
 2817|       |
 2818|    137|  g_return_val_if_fail (array != NULL, NULL);
  ------------------
  |  |  663|    137|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    137|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    137|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    137|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    137|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    137| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    137|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    137|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    137|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 137, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    137|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    137|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    137|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    137|   else                                         \
  |  |  |  |  |  |  |  | 1240|    137|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    137|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    137|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    137|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    137|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 137, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    137|      { } \
  |  |  666|    137|    else \
  |  |  667|    137|      { \
  |  |  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|    137|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    137|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 137]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2819|       |
 2820|    137|  length = array->len;
 2821|    137|  return g_bytes_new_take (g_byte_array_free (array, FALSE), length);
  ------------------
  |  |  925|    137|#define	FALSE	(0)
  ------------------
 2822|    137|}
g_byte_array_unref:
 2854|    188|{
 2855|    188|  g_array_unref ((GArray *)array);
 2856|    188|}
g_byte_array_append:
 2873|  2.01k|{
 2874|  2.01k|  g_array_append_vals ((GArray *)array, (guint8 *)data, len);
 2875|       |
 2876|  2.01k|  return array;
 2877|  2.01k|}
g_byte_array_set_size:
 2912|      2|{
 2913|      2|  g_array_set_size ((GArray *)array, length);
 2914|       |
 2915|      2|  return array;
 2916|      2|}
g_byte_array_remove_range:
 2975|    102|{
 2976|    102|  g_return_val_if_fail (array, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2977|    102|  g_return_val_if_fail (index_ <= array->len, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2978|    102|  g_return_val_if_fail (index_ <= G_MAXUINT - length, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2979|    102|  g_return_val_if_fail (index_ + length <= array->len, NULL);
  ------------------
  |  |  663|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    102|      { } \
  |  |  666|    102|    else \
  |  |  667|    102|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2980|       |
 2981|    102|  return (GByteArray *)g_array_remove_range ((GArray *)array, index_, length);
 2982|    102|}
garray.c:array_free:
  531|    325|{
  532|    325|  gchar *segment;
  533|       |
  534|    325|  if (flags & FREE_SEGMENT)
  ------------------
  |  Branch (534:7): [True: 188, False: 137]
  ------------------
  535|    188|    {
  536|    188|      if (array->clear_func != NULL)
  ------------------
  |  Branch (536:11): [True: 0, False: 188]
  ------------------
  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|    188|      g_free (array->data);
  545|    188|      segment = NULL;
  546|    188|    }
  547|    137|  else
  548|    137|    segment = (gchar*) array->data;
  549|       |
  550|    325|  if (flags & PRESERVE_WRAPPER)
  ------------------
  |  Branch (550:7): [True: 0, False: 325]
  ------------------
  551|      0|    {
  552|      0|      array->data            = NULL;
  553|      0|      array->len             = 0;
  554|      0|      array->elt_capacity = 0;
  555|      0|    }
  556|    325|  else
  557|    325|    {
  558|    325|      g_slice_free1 (sizeof (GRealArray), array);
  559|    325|    }
  560|       |
  561|    325|  return segment;
  562|    325|}
garray.c:g_array_maybe_expand:
 1053|  2.02k|{
 1054|  2.02k|  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|  2.02k|  max_len = MIN (G_MAXSIZE / 2 / array->elt_size, G_MAXUINT) - array->zero_terminated;
  ------------------
  |  |  936|  2.02k|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 0, False: 2.02k]
  |  |  ------------------
  ------------------
 1062|       |
 1063|       |  /* Detect potential overflow */
 1064|  2.02k|  if G_UNLIKELY ((max_len - array->len) < len)
  ------------------
  |  | 1245|  2.02k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  2.02k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.02k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.02k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.02k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.02k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2.02k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.02k|      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.02k|   else                                         \
  |  |  |  |  |  | 1240|  2.02k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.02k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.02k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  2.02k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.02k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.02k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.02k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 2.02k]
  |  |  ------------------
  ------------------
 1065|  2.02k|    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|  2.02k|  want_len = array->len + len + array->zero_terminated;
 1068|  2.02k|  if (want_len > array->elt_capacity)
  ------------------
  |  Branch (1068:7): [True: 828, False: 1.19k]
  ------------------
 1069|    828|    {
 1070|    828|      gsize want_alloc = g_nearest_pow (g_array_elt_len (array, want_len));
  ------------------
  |  |  110|    828|#define g_array_elt_len(array,i) ((gsize)(array)->elt_size * (i))
  ------------------
 1071|    828|      g_assert (want_alloc >= g_array_elt_len (array, want_len));
  ------------------
  |  |  275|    828|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    828|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    828|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    828|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    828|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    828| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    828|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    828|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    828|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 828, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    828|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    828|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    828|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    828|   else                                         \
  |  |  |  |  |  |  |  | 1240|    828|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    828|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    828|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    828|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    828|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 828, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    828|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    828|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    828|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 828]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1072|    828|      want_alloc = MAX (want_alloc, MIN_ARRAY_SIZE);
  ------------------
  |  |  933|    828|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 792, False: 36]
  |  |  ------------------
  ------------------
 1073|       |
 1074|    828|      array->data = g_realloc (array->data, want_alloc);
 1075|       |
 1076|    828|      if (G_UNLIKELY (g_mem_gc_friendly))
  ------------------
  |  | 1245|    828|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    828|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    828| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    828|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    828|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    828|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 828]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    828|      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|    828|   else                                         \
  |  |  |  |  |  | 1240|    828|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    828|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    828|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    828|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    828|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    828|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    828|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 828]
  |  |  ------------------
  ------------------
 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|    828|      array->elt_capacity = MIN (want_alloc / array->elt_size, G_MAXUINT);
  ------------------
  |  |  936|    828|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 828, False: 0]
  |  |  ------------------
  ------------------
 1081|    828|    }
 1082|  2.02k|}
garray.c:ptr_array_new:
 1131|    599|{
 1132|    599|  GRealPtrArray *array;
 1133|       |
 1134|    599|  array = g_slice_new (GRealPtrArray);
  ------------------
  |  |   48|    599|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
 1135|       |
 1136|    599|  array->pdata = NULL;
 1137|    599|  array->len = 0;
 1138|    599|  array->alloc = 0;
 1139|    599|  array->null_terminated = null_terminated ? 1 : 0;
  ------------------
  |  Branch (1139:28): [True: 0, False: 599]
  ------------------
 1140|    599|  array->element_free_func = element_free_func;
 1141|       |
 1142|    599|  g_atomic_ref_count_init (&array->ref_count);
 1143|       |
 1144|    599|  if (reserved_size != 0)
  ------------------
  |  Branch (1144:7): [True: 0, False: 599]
  ------------------
 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|    599|  return (GPtrArray *) array;
 1163|    599|}
garray.c:ptr_array_maybe_null_terminate:
 1122|    525|{
 1123|    525|  if (G_UNLIKELY (rarray->null_terminated))
  ------------------
  |  | 1245|    525|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    525|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    525| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    525|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    525|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    525|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 525]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    525|      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|    525|   else                                         \
  |  |  |  |  |  | 1240|    525|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    525|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    525|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    525|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    525|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    525|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    525|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 525]
  |  |  ------------------
  ------------------
 1124|      0|    rarray->pdata[rarray->len] = NULL;
 1125|    525|}
garray.c:ptr_array_free:
 1831|    599|{
 1832|    599|  GRealPtrArray *rarray = (GRealPtrArray *)array;
 1833|    599|  gpointer *segment;
 1834|       |
 1835|    599|  if (flags & FREE_SEGMENT)
  ------------------
  |  Branch (1835:7): [True: 599, False: 0]
  ------------------
 1836|    599|    {
 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|    599|      gpointer *stolen_pdata = g_steal_pointer (&rarray->pdata);
  ------------------
  |  |  247|    599|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
 1844|    599|      if (rarray->element_free_func != NULL)
  ------------------
  |  Branch (1844:11): [True: 599, False: 0]
  ------------------
 1845|    599|        {
 1846|    599|          guint i;
 1847|       |
 1848|  1.12k|          for (i = 0; i < rarray->len; ++i)
  ------------------
  |  Branch (1848:23): [True: 525, False: 599]
  ------------------
 1849|    525|            rarray->element_free_func (stolen_pdata[i]);
 1850|    599|        }
 1851|       |
 1852|    599|      g_free (stolen_pdata);
 1853|    599|      segment = NULL;
 1854|    599|    }
 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|    599|  if (flags & PRESERVE_WRAPPER)
  ------------------
  |  Branch (1862:7): [True: 0, False: 599]
  ------------------
 1863|      0|    {
 1864|      0|      rarray->pdata = NULL;
 1865|      0|      rarray->len = 0;
 1866|      0|      rarray->alloc = 0;
 1867|      0|    }
 1868|    599|  else
 1869|    599|    {
 1870|    599|      g_slice_free1 (sizeof (GRealPtrArray), rarray);
 1871|    599|    }
 1872|       |
 1873|    599|  return segment;
 1874|    599|}
garray.c:g_ptr_array_maybe_expand:
 1879|    525|{
 1880|    525|  guint max_len;
 1881|       |
 1882|       |  /* The maximum array length is derived from following constraints:
 1883|       |   * - The number of bytes must fit into a gsize / 2.
 1884|       |   * - The number of elements must fit into guint.
 1885|       |   */
 1886|    525|  max_len = MIN (G_MAXSIZE / 2 / sizeof (gpointer), G_MAXUINT);
  ------------------
  |  |  936|    525|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [Folded, False: 525]
  |  |  ------------------
  ------------------
 1887|       |
 1888|       |  /* Detect potential overflow */
 1889|    525|  if G_UNLIKELY ((max_len - array->len) < len)
  ------------------
  |  | 1245|    525|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    525|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    525| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    525|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    525|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    525|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 525]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    525|      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|    525|   else                                         \
  |  |  |  |  |  | 1240|    525|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    525|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    525|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    525|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    525|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    525|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    525|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 525]
  |  |  ------------------
  ------------------
 1890|    525|    g_error ("adding %u to array would overflow", len);
  ------------------
  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  354|      0|                        for (;;) ;                   \
  |  |  355|      0|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1891|       |
 1892|    525|  if ((array->len + len) > array->alloc)
  ------------------
  |  Branch (1892:7): [True: 374, False: 151]
  ------------------
 1893|    374|    {
 1894|    374|      guint old_alloc = array->alloc;
 1895|    374|      gsize want_alloc = g_nearest_pow (sizeof (gpointer) * (array->len + len));
 1896|    374|      want_alloc = MAX (want_alloc, MIN_ARRAY_SIZE);
  ------------------
  |  |  933|    374|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 45, False: 329]
  |  |  ------------------
  ------------------
 1897|    374|      array->alloc = MIN (want_alloc / sizeof (gpointer), G_MAXUINT);
  ------------------
  |  |  936|    374|#define MIN(a, b)  (((a) < (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (936:21): [True: 374, False: 0]
  |  |  ------------------
  ------------------
 1898|    374|      array->pdata = g_realloc (array->pdata, want_alloc);
 1899|    374|      if (G_UNLIKELY (g_mem_gc_friendly))
  ------------------
  |  | 1245|    374|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    374|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    374| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    374|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    374|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    374|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 374]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    374|      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|    374|   else                                         \
  |  |  |  |  |  | 1240|    374|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    374|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    374|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    374|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    374|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    374|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    374|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 374]
  |  |  ------------------
  ------------------
 1900|      0|        for ( ; old_alloc < array->alloc; old_alloc++)
  ------------------
  |  Branch (1900:17): [True: 0, False: 0]
  ------------------
 1901|      0|          array->pdata [old_alloc] = NULL;
 1902|    374|    }
 1903|    525|}

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

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

g_bytes_new:
   97|     22|{
   98|     22|  g_return_val_if_fail (data != NULL || size == 0, NULL);
  ------------------
  |  |  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|     44|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 22, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   99|       |
  100|     22|  return g_bytes_new_take (g_memdup2 (data, size), size);
  101|     22|}
g_bytes_new_take:
  127|    159|{
  128|    159|  return g_bytes_new_with_free_func (data, size, g_free, data);
  129|    159|}
g_bytes_new_with_free_func:
  181|    237|{
  182|    237|  GBytes *bytes;
  183|       |
  184|    237|  g_return_val_if_fail (data != NULL || size == 0, NULL);
  ------------------
  |  |  663|    237|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    237|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    237|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    237|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    237| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    237|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    474|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 237, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    237|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    237|   else                                         \
  |  |  |  |  |  |  |  | 1240|    237|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    237|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    237|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 237, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    237|      { } \
  |  |  666|    237|    else \
  |  |  667|    237|      { \
  |  |  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|    237|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  185|       |
  186|    237|  bytes = g_slice_new (GBytes);
  ------------------
  |  |   48|    237|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  ------------------
  187|    237|  bytes->data = data;
  188|    237|  bytes->size = size;
  189|    237|  bytes->free_func = free_func;
  190|    237|  bytes->user_data = user_data;
  191|    237|  g_atomic_ref_count_init (&bytes->ref_count);
  192|       |
  193|    237|  return (GBytes *)bytes;
  194|    237|}
g_bytes_new_from_bytes:
  222|     58|{
  223|     58|  gchar *base;
  224|       |
  225|       |  /* Note that length may be 0. */
  226|     58|  g_return_val_if_fail (bytes != NULL, NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  227|     58|  g_return_val_if_fail (offset <= bytes->size, NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  228|     58|  g_return_val_if_fail (offset + length <= bytes->size, NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  229|       |
  230|       |  /* Avoid an extra GBytes if all bytes were requested */
  231|     58|  if (offset == 0 && length == bytes->size)
  ------------------
  |  Branch (231:7): [True: 0, False: 58]
  |  Branch (231:22): [True: 0, False: 0]
  ------------------
  232|      0|    return g_bytes_ref (bytes);
  233|       |
  234|     58|  base = (gchar *)bytes->data + offset;
  235|       |
  236|       |  /* Avoid referencing intermediate GBytes. In practice, this should
  237|       |   * only loop once.
  238|       |   */
  239|     58|  while (bytes->free_func == (gpointer)g_bytes_unref)
  ------------------
  |  Branch (239:10): [True: 0, False: 58]
  ------------------
  240|      0|    bytes = bytes->user_data;
  241|       |
  242|     58|  g_return_val_if_fail (bytes != NULL, NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  243|     58|  g_return_val_if_fail (base >= (gchar *)bytes->data, NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  244|     58|  g_return_val_if_fail (base <= (gchar *)bytes->data + bytes->size, NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  245|     58|  g_return_val_if_fail (base + length <= (gchar *)bytes->data + bytes->size, NULL);
  ------------------
  |  |  663|     58|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     58|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     58|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     58|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     58|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     58| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     58|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     58|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 58, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     58|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     58|   else                                         \
  |  |  |  |  |  |  |  | 1240|     58|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     58|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     58|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     58|      { } \
  |  |  666|     58|    else \
  |  |  667|     58|      { \
  |  |  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|     58|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     58|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 58]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  246|       |
  247|     58|  return g_bytes_new_with_free_func (base, length,
  248|     58|                                     (GDestroyNotify)g_bytes_unref, g_bytes_ref (bytes));
  249|     58|}
g_bytes_get_data:
  272|    142|{
  273|    142|  g_return_val_if_fail (bytes != NULL, NULL);
  ------------------
  |  |  663|    142|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    142|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    142|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    142|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    142|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    142| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    142|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    142|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    142|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 142, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    142|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    142|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    142|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    142|   else                                         \
  |  |  |  |  |  |  |  | 1240|    142|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    142|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    142|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    142|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    142|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 142, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    142|      { } \
  |  |  666|    142|    else \
  |  |  667|    142|      { \
  |  |  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|    142|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    142|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 142]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  274|    142|  if (size)
  ------------------
  |  Branch (274:7): [True: 91, False: 51]
  ------------------
  275|     91|    *size = bytes->size;
  276|    142|  return bytes->data;
  277|    142|}
g_bytes_get_size:
  293|    159|{
  294|    159|  g_return_val_if_fail (bytes != NULL, 0);
  ------------------
  |  |  663|    159|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    159|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    159|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    159|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    159|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    159| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    159|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    159|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    159|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 159, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    159|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    159|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    159|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    159|   else                                         \
  |  |  |  |  |  |  |  | 1240|    159|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    159|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    159|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    159|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    159|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 159, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    159|      { } \
  |  |  666|    159|    else \
  |  |  667|    159|      { \
  |  |  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|    159|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    159|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 159]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  295|    159|  return bytes->size;
  296|    159|}
g_bytes_ref:
  311|    317|{
  312|    317|  g_return_val_if_fail (bytes != NULL, NULL);
  ------------------
  |  |  663|    317|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    317|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    317|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    317|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    317|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    317| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    317|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    317|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    317|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 317, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    317|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    317|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    317|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    317|   else                                         \
  |  |  |  |  |  |  |  | 1240|    317|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    317|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    317|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    317|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    317|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 317, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    317|      { } \
  |  |  666|    317|    else \
  |  |  667|    317|      { \
  |  |  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|    317|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    317|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 317]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  313|       |
  314|    317|  g_atomic_ref_count_inc (&bytes->ref_count);
  315|       |
  316|    317|  return bytes;
  317|    317|}
g_bytes_unref:
  330|    554|{
  331|    554|  if (bytes == NULL)
  ------------------
  |  Branch (331:7): [True: 0, False: 554]
  ------------------
  332|      0|    return;
  333|       |
  334|    554|  if (g_atomic_ref_count_dec (&bytes->ref_count))
  ------------------
  |  Branch (334:7): [True: 237, False: 317]
  ------------------
  335|    237|    {
  336|    237|      if (bytes->free_func != NULL)
  ------------------
  |  Branch (336:11): [True: 217, False: 20]
  ------------------
  337|    217|        bytes->free_func (bytes->user_data);
  338|    237|      g_slice_free (GBytes, bytes);
  ------------------
  |  |   81|    237|#define g_slice_free(type, mem)                                 \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |   82|    237|G_STMT_START {                                                  \
  |  |   83|    237|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  ------------------
  |  |  |  Branch (83:7): [True: 237, Folded]
  |  |  ------------------
  |  |   84|    237|  else   (void) ((type*) 0 == (mem)); 				\
  |  |   85|    237|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|    237|    }
  340|    554|}
g_bytes_unref_to_data:
  484|      2|{
  485|      2|  gpointer result;
  486|       |
  487|      2|  g_return_val_if_fail (bytes != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  488|      2|  g_return_val_if_fail (size != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  489|       |
  490|       |  /*
  491|       |   * Optimal path: if this is was the last reference, then we can return
  492|       |   * the data from this GBytes without copying.
  493|       |   */
  494|       |
  495|      2|  result = try_steal_and_unref (bytes, g_free, size);
  496|      2|  if (result == NULL)
  ------------------
  |  Branch (496:7): [True: 2, False: 0]
  ------------------
  497|      2|    {
  498|       |      /*
  499|       |       * Copy: Non g_malloc (or compatible) allocator, or static memory,
  500|       |       * so we have to copy, and then unref.
  501|       |       */
  502|      2|      result = g_memdup2 (bytes->data, bytes->size);
  503|      2|      *size = bytes->size;
  504|      2|      g_bytes_unref (bytes);
  505|      2|    }
  506|       |
  507|      2|  return result;
  508|      2|}
g_bytes_unref_to_array:
  532|      2|{
  533|      2|  gpointer data;
  534|      2|  gsize size;
  535|       |
  536|      2|  g_return_val_if_fail (bytes != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  537|       |
  538|      2|  data = g_bytes_unref_to_data (bytes, &size);
  539|      2|  return g_byte_array_new_take (data, size);
  540|      2|}
gbytes.c:try_steal_and_unref:
  442|      2|{
  443|      2|  gpointer result;
  444|       |
  445|      2|  if (bytes->free_func != free_func || bytes->data == NULL ||
  ------------------
  |  Branch (445:7): [True: 0, False: 2]
  |  Branch (445:40): [True: 0, False: 2]
  ------------------
  446|      2|      bytes->user_data != bytes->data)
  ------------------
  |  Branch (446:7): [True: 0, False: 2]
  ------------------
  447|      0|    return NULL;
  448|       |
  449|       |  /* Are we the only reference? */
  450|      2|  if (g_atomic_ref_count_compare (&bytes->ref_count, 1))
  ------------------
  |  Branch (450:7): [True: 0, False: 2]
  ------------------
  451|      0|    {
  452|      0|      *size = bytes->size;
  453|      0|      result = (gpointer)bytes->data;
  454|      0|      g_slice_free (GBytes, bytes);
  ------------------
  |  |   81|      0|#define g_slice_free(type, mem)                                 \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |   82|      0|G_STMT_START {                                                  \
  |  |   83|      0|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  ------------------
  |  |  |  Branch (83:7): [True: 0, Folded]
  |  |  ------------------
  |  |   84|      0|  else   (void) ((type*) 0 == (mem)); 				\
  |  |   85|      0|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  455|      0|      return result;
  456|      0|    }
  457|       |
  458|      2|  return NULL;
  459|      2|}

g_datalist_clear:
  311|    188|{
  312|    188|  GData *data;
  313|    188|  guint i;
  314|       |
  315|    188|  g_return_if_fail (datalist != NULL);
  ------------------
  |  |  650|    188|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    188|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    188|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    188|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    188|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 188, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    188|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    188|   else                                         \
  |  |  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 188, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    188|      { } \
  |  |  653|    188|    else \
  |  |  654|    188|      { \
  |  |  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|    188|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    188|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 188]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|       |
  317|    188|  data = g_datalist_lock_and_get (datalist);
  318|       |
  319|    188|  if (!data)
  ------------------
  |  Branch (319:7): [True: 0, False: 188]
  ------------------
  320|      0|    {
  321|      0|      g_datalist_unlock (datalist);
  322|      0|      return;
  323|      0|    }
  324|       |
  325|    188|  g_datalist_unlock_and_set (datalist, NULL);
  326|       |
  327|    376|  for (i = 0; i < data->len; i++)
  ------------------
  |  Branch (327:15): [True: 188, False: 188]
  ------------------
  328|    188|    {
  329|    188|      if (data->data[i].data && data->data[i].destroy)
  ------------------
  |  Branch (329:11): [True: 188, False: 0]
  |  Branch (329:33): [True: 188, False: 0]
  ------------------
  330|    188|        data->data[i].destroy (data->data[i].data);
  331|    188|    }
  332|       |
  333|    188|  g_free (data);
  334|    188|}
g_datalist_id_set_data_full:
  780|  1.00k|{
  781|  1.00k|  g_return_if_fail (datalist != NULL);
  ------------------
  |  |  650|  1.00k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.00k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.00k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.00k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.00k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.00k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.00k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.00k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.00k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.00k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.00k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.00k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.00k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.00k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.00k|      G_PASTE (_g_boolean_var_, uniq) = 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.00k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.00k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.00k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.00k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.00k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.00k|      { } \
  |  |  653|  1.00k|    else \
  |  |  654|  1.00k|      { \
  |  |  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.00k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.00k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.00k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  782|  1.00k|  if (!data)
  ------------------
  |  Branch (782:7): [True: 752, False: 248]
  ------------------
  783|  1.00k|    g_return_if_fail (destroy_func == NULL);
  ------------------
  |  |  650|    752|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    752|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    752|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    752|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    752|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    752| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    752|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    752|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    752|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 752, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    752|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    752|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    752|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    752|   else                                         \
  |  |  |  |  |  |  |  | 1240|    752|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    752|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    752|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    752|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    752|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 752, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    752|      { } \
  |  |  653|    752|    else \
  |  |  654|    752|      { \
  |  |  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|    752|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    752|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 752]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  784|  1.00k|  if (!key_id)
  ------------------
  |  Branch (784:7): [True: 0, False: 1.00k]
  ------------------
  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|  1.00k|  g_data_set_internal (datalist, key_id, data, destroy_func, NULL);
  793|  1.00k|}
g_datalist_id_remove_no_notify:
  881|     60|{
  882|     60|  gpointer ret_data = NULL;
  883|       |
  884|     60|  g_return_val_if_fail (datalist != NULL, NULL);
  ------------------
  |  |  663|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     60|      { } \
  |  |  666|     60|    else \
  |  |  667|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  885|       |
  886|     60|  if (key_id)
  ------------------
  |  Branch (886:7): [True: 60, False: 0]
  ------------------
  887|     60|    ret_data = g_data_set_internal (datalist, key_id, NULL, (GDestroyNotify) 42, NULL);
  888|       |
  889|     60|  return ret_data;
  890|     60|}
g_datalist_id_get_data:
 1054|    188|{
 1055|    188|  return g_datalist_id_dup_data (datalist, key_id, NULL, NULL);
 1056|    188|}
g_datalist_id_dup_data:
 1105|    188|{
 1106|    188|  gpointer val = NULL;
 1107|    188|  gpointer retval = NULL;
 1108|    188|  GData *d;
 1109|    188|  GDataElt *data;
 1110|       |
 1111|    188|  d = g_datalist_lock_and_get (datalist);
 1112|       |
 1113|    188|  data = datalist_find (d, key_id, NULL);
 1114|    188|  if (data)
  ------------------
  |  Branch (1114:7): [True: 0, False: 188]
  ------------------
 1115|      0|    val = data->data;
 1116|       |
 1117|    188|  if (dup_func)
  ------------------
  |  Branch (1117:7): [True: 0, False: 188]
  ------------------
 1118|      0|    retval = dup_func (val, user_data);
 1119|    188|  else
 1120|    188|    retval = val;
 1121|       |
 1122|    188|  g_datalist_unlock (datalist);
 1123|       |
 1124|    188|  return retval;
 1125|    188|}
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|    306|{
 1456|    306|  g_return_val_if_fail (datalist != NULL, 0);
  ------------------
  |  |  663|    306|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    306|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    306|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    306|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    306|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    306| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    306|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    306|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    306|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 306, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    306|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    306|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    306|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    306|   else                                         \
  |  |  |  |  |  |  |  | 1240|    306|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    306|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    306|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    306|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    306|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 306, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    306|      { } \
  |  |  666|    306|    else \
  |  |  667|    306|      { \
  |  |  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|    306|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    306|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 306]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1457|       |  
 1458|    306|  return G_DATALIST_GET_FLAGS (datalist); /* atomic macro */
  ------------------
  |  |   39|    306|  ((gsize) g_atomic_pointer_get (datalist) & G_DATALIST_FLAGS_MASK)
  |  |  ------------------
  |  |  |  |  127|    306|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    306|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|    306|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    306|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|    306|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    306|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|    306|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    306|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|    306|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|    306|    gapg_temp_newval;                                                      \
  |  |  |  |  133|    306|  }))
  |  |  ------------------
  |  |                 ((gsize) g_atomic_pointer_get (datalist) & G_DATALIST_FLAGS_MASK)
  |  |  ------------------
  |  |  |  |   93|    306|#define G_DATALIST_FLAGS_MASK 0x3
  |  |  ------------------
  ------------------
 1459|    306|}
gdataset.c:g_datalist_lock_and_get:
  142|  1.43k|{
  143|  1.43k|  guintptr ptr;
  144|       |
  145|  1.43k|  g_pointer_bit_lock_and_get ((void **) datalist, DATALIST_LOCK_BIT, &ptr);
  ------------------
  |  |   82|  1.43k|  (G_GNUC_EXTENSION ({                                             \
  |  |  ------------------
  |  |  |  |   62|  1.43k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |   83|  1.43k|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));      \
  |  |  ------------------
  |  |  |  |  871|  1.43k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |   84|  1.43k|    g_pointer_bit_lock_and_get ((address), (lock_bit), (out_ptr)); \
  |  |   85|  1.43k|  }))
  ------------------
  146|  1.43k|  return G_DATALIST_CLEAN_POINTER (ptr);
  ------------------
  |  |   72|  1.43k|  ((GData *) ((gpointer) (((guintptr) (ptr)) & ~((guintptr) G_DATALIST_FLAGS_MASK_INTERNAL))))
  |  |  ------------------
  |  |  |  |   69|  1.43k|#define G_DATALIST_FLAGS_MASK_INTERNAL 0x7
  |  |  ------------------
  ------------------
  147|  1.43k|}
gdataset.c:g_datalist_unlock:
  151|    950|{
  152|       |  g_pointer_bit_unlock ((void **)datalist, DATALIST_LOCK_BIT);
  ------------------
  |  |   94|    950|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    950|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |   95|    950|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));                \
  |  |  ------------------
  |  |  |  |  871|    950|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |   96|    950|    g_pointer_bit_unlock ((address), (lock_bit));                            \
  |  |   97|    950|  }))
  ------------------
  153|    950|}
gdataset.c:g_datalist_unlock_and_set:
  157|    486|{
  158|       |  g_pointer_bit_unlock_and_set ((void **) datalist, DATALIST_LOCK_BIT, ptr, G_DATALIST_FLAGS_MASK_INTERNAL);
  ------------------
  |  |  100|    486|  (G_GNUC_EXTENSION ({                                                            \
  |  |  ------------------
  |  |  |  |   62|    486|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  101|    486|    G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer));                     \
  |  |  ------------------
  |  |  |  |  871|    486|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  102|    486|    g_pointer_bit_unlock_and_set ((address), (lock_bit), (ptr), (preserve_mask)); \
  |  |  103|    486|  }))
  ------------------
  159|    486|}
gdataset.c:g_data_set_internal:
  422|  1.06k|{
  423|  1.06k|  GData *d;
  424|  1.06k|  GData *new_d = NULL;
  425|  1.06k|  GDataElt old, *data;
  426|  1.06k|  guint32 idx;
  427|       |
  428|  1.06k|  d = g_datalist_lock_and_get (datalist);
  429|       |
  430|  1.06k|  data = datalist_find (d, key_id, &idx);
  431|       |
  432|  1.06k|  if (new_data == NULL) /* remove */
  ------------------
  |  Branch (432:7): [True: 812, False: 248]
  ------------------
  433|    812|    {
  434|    812|      if (data)
  ------------------
  |  Branch (434:11): [True: 60, False: 752]
  ------------------
  435|     60|        {
  436|     60|          GData *d_to_free;
  437|       |
  438|     60|          old = *data;
  439|       |
  440|     60|          datalist_remove (d, idx);
  441|     60|          if (datalist_shrink (&d, &d_to_free))
  ------------------
  |  Branch (441:15): [True: 55, False: 5]
  ------------------
  442|     55|            {
  443|     55|              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|     55|              if (dataset && !d)
  ------------------
  |  Branch (448:19): [True: 0, False: 55]
  |  Branch (448:30): [True: 0, False: 0]
  ------------------
  449|      0|                g_dataset_destroy_internal (dataset);
  450|       |
  451|     55|              if (d_to_free)
  ------------------
  |  Branch (451:19): [True: 55, False: 0]
  ------------------
  452|     55|                g_free (d_to_free);
  453|     55|            }
  454|      5|          else
  455|      5|            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|     60|          if (old.destroy && !new_destroy_func)
  ------------------
  |  Branch (464:15): [True: 60, False: 0]
  |  Branch (464:30): [True: 5, False: 55]
  ------------------
  465|      5|            {
  466|      5|              if (dataset)
  ------------------
  |  Branch (466:19): [True: 0, False: 5]
  ------------------
  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|      5|              old.destroy (old.data);
  469|      5|              if (dataset)
  ------------------
  |  Branch (469:19): [True: 0, False: 5]
  ------------------
  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|      5|              old.data = NULL;
  472|      5|            }
  473|       |
  474|     60|          return old.data;
  475|     60|        }
  476|    812|    }
  477|    248|  else
  478|    248|    {
  479|    248|      if (data)
  ------------------
  |  Branch (479:11): [True: 0, False: 248]
  ------------------
  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|    248|      if (datalist_append (&d, key_id, new_data, new_destroy_func))
  ------------------
  |  Branch (509:11): [True: 243, False: 5]
  ------------------
  510|    243|        new_d = d;
  511|    248|    }
  512|       |
  513|  1.00k|  if (new_d)
  ------------------
  |  Branch (513:7): [True: 243, False: 757]
  ------------------
  514|    243|    g_datalist_unlock_and_set (datalist, new_d);
  515|    757|  else
  516|    757|    g_datalist_unlock (datalist);
  517|       |
  518|  1.00k|  return NULL;
  519|       |
  520|  1.06k|}
gdataset.c:datalist_find:
  279|  1.24k|{
  280|  1.24k|  guint32 i;
  281|       |
  282|  1.24k|  if (data)
  ------------------
  |  Branch (282:7): [True: 817, False: 431]
  ------------------
  283|    817|    {
  284|  1.57k|      for (i = 0; i < data->len; i++)
  ------------------
  |  Branch (284:19): [True: 817, False: 757]
  ------------------
  285|    817|        {
  286|    817|          GDataElt *data_elt = &data->data[i];
  287|       |
  288|    817|          if (data_elt->key == key_id)
  ------------------
  |  Branch (288:15): [True: 60, False: 757]
  ------------------
  289|     60|            {
  290|     60|              if (out_idx)
  ------------------
  |  Branch (290:19): [True: 60, False: 0]
  ------------------
  291|     60|                *out_idx = i;
  292|     60|              return data_elt;
  293|     60|            }
  294|    817|        }
  295|    817|    }
  296|  1.18k|  if (out_idx)
  ------------------
  |  Branch (296:7): [True: 1.00k, False: 188]
  ------------------
  297|  1.00k|    *out_idx = G_MAXUINT32;
  ------------------
  |  |   98|  1.00k|#define G_MAXUINT32	((guint32) 0xffffffff)
  ------------------
  298|       |  return NULL;
  299|  1.24k|}
gdataset.c:datalist_remove:
  207|     60|{
  208|       |#if G_ENABLE_DEBUG
  209|       |  g_assert (idx < data->len);
  210|       |#endif
  211|       |
  212|       |  /* g_data_remove_internal() relies on the fact, that this function removes
  213|       |   * the entry similar to g_array_remove_index_fast(). That is, the entries up
  214|       |   * to @idx are left unchanged, and the last entry is moved to position @idx.
  215|       |   * */
  216|       |
  217|     60|  data->len--;
  218|       |
  219|     60|  if (idx != data->len)
  ------------------
  |  Branch (219:7): [True: 5, False: 55]
  ------------------
  220|      5|    data->data[idx] = data->data[data->len];
  221|     60|}
gdataset.c:datalist_shrink:
  225|     60|{
  226|     60|  guint32 alloc_by_4;
  227|     60|  guint32 v;
  228|     60|  GData *d;
  229|       |
  230|     60|  d = *data;
  231|       |
  232|     60|  alloc_by_4 = d->alloc / 4u;
  233|       |
  234|     60|  if (G_LIKELY (d->len > alloc_by_4))
  ------------------
  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 5, False: 55]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     55|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     55|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 5, False: 55]
  |  |  ------------------
  ------------------
  235|      5|    {
  236|       |      /* No shrinking */
  237|      5|      return FALSE;
  ------------------
  |  |  925|      5|#define	FALSE	(0)
  ------------------
  238|      5|    }
  239|       |
  240|     55|  if (d->len == 0)
  ------------------
  |  Branch (240:7): [True: 55, False: 0]
  ------------------
  241|     55|    {
  242|       |      /* The list became empty. We drop the allocated memory altogether. */
  243|       |
  244|       |      /* The caller will free the buffer after releasing the lock, to minimize
  245|       |       * the time we hold the lock. Transfer it out. */
  246|     55|      *d_to_free = d;
  247|     55|      *data = NULL;
  248|     55|      return TRUE;
  ------------------
  |  |  929|     55|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     55|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  249|     55|    }
  250|       |
  251|       |  /* If the buffer is filled not more than 25%. Shrink to double the current length. */
  252|       |
  253|      0|  v = d->len;
  254|      0|  if (v != alloc_by_4)
  ------------------
  |  Branch (254:7): [True: 0, False: 0]
  ------------------
  255|      0|    {
  256|       |      /* d->alloc is a power of two. Usually, we remove one element at a
  257|       |       * time, then we will just reach reach a quarter of that.
  258|       |       *
  259|       |       * However, with g_datalist_id_remove_multiple(), len can be smaller
  260|       |       * at once. In that case, find first the next power of two. */
  261|      0|      v = g_nearest_pow (v);
  262|      0|    }
  263|      0|  v *= 2u;
  264|       |
  265|       |#if G_ENABLE_DEBUG
  266|       |  g_assert (v > d->len);
  267|       |  g_assert (v <= d->alloc / 2u);
  268|       |#endif
  269|       |
  270|      0|  d->alloc = v;
  271|      0|  d = g_realloc (d, G_STRUCT_OFFSET (GData, data) + (v * sizeof (GDataElt)));
  ------------------
  |  |  964|      0|      ((glong) offsetof (struct_type, member))
  ------------------
  272|      0|  *d_to_free = NULL;
  273|      0|  *data = d;
  274|      0|  return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  275|     55|}
gdataset.c:datalist_append:
  163|    248|{
  164|    248|  gboolean reallocated;
  165|    248|  GData *d;
  166|       |
  167|    248|  d = *data;
  168|    248|  if (!d)
  ------------------
  |  Branch (168:7): [True: 243, False: 5]
  ------------------
  169|    243|    {
  170|    243|      d = g_malloc (G_STRUCT_OFFSET (GData, data) + 2u * sizeof (GDataElt));
  ------------------
  |  |  964|    243|      ((glong) offsetof (struct_type, member))
  ------------------
  171|    243|      d->len = 0;
  172|    243|      d->alloc = 2u;
  173|    243|      *data = d;
  174|    243|      reallocated = TRUE;
  ------------------
  |  |  929|    243|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    243|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  175|    243|    }
  176|      5|  else if (d->len == d->alloc)
  ------------------
  |  Branch (176:12): [True: 0, False: 5]
  ------------------
  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|      5|  else
  193|      5|    reallocated = FALSE;
  ------------------
  |  |  925|      5|#define	FALSE	(0)
  ------------------
  194|       |
  195|    248|  d->data[d->len] = (GDataElt){
  196|    248|    .key = key_id,
  197|    248|    .data = new_data,
  198|    248|    .destroy = destroy_func,
  199|    248|  };
  200|    248|  d->len++;
  201|       |
  202|    248|  return reallocated;
  203|    248|}

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

g_error_init:
   49|      2|{
   50|      2|  error_domain_ht = g_hash_table_new (NULL, NULL);
   51|      2|}
g_error_new_valist:
  282|      7|{
  283|      7|  g_return_val_if_fail (format != NULL, NULL);
  ------------------
  |  |  663|      7|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      7|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      7|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      7|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      7|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      7| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      7|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      7|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      7|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      7|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      7|   else                                         \
  |  |  |  |  |  |  |  | 1240|      7|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      7|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      7|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      7|      { } \
  |  |  666|      7|    else \
  |  |  667|      7|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      7|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      7|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  284|       |
  285|       |  /* Historically, GError allowed this (although it was never meant to work),
  286|       |   * and it has significant use in the wild, which g_return_val_if_fail
  287|       |   * would break. It should maybe g_return_val_if_fail in GLib 4.
  288|       |   * (GNOME#660371, GNOME#560482)
  289|       |   */
  290|      7|  g_warn_if_fail (domain != 0);
  ------------------
  |  |  561|      7|  do { \
  |  |  562|      7|    if G_LIKELY (expr) ; \
  |  |  ------------------
  |  |  |  | 1244|      7|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      7|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      7| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      7|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      7|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      7|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      7|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      7|   else                                         \
  |  |  |  |  |  |  |  | 1240|      7|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      7|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      7|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  563|      7|    else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, #expr); \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  564|      7|  } while (0)
  |  |  ------------------
  |  |  |  Branch (564:12): [Folded, False: 7]
  |  |  ------------------
  ------------------
  291|       |
  292|       |  return g_error_new_steal (domain, code, g_strdup_vprintf (format, args), NULL);
  293|      7|}
g_error_new_literal:
  343|      7|{
  344|      7|  g_return_val_if_fail (message != NULL, NULL);
  ------------------
  |  |  663|      7|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      7|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      7|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      7|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      7|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      7| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      7|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      7|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      7|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      7|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      7|   else                                         \
  |  |  |  |  |  |  |  | 1240|      7|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      7|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      7|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      7|      { } \
  |  |  666|      7|    else \
  |  |  667|      7|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      7|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      7|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  345|      7|  g_return_val_if_fail (domain != 0, NULL);
  ------------------
  |  |  663|      7|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      7|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      7|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      7|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      7|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      7| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      7|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      7|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      7|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      7|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      7|   else                                         \
  |  |  |  |  |  |  |  | 1240|      7|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      7|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      7|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      7|      { } \
  |  |  666|      7|    else \
  |  |  667|      7|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      7|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      7|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  346|       |
  347|      7|  return g_error_new_steal (domain, code, g_strdup (message), NULL);
  ------------------
  |  |  324|      7|#define g_strdup(x) g_strdup_inline (x)
  ------------------
  348|      7|}
g_error_free:
  358|     14|{
  359|     14|  gsize private_size;
  360|     14|  ErrorDomainInfo *info;
  361|     14|  guint8 *allocated;
  362|       |
  363|     14|  g_return_if_fail (error != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  364|       |
  365|     14|  g_rw_lock_reader_lock (&error_domain_global);
  366|     14|  info = error_domain_lookup (error->domain);
  367|     14|  if (info != NULL)
  ------------------
  |  Branch (367:7): [True: 0, False: 14]
  ------------------
  368|      0|    {
  369|      0|      GErrorClearFunc clear = info->clear;
  370|       |
  371|      0|      private_size = info->private_size;
  372|      0|      g_rw_lock_reader_unlock (&error_domain_global);
  373|      0|      clear (error);
  374|      0|    }
  375|     14|  else
  376|     14|    {
  377|     14|      g_rw_lock_reader_unlock (&error_domain_global);
  378|     14|      private_size = 0;
  379|     14|    }
  380|       |
  381|     14|  g_free (error->message);
  382|     14|  allocated = ((guint8 *) error) - private_size;
  383|       |  /* See comments in g_type_free_instance in gtype.c to see what this
  384|       |   * magic is about.
  385|       |   */
  386|     14|#ifdef ENABLE_VALGRIND
  387|     14|  if (private_size > 0 && 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]
  |  |  ------------------
  ------------------
  |  Branch (387:7): [True: 0, False: 14]
  ------------------
  388|      0|    {
  389|      0|      private_size += ALIGN_STRUCT (1);
  ------------------
  |  |   74|      0|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |   72|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |   72|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
  390|      0|      allocated -= ALIGN_STRUCT (1);
  ------------------
  |  |   74|      0|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |   72|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |   72|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
  391|      0|      *(gpointer *) (allocated + private_size + sizeof (GError)) = NULL;
  392|      0|      g_slice_free1 (private_size + sizeof (GError) + sizeof (gpointer), allocated);
  393|      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)
  ------------------
  394|      0|      VALGRIND_FREELIKE_BLOCK (error, 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)
  ------------------
  395|      0|    }
  396|     14|  else
  397|     14|#endif
  398|     14|  g_slice_free1 (private_size + sizeof (GError), allocated);
  399|     14|}
g_error_matches:
  454|      7|{
  455|      7|  return error &&
  ------------------
  |  Branch (455:10): [True: 7, False: 0]
  ------------------
  456|      7|    error->domain == domain &&
  ------------------
  |  Branch (456:5): [True: 7, False: 0]
  ------------------
  457|      7|    error->code == code;
  ------------------
  |  Branch (457:5): [True: 7, False: 0]
  ------------------
  458|      7|}
g_set_error:
  481|    118|{
  482|    118|  GError *new;
  483|       |
  484|    118|  va_list args;
  485|       |
  486|    118|  if (err == NULL)
  ------------------
  |  Branch (486:7): [True: 111, False: 7]
  ------------------
  487|    111|    return;
  488|       |
  489|    118|  va_start (args, format);
  490|      7|  new = g_error_new_valist (domain, code, format, args);
  491|      7|  va_end (args);
  492|       |
  493|      7|  if (*err == NULL)
  ------------------
  |  Branch (493:7): [True: 7, False: 0]
  ------------------
  494|      7|    *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|      7|}
g_set_error_literal:
  522|     16|{
  523|     16|  if (err == NULL)
  ------------------
  |  Branch (523:7): [True: 9, False: 7]
  ------------------
  524|      9|    return;
  525|       |
  526|      7|  if (*err == NULL)
  ------------------
  |  Branch (526:7): [True: 7, False: 0]
  ------------------
  527|      7|    *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|      7|}
g_prefix_error:
  621|      6|{
  622|      6|  if (err && *err)
  ------------------
  |  Branch (622:7): [True: 0, False: 6]
  |  Branch (622:14): [True: 0, False: 0]
  ------------------
  623|      0|    {
  624|      0|      va_list ap;
  625|       |
  626|      0|      va_start (ap, format);
  627|      0|      g_error_add_prefix (&(*err)->message, format, ap);
  628|       |      va_end (ap);
  629|      0|    }
  630|      6|}
g_prefix_error_literal:
  645|      2|{
  646|      2|  if (err && *err)
  ------------------
  |  Branch (646:7): [True: 0, False: 2]
  |  Branch (646:14): [True: 0, False: 0]
  ------------------
  647|      0|    {
  648|      0|      gchar *oldstring;
  649|       |
  650|      0|      oldstring = (*err)->message;
  651|       |      (*err)->message = g_strconcat (prefix, oldstring, NULL);
  652|      0|      g_free (oldstring);
  653|      0|    }
  654|      2|}
gerror.c:g_error_new_steal:
  247|     14|{
  248|     14|  ErrorDomainInfo info;
  249|     14|  GError *error = g_error_allocate (domain, &info);
  250|       |
  251|     14|  error->domain = domain;
  252|     14|  error->code = code;
  253|     14|  error->message = message;
  254|       |
  255|     14|  if (info.init != NULL)
  ------------------
  |  Branch (255:7): [True: 0, False: 14]
  ------------------
  256|      0|    info.init (error);
  257|     14|  if (out_info != NULL)
  ------------------
  |  Branch (257:7): [True: 0, False: 14]
  ------------------
  258|      0|    *out_info = info;
  259|       |
  260|     14|  return error;
  261|     14|}
gerror.c:g_error_allocate:
  199|     14|{
  200|     14|  guint8 *allocated;
  201|     14|  GError *error;
  202|     14|  ErrorDomainInfo *info;
  203|     14|  gsize private_size;
  204|       |
  205|     14|  g_rw_lock_reader_lock (&error_domain_global);
  206|     14|  info = error_domain_lookup (domain);
  207|     14|  if (info != NULL)
  ------------------
  |  Branch (207:7): [True: 0, False: 14]
  ------------------
  208|      0|    {
  209|      0|      if (out_info != NULL)
  ------------------
  |  Branch (209:11): [True: 0, False: 0]
  ------------------
  210|      0|        *out_info = *info;
  211|      0|      private_size = info->private_size;
  212|      0|      g_rw_lock_reader_unlock (&error_domain_global);
  213|      0|    }
  214|     14|  else
  215|     14|    {
  216|     14|      g_rw_lock_reader_unlock (&error_domain_global);
  217|     14|      if (out_info != NULL)
  ------------------
  |  Branch (217:11): [True: 14, False: 0]
  ------------------
  218|     14|        memset (out_info, 0, sizeof (*out_info));
  219|     14|      private_size = 0;
  220|     14|    }
  221|       |  /* See comments in g_type_create_instance in gtype.c to see what
  222|       |   * this magic is about.
  223|       |   */
  224|     14|#ifdef ENABLE_VALGRIND
  225|     14|  if (private_size > 0 && 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]
  |  |  ------------------
  ------------------
  |  Branch (225:7): [True: 0, False: 14]
  ------------------
  226|      0|    {
  227|      0|      private_size += ALIGN_STRUCT (1);
  ------------------
  |  |   74|      0|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |   72|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |   72|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
  228|      0|      allocated = g_slice_alloc0 (private_size + sizeof (GError) + sizeof (gpointer));
  229|      0|      *(gpointer *) (allocated + private_size + sizeof (GError)) = allocated + ALIGN_STRUCT (1);
  ------------------
  |  |   74|      0|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |   72|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |   72|      0|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
  230|      0|      VALGRIND_MALLOCLIKE_BLOCK (allocated + private_size, sizeof (GError) + 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)
  ------------------
  231|      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)
  ------------------
  232|      0|    }
  233|     14|  else
  234|     14|#endif
  235|     14|    allocated = g_slice_alloc0 (private_size + sizeof (GError));
  236|       |
  237|     14|  error = (GError *) (allocated + private_size);
  238|     14|  return error;
  239|     14|}
gerror.c:error_domain_lookup:
   66|     28|{
   67|     28|  return g_hash_table_lookup (error_domain_ht,
   68|     28|                              GUINT_TO_POINTER (domain));
  ------------------
  |  |  107|     28|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
   69|     28|}

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|    832|{
 1478|    832|  guint node_index;
 1479|    832|  guint node_hash;
 1480|       |
 1481|    832|  g_return_val_if_fail (hash_table != NULL, NULL);
  ------------------
  |  |  663|    832|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    832|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    832|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    832|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 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: 832, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    832|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    832|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    832|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    832|   else                                         \
  |  |  |  |  |  |  |  | 1240|    832|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#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 (1244:24): [True: 832, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    832|      { } \
  |  |  666|    832|    else \
  |  |  667|    832|      { \
  |  |  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|    832|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    832|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 832]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1482|       |
 1483|    832|  node_index = g_hash_table_lookup_node (hash_table, key, &node_hash);
 1484|       |
 1485|    832|  return HASH_IS_REAL (hash_table->hashes[node_index])
  ------------------
  |  |  185|    832|#define HASH_IS_REAL(h_) ((h_) >= 2)
  |  |  ------------------
  |  |  |  Branch (185:26): [True: 110, False: 722]
  |  |  ------------------
  ------------------
 1486|    832|    ? g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values)
 1487|       |    : NULL;
 1488|    832|}
g_hash_table_insert:
 1600|    270|{
 1601|    270|  return g_hash_table_insert_internal (hash_table, key, value, FALSE);
  ------------------
  |  |  925|    270|#define	FALSE	(0)
  ------------------
 1602|    270|}
g_hash_table_add:
 1660|      1|{
 1661|      1|  return g_hash_table_insert_internal (hash_table, key, key, TRUE);
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1662|      1|}
g_hash_table_foreach:
 2097|      3|{
 2098|      3|  gsize i;
 2099|      3|#ifndef G_DISABLE_ASSERT
 2100|      3|  gint version;
 2101|      3|#endif
 2102|       |
 2103|      3|  g_return_if_fail (hash_table != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2104|      3|  g_return_if_fail (func != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2105|       |
 2106|      3|#ifndef G_DISABLE_ASSERT
 2107|      3|  version = hash_table->version;
 2108|      3|#endif
 2109|       |
 2110|     27|  for (i = 0; i < hash_table->size; i++)
  ------------------
  |  Branch (2110:15): [True: 24, False: 3]
  ------------------
 2111|     24|    {
 2112|     24|      guint node_hash = hash_table->hashes[i];
 2113|     24|      gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, i, hash_table->have_big_keys);
 2114|     24|      gpointer node_value = g_hash_table_fetch_key_or_value (hash_table->values, i, hash_table->have_big_values);
 2115|       |
 2116|     24|      if (HASH_IS_REAL (node_hash))
  ------------------
  |  |  185|     24|#define HASH_IS_REAL(h_) ((h_) >= 2)
  |  |  ------------------
  |  |  |  Branch (185:26): [True: 3, False: 21]
  |  |  ------------------
  ------------------
 2117|      3|        (* func) (node_key, node_value, user_data);
 2118|       |
 2119|     24|#ifndef G_DISABLE_ASSERT
 2120|     24|      g_return_if_fail (version == hash_table->version);
  ------------------
  |  |  650|     24|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     24|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     24|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     24|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     24|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     24| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     24|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     24|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     24|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 24, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     24|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     24|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     24|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     24|   else                                         \
  |  |  |  |  |  |  |  | 1240|     24|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     24|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     24|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     24|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     24|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 24, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     24|      { } \
  |  |  653|     24|    else \
  |  |  654|     24|      { \
  |  |  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|     24|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     24|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 24]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2121|     24|#endif
 2122|     24|    }
 2123|      3|}
g_str_equal:
 2429|    110|{
 2430|    110|  const gchar *string1 = v1;
 2431|    110|  const gchar *string2 = v2;
 2432|       |
 2433|    110|  return strcmp (string1, string2) == 0;
 2434|    110|}
g_str_hash:
 2459|    652|{
 2460|    652|  const signed char *p;
 2461|    652|  guint32 h = 5381;
 2462|       |
 2463|  8.33k|  for (p = v; *p != '\0'; p++)
  ------------------
  |  Branch (2463:15): [True: 7.68k, False: 652]
  ------------------
 2464|  7.68k|    h = (h << 5) + h + *p;
 2465|       |
 2466|    652|  return h;
 2467|    652|}
g_direct_hash:
 2485|    404|{
 2486|    404|  return GPOINTER_TO_UINT (v);
  ------------------
  |  |  104|    404|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 2487|    404|}
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|    268|{
  333|       |#ifndef USE_SMALL_ARRAYS
  334|       |  is_big = TRUE;
  335|       |#endif
  336|    268|  return is_big ? *(((gpointer *) a) + index) : GUINT_TO_POINTER (*(((guint *) a) + index));
  ------------------
  |  |  107|    110|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
  |  Branch (336:10): [True: 158, False: 110]
  ------------------
  337|    268|}
ghash.c:g_hash_table_insert_node:
 1244|    271|{
 1245|    271|  gboolean already_exists;
 1246|    271|  guint old_hash;
 1247|    271|  gpointer key_to_free = NULL;
 1248|    271|  gpointer key_to_keep = NULL;
 1249|    271|  gpointer value_to_free = NULL;
 1250|       |
 1251|    271|  old_hash = hash_table->hashes[node_index];
 1252|    271|  already_exists = HASH_IS_REAL (old_hash);
  ------------------
  |  |  185|    271|#define HASH_IS_REAL(h_) ((h_) >= 2)
  ------------------
 1253|       |
 1254|       |  /* Proceed in three steps.  First, deal with the key because it is the
 1255|       |   * most complicated.  Then consider if we need to split the table in
 1256|       |   * two (because writing the value will result in the set invariant
 1257|       |   * becoming broken).  Then deal with the value.
 1258|       |   *
 1259|       |   * There are three cases for the key:
 1260|       |   *
 1261|       |   *  - entry already exists in table, reusing key:
 1262|       |   *    free the just-passed-in new_key and use the existing value
 1263|       |   *
 1264|       |   *  - entry already exists in table, not reusing key:
 1265|       |   *    free the entry in the table, use the new key
 1266|       |   *
 1267|       |   *  - entry not already in table:
 1268|       |   *    use the new key, free nothing
 1269|       |   *
 1270|       |   * We update the hash at the same time...
 1271|       |   */
 1272|    271|  if (already_exists)
  ------------------
  |  Branch (1272:7): [True: 0, False: 271]
  ------------------
 1273|      0|    {
 1274|       |      /* Note: we must record the old value before writing the new key
 1275|       |       * because we might change the value in the event that the two
 1276|       |       * arrays are shared.
 1277|       |       */
 1278|      0|      value_to_free = g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values);
 1279|       |
 1280|      0|      if (keep_new_key)
  ------------------
  |  Branch (1280:11): [True: 0, False: 0]
  ------------------
 1281|      0|        {
 1282|      0|          key_to_free = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
 1283|      0|          key_to_keep = new_key;
 1284|      0|        }
 1285|      0|      else
 1286|      0|        {
 1287|      0|          key_to_free = new_key;
 1288|      0|          key_to_keep = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
 1289|      0|        }
 1290|      0|    }
 1291|    271|  else
 1292|    271|    {
 1293|    271|      hash_table->hashes[node_index] = key_hash;
 1294|    271|      key_to_keep = new_key;
 1295|    271|    }
 1296|       |
 1297|       |  /* Resize key/value arrays and split table as necessary */
 1298|    271|  g_hash_table_ensure_keyval_fits (hash_table, key_to_keep, new_value);
 1299|    271|  g_hash_table_assign_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys, key_to_keep);
 1300|       |
 1301|       |  /* Step 3: Actually do the write */
 1302|    271|  g_hash_table_assign_key_or_value (hash_table->values, node_index, hash_table->have_big_values, new_value);
 1303|       |
 1304|       |  /* Now, the bookkeeping... */
 1305|    271|  if (!already_exists)
  ------------------
  |  Branch (1305:7): [True: 271, False: 0]
  ------------------
 1306|    271|    {
 1307|    271|      hash_table->nnodes++;
 1308|       |
 1309|    271|      if (HASH_IS_UNUSED (old_hash))
  ------------------
  |  |  183|    271|#define HASH_IS_UNUSED(h_) ((h_) == UNUSED_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  181|    271|#define UNUSED_HASH_VALUE 0
  |  |  ------------------
  |  |  |  Branch (183:28): [True: 271, False: 0]
  |  |  ------------------
  ------------------
 1310|    271|        {
 1311|       |          /* We replaced an empty node, and not a tombstone */
 1312|    271|          hash_table->noccupied++;
 1313|    271|          g_hash_table_maybe_resize (hash_table);
 1314|    271|        }
 1315|       |
 1316|    271|#ifndef G_DISABLE_ASSERT
 1317|    271|      hash_table->version++;
 1318|    271|#endif
 1319|    271|    }
 1320|       |
 1321|    271|  if (already_exists)
  ------------------
  |  Branch (1321:7): [True: 0, False: 271]
  ------------------
 1322|      0|    {
 1323|      0|      if (hash_table->key_destroy_func && !reusing_key)
  ------------------
  |  Branch (1323:11): [True: 0, False: 0]
  |  Branch (1323:43): [True: 0, False: 0]
  ------------------
 1324|      0|        (* hash_table->key_destroy_func) (key_to_free);
 1325|      0|      if (hash_table->value_destroy_func)
  ------------------
  |  Branch (1325:11): [True: 0, False: 0]
  ------------------
 1326|      0|        (* hash_table->value_destroy_func) (value_to_free);
 1327|      0|    }
 1328|       |
 1329|    271|  return !already_exists;
 1330|    271|}
ghash.c:g_hash_table_ensure_keyval_fits:
  899|    271|{
  900|    271|  gboolean is_a_set = (hash_table->keys == hash_table->values);
  901|       |
  902|    271|#ifdef USE_SMALL_ARRAYS
  903|       |
  904|       |  /* Convert from set to map? */
  905|    271|  if (is_a_set)
  ------------------
  |  Branch (905:7): [True: 28, False: 243]
  ------------------
  906|     28|    {
  907|     28|      if (hash_table->have_big_keys)
  ------------------
  |  Branch (907:11): [True: 21, False: 7]
  ------------------
  908|     21|        {
  909|     21|          if (key != value)
  ------------------
  |  Branch (909:15): [True: 0, False: 21]
  ------------------
  910|      0|            hash_table->values = g_memdup2 (hash_table->keys, sizeof (gpointer) * hash_table->size);
  911|       |          /* Keys and values are both big now, so no need for further checks */
  912|     21|          return;
  913|     21|        }
  914|      7|      else
  915|      7|        {
  916|      7|          if (key != value)
  ------------------
  |  Branch (916:15): [True: 5, False: 2]
  ------------------
  917|      5|            {
  918|      5|              hash_table->values = g_memdup2 (hash_table->keys, sizeof (guint) * hash_table->size);
  919|      5|              is_a_set = FALSE;
  ------------------
  |  |  925|      5|#define	FALSE	(0)
  ------------------
  920|      5|            }
  921|      7|        }
  922|     28|    }
  923|       |
  924|       |  /* Make keys big? */
  925|    250|  if (!hash_table->have_big_keys)
  ------------------
  |  Branch (925:7): [True: 7, False: 243]
  ------------------
  926|      7|    {
  927|      7|      hash_table->have_big_keys = g_hash_table_maybe_make_big_keys_or_values (&hash_table->keys, key, hash_table->size);
  928|       |
  929|      7|      if (is_a_set)
  ------------------
  |  Branch (929:11): [True: 2, False: 5]
  ------------------
  930|      2|        {
  931|      2|          hash_table->values = hash_table->keys;
  932|      2|          hash_table->have_big_values = hash_table->have_big_keys;
  933|      2|        }
  934|      7|    }
  935|       |
  936|       |  /* Make values big? */
  937|    250|  if (!is_a_set && !hash_table->have_big_values)
  ------------------
  |  Branch (937:7): [True: 248, False: 2]
  |  Branch (937:20): [True: 127, False: 121]
  ------------------
  938|    127|    {
  939|    127|      hash_table->have_big_values = g_hash_table_maybe_make_big_keys_or_values (&hash_table->values, value, hash_table->size);
  940|    127|    }
  941|       |
  942|       |#else
  943|       |
  944|       |  /* Just split if necessary */
  945|       |  if (is_a_set && key != value)
  946|       |    hash_table->values = g_memdup2 (hash_table->keys, sizeof (gpointer) * hash_table->size);
  947|       |
  948|       |#endif
  949|    250|}
ghash.c:g_hash_table_maybe_make_big_keys_or_values:
  873|    134|{
  874|    134|  if (entry_is_big (v))
  ------------------
  |  Branch (874:7): [True: 10, False: 124]
  ------------------
  875|     10|    {
  876|     10|      guint *a = (guint *) *a_p;
  877|     10|      gpointer *a_new;
  878|     10|      gint i;
  879|       |
  880|     10|      a_new = g_new (gpointer, ht_size);
  ------------------
  |  |  315|     10|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|     10|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     10|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     10|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     10|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     10|	  gpointer __p;						\
  |  |  |  |  264|     10|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 10]
  |  |  |  |  ------------------
  |  |  |  |  265|     10|	    __p = g_##func (__n);				\
  |  |  |  |  266|     10|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 10]
  |  |  |  |  ------------------
  |  |  |  |  267|     10|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     10|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     10|	  else							\
  |  |  |  |  270|     10|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     10|	  __p;							\
  |  |  |  |  272|     10|	}))
  |  |  ------------------
  ------------------
  881|       |
  882|     90|      for (i = 0; i < ht_size; i++)
  ------------------
  |  Branch (882:19): [True: 80, False: 10]
  ------------------
  883|     80|        {
  884|     80|          a_new[i] = GUINT_TO_POINTER (a[i]);
  ------------------
  |  |  107|     80|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
  885|     80|        }
  886|       |
  887|     10|      g_free (a);
  888|     10|      *a_p = a_new;
  889|     10|      return TRUE;
  ------------------
  |  |  929|     10|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     10|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  890|     10|    }
  891|       |
  892|    124|  return FALSE;
  ------------------
  |  |  925|    124|#define	FALSE	(0)
  ------------------
  893|    134|}
ghash.c:entry_is_big:
  867|    134|{
  868|    134|  return (((guintptr) v) >> ((BIG_ENTRY_SIZE - SMALL_ENTRY_SIZE) * 8)) != 0;
  ------------------
  |  |  192|    134|#define BIG_ENTRY_SIZE (SIZEOF_VOID_P)
  |  |  ------------------
  |  |  |  |  408|    134|#define SIZEOF_VOID_P 8
  |  |  ------------------
  ------------------
                return (((guintptr) v) >> ((BIG_ENTRY_SIZE - SMALL_ENTRY_SIZE) * 8)) != 0;
  ------------------
  |  |  193|    134|#define SMALL_ENTRY_SIZE (SIZEOF_INT)
  |  |  ------------------
  |  |  |  |  396|    134|#define SIZEOF_INT 4
  |  |  ------------------
  ------------------
  869|    134|}
ghash.c:g_hash_table_lookup_node:
  408|  1.10k|{
  409|  1.10k|  guint node_index;
  410|  1.10k|  guint node_hash;
  411|  1.10k|  guint hash_value;
  412|  1.10k|  guint first_tombstone = 0;
  413|  1.10k|  gboolean have_tombstone = FALSE;
  ------------------
  |  |  925|  1.10k|#define	FALSE	(0)
  ------------------
  414|  1.10k|  guint step = 0;
  415|       |
  416|  1.10k|  hash_value = hash_table->hash_func (key);
  417|  1.10k|  if (G_UNLIKELY (!HASH_IS_REAL (hash_value)))
  ------------------
  |  | 1245|  1.10k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  1.10k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.10k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.10k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.10k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.10k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1.10k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.10k|      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.10k|   else                                         \
  |  |  |  |  |  | 1240|  1.10k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  1.10k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.10k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.10k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.10k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 1.10k]
  |  |  ------------------
  ------------------
  418|      0|    hash_value = 2;
  419|       |
  420|  1.10k|  *hash_return = hash_value;
  421|       |
  422|  1.10k|  node_index = g_hash_table_hash_to_index (hash_table, hash_value);
  423|  1.10k|  node_hash = hash_table->hashes[node_index];
  424|       |
  425|  2.91k|  while (!HASH_IS_UNUSED (node_hash))
  ------------------
  |  |  183|  2.91k|#define HASH_IS_UNUSED(h_) ((h_) == UNUSED_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  181|  2.91k|#define UNUSED_HASH_VALUE 0
  |  |  ------------------
  ------------------
  |  Branch (425:10): [True: 1.92k, False: 993]
  ------------------
  426|  1.92k|    {
  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.92k|      if (node_hash == hash_value)
  ------------------
  |  Branch (431:11): [True: 110, False: 1.81k]
  ------------------
  432|    110|        {
  433|    110|          gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
  434|       |
  435|    110|          if (hash_table->key_equal_func)
  ------------------
  |  Branch (435:15): [True: 110, False: 0]
  ------------------
  436|    110|            {
  437|    110|              if (hash_table->key_equal_func (node_key, key))
  ------------------
  |  Branch (437:19): [True: 110, False: 0]
  ------------------
  438|    110|                return node_index;
  439|    110|            }
  440|      0|          else if (node_key == key)
  ------------------
  |  Branch (440:20): [True: 0, False: 0]
  ------------------
  441|      0|            {
  442|      0|              return node_index;
  443|      0|            }
  444|    110|        }
  445|  1.81k|      else if (HASH_IS_TOMBSTONE (node_hash) && !have_tombstone)
  ------------------
  |  |  184|  3.63k|#define HASH_IS_TOMBSTONE(h_) ((h_) == TOMBSTONE_HASH_VALUE)
  |  |  ------------------
  |  |  |  |  182|  1.81k|#define TOMBSTONE_HASH_VALUE 1
  |  |  ------------------
  |  |  |  Branch (184:31): [True: 0, False: 1.81k]
  |  |  ------------------
  ------------------
  |  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.81k|      step++;
  452|  1.81k|      node_index += step;
  453|  1.81k|      node_index &= hash_table->mask;
  454|  1.81k|      node_hash = hash_table->hashes[node_index];
  455|  1.81k|    }
  456|       |
  457|    993|  if (have_tombstone)
  ------------------
  |  Branch (457:7): [True: 0, False: 993]
  ------------------
  458|      0|    return first_tombstone;
  459|       |
  460|    993|  return node_index;
  461|    993|}
ghash.c:g_hash_table_hash_to_index:
  373|  1.43k|{
  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|  1.43k|  return (hash * 11) % hash_table->mod;
  379|  1.43k|}
ghash.c:g_hash_table_insert_internal:
 1564|    271|{
 1565|    271|  guint key_hash;
 1566|    271|  guint node_index;
 1567|       |
 1568|    271|  g_return_val_if_fail (hash_table != NULL, FALSE);
  ------------------
  |  |  663|    271|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    271|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    271|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    271|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    271|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    271| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    271|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    271|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    271|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 271, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    271|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    271|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    271|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    271|   else                                         \
  |  |  |  |  |  |  |  | 1240|    271|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    271|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    271|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    271|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    271|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 271, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    271|      { } \
  |  |  666|    271|    else \
  |  |  667|    271|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    271|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    271|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 271]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1569|       |
 1570|    271|  node_index = g_hash_table_lookup_node (hash_table, key, &key_hash);
 1571|       |
 1572|    271|  return g_hash_table_insert_node (hash_table, node_index, key_hash, key, value, keep_new_key, FALSE);
  ------------------
  |  |  925|    271|#define	FALSE	(0)
  ------------------
 1573|    271|}
ghash.c:g_hash_table_assign_key_or_value:
  341|  1.00k|{
  342|       |#ifndef USE_SMALL_ARRAYS
  343|       |  is_big = TRUE;
  344|       |#endif
  345|  1.00k|  if (is_big)
  ------------------
  |  Branch (345:7): [True: 759, False: 250]
  ------------------
  346|    759|    *(((gpointer *) a) + index) = v;
  347|    250|  else
  348|    250|    *(((guint *) a) + index) = GPOINTER_TO_UINT (v);
  ------------------
  |  |  104|    250|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
  349|  1.00k|}
ghash.c:g_hash_table_maybe_resize:
  854|    271|{
  855|    271|  gsize noccupied = hash_table->noccupied;
  856|    271|  gsize size = hash_table->size;
  857|       |
  858|    271|  if ((size > hash_table->nnodes * 4 && size > 1 << HASH_TABLE_MIN_SHIFT) ||
  ------------------
  |  |  179|      7|#define HASH_TABLE_MIN_SHIFT 3  /* 1 << 3 == 8 buckets */
  ------------------
  |  Branch (858:8): [True: 7, False: 264]
  |  Branch (858:41): [True: 0, False: 7]
  ------------------
  859|    271|      (size <= noccupied + (noccupied / 16)))
  ------------------
  |  Branch (859:7): [True: 17, False: 254]
  ------------------
  860|     17|    g_hash_table_resize (hash_table);
  861|    271|}
ghash.c:g_hash_table_resize:
  797|     17|{
  798|     17|  guint32 *reallocated_buckets_bitmap;
  799|     17|  gsize old_size;
  800|     17|  gboolean is_a_set;
  801|       |
  802|     17|  old_size = hash_table->size;
  803|     17|  is_a_set = hash_table->keys == hash_table->values;
  804|       |
  805|       |  /* The outer checks in g_hash_table_maybe_resize() will only consider
  806|       |   * cleanup/resize when the load factor goes below .25 (1/4, ignoring
  807|       |   * tombstones) or above .9375 (15/16, including tombstones).
  808|       |   *
  809|       |   * Once this happens, tombstones will always be cleaned out. If our
  810|       |   * load sans tombstones is greater than .75 (1/1.333, see below), we'll
  811|       |   * take this opportunity to grow the table too.
  812|       |   *
  813|       |   * Immediately after growing, the load factor will be in the range
  814|       |   * .375 .. .469. After shrinking, it will be exactly .5. */
  815|       |
  816|     17|  g_hash_table_set_shift_from_size (hash_table, hash_table->nnodes * 1.333);
  817|       |
  818|     17|  if (hash_table->size > old_size)
  ------------------
  |  Branch (818:7): [True: 17, False: 0]
  ------------------
  819|     17|    {
  820|     17|      realloc_arrays (hash_table, is_a_set);
  821|     17|      memset (&hash_table->hashes[old_size], 0, (hash_table->size - old_size) * sizeof (guint));
  822|       |
  823|     17|      reallocated_buckets_bitmap = g_new0 (guint32, (hash_table->size + 31) / 32);
  ------------------
  |  |  332|     17|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     17|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     17|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     17|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     17|	  gpointer __p;						\
  |  |  |  |  264|     17|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  265|     17|	    __p = g_##func (__n);				\
  |  |  |  |  266|     17|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  267|     17|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     17|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     17|	  else							\
  |  |  |  |  270|     17|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     17|	  __p;							\
  |  |  |  |  272|     17|	}))
  |  |  ------------------
  ------------------
  824|     17|    }
  825|      0|  else
  826|      0|    {
  827|      0|      reallocated_buckets_bitmap = g_new0 (guint32, (old_size + 31) / 32);
  ------------------
  |  |  332|      0|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|      0|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      0|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      0|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      0|	  gpointer __p;						\
  |  |  |  |  264|      0|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|      0|	    __p = g_##func (__n);				\
  |  |  |  |  266|      0|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      0|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (267:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      0|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      0|	  else							\
  |  |  |  |  270|      0|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      0|	  __p;							\
  |  |  |  |  272|      0|	}))
  |  |  ------------------
  ------------------
  828|      0|    }
  829|       |
  830|     17|  if (is_a_set)
  ------------------
  |  Branch (830:7): [True: 2, False: 15]
  ------------------
  831|      2|    resize_set (hash_table, old_size, reallocated_buckets_bitmap);
  832|     15|  else
  833|     15|    resize_map (hash_table, old_size, reallocated_buckets_bitmap);
  834|       |
  835|     17|  g_free (reallocated_buckets_bitmap);
  836|       |
  837|     17|  if (hash_table->size < old_size)
  ------------------
  |  Branch (837:7): [True: 0, False: 17]
  ------------------
  838|      0|    realloc_arrays (hash_table, is_a_set);
  839|       |
  840|     17|  hash_table->noccupied = hash_table->nnodes;
  841|     17|}
ghash.c:g_hash_table_set_shift_from_size:
  311|     17|{
  312|     17|  gint shift;
  313|       |
  314|     17|  shift = g_hash_table_find_closest_shift (size);
  315|     17|  shift = MAX (shift, HASH_TABLE_MIN_SHIFT);
  ------------------
  |  |  933|     17|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 17, False: 0]
  |  |  ------------------
  ------------------
  316|       |
  317|     17|  g_hash_table_set_shift (hash_table, shift);
  318|     17|}
ghash.c:g_hash_table_find_closest_shift:
  300|     17|{
  301|     17|  gint i;
  302|       |
  303|    102|  for (i = 0; n; i++)
  ------------------
  |  Branch (303:15): [True: 85, False: 17]
  ------------------
  304|     85|    n >>= 1;
  305|       |
  306|     17|  return i;
  307|     17|}
ghash.c:realloc_arrays:
  665|     17|{
  666|     17|  hash_table->hashes = g_renew (guint, hash_table->hashes, hash_table->size);
  ------------------
  |  |  346|     17|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|     17|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|     17|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|     17|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|     17|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|     17|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  279|     17|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|     17|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 17]
  |  |  |  |  ------------------
  |  |  |  |  281|     17|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|     17|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|     17|	  else							\
  |  |  |  |  284|     17|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|     17|	  __p;							\
  |  |  |  |  286|     17|	}))
  |  |  ------------------
  ------------------
  667|     17|  hash_table->keys = g_hash_table_realloc_key_or_value_array (hash_table->keys, hash_table->size, hash_table->have_big_keys);
  668|       |
  669|     17|  if (is_a_set)
  ------------------
  |  Branch (669:7): [True: 2, False: 15]
  ------------------
  670|      2|    hash_table->values = hash_table->keys;
  671|     15|  else
  672|     15|    hash_table->values = g_hash_table_realloc_key_or_value_array (hash_table->values, hash_table->size, hash_table->have_big_values);
  673|     17|}
ghash.c:resize_set:
  700|      2|static void fname (GHashTable *hash_table, guint old_size, guint32 *reallocated_buckets_bitmap) \
  701|      2|{                                                                       \
  702|      2|  guint i;                                                              \
  703|      2|                                                                        \
  704|     26|  for (i = 0; i < old_size; i++)                                        \
  ------------------
  |  Branch (704:15): [True: 24, False: 2]
  ------------------
  705|     24|    {                                                                   \
  706|     24|      guint node_hash = hash_table->hashes[i];                          \
  707|     24|      gpointer key, value G_GNUC_UNUSED;                                \
  708|     24|                                                                        \
  709|     24|      if (!HASH_IS_REAL (node_hash))                                    \
  ------------------
  |  |  185|     24|#define HASH_IS_REAL(h_) ((h_) >= 2)
  ------------------
  |  Branch (709:11): [True: 0, False: 24]
  ------------------
  710|     24|        {                                                               \
  711|      0|          /* Clear tombstones */                                        \
  712|      0|          hash_table->hashes[i] = UNUSED_HASH_VALUE;                    \
  ------------------
  |  |  181|      0|#define UNUSED_HASH_VALUE 0
  ------------------
  713|      0|          continue;                                                     \
  714|      0|        }                                                               \
  715|     24|                                                                        \
  716|     24|      /* Skip entries relocated through eviction */                     \
  717|     24|      if (get_status_bit (reallocated_buckets_bitmap, i))               \
  ------------------
  |  Branch (717:11): [True: 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|    823|{
  686|    823|  return (bitmap[index / 32] >> (index % 32)) & 1;
  687|    823|}
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: 5, False: 307]
  ------------------
  710|    312|        {                                                               \
  711|      5|          /* Clear tombstones */                                        \
  712|      5|          hash_table->hashes[i] = UNUSED_HASH_VALUE;                    \
  ------------------
  |  |  181|      5|#define UNUSED_HASH_VALUE 0
  ------------------
  713|      5|          continue;                                                     \
  714|      5|        }                                                               \
  715|    312|                                                                        \
  716|    312|      /* Skip entries relocated through eviction */                     \
  717|    312|      if (get_status_bit (reallocated_buckets_bitmap, i))               \
  ------------------
  |  Branch (717:11): [True: 82, False: 225]
  ------------------
  718|    307|        continue;                                                       \
  719|    307|                                                                        \
  720|    307|      hash_table->hashes[i] = UNUSED_HASH_VALUE;                        \
  ------------------
  |  |  181|    225|#define UNUSED_HASH_VALUE 0
  ------------------
  721|    225|      EVICT_KEYVAL (hash_table, i, NULL, NULL, key, value);             \
  ------------------
  |  |  759|    225|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|    225|#define G_STMT_START  do
  |  |  ------------------
  |  |  760|    225|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  761|    225|    (outvalue) = g_hash_table_evict_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  762|    225|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    225|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 225]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  722|    225|                                                                        \
  723|    225|      for (;;)                                                          \
  724|    305|        {                                                               \
  725|    305|          guint hash_val;                                               \
  726|    305|          guint replaced_hash;                                          \
  727|    305|          guint step = 0;                                               \
  728|    305|                                                                        \
  729|    305|          hash_val = g_hash_table_hash_to_index (hash_table, node_hash); \
  730|    305|                                                                        \
  731|    468|          while (get_status_bit (reallocated_buckets_bitmap, hash_val)) \
  ------------------
  |  Branch (731:18): [True: 163, False: 305]
  ------------------
  732|    305|            {                                                           \
  733|    163|              step++;                                                   \
  734|    163|              hash_val += step;                                         \
  735|    163|              hash_val &= hash_table->mask;                             \
  736|    163|            }                                                           \
  737|    305|                                                                        \
  738|    305|          set_status_bit (reallocated_buckets_bitmap, hash_val);        \
  739|    305|                                                                        \
  740|    305|          replaced_hash = hash_table->hashes[hash_val];                 \
  741|    305|          hash_table->hashes[hash_val] = node_hash;                     \
  742|    305|          if (!HASH_IS_REAL (replaced_hash))                            \
  ------------------
  |  |  185|    305|#define HASH_IS_REAL(h_) ((h_) >= 2)
  ------------------
  |  Branch (742:15): [True: 225, False: 80]
  ------------------
  743|    305|            {                                                           \
  744|    225|              ASSIGN_KEYVAL (hash_table, hash_val, key, value);         \
  ------------------
  |  |  754|    225|#define ASSIGN_KEYVAL(ht, index, key, value) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|    225|#define G_STMT_START  do
  |  |  ------------------
  |  |  755|    225|    g_hash_table_assign_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  756|    225|    g_hash_table_assign_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  757|    225|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    225|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 225]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  745|    225|              break;                                                    \
  746|    225|            }                                                           \
  747|    305|                                                                        \
  748|    305|          node_hash = replaced_hash;                                    \
  749|     80|          EVICT_KEYVAL (hash_table, hash_val, key, value, key, value);  \
  ------------------
  |  |  759|     80|#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|     80|#define G_STMT_START  do
  |  |  ------------------
  |  |  760|     80|    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
  |  |  761|     80|    (outvalue) = g_hash_table_evict_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
  |  |  762|     80|  }G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     80|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 80]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  750|     80|        }                                                               \
  751|    225|    }                                                                   \
  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|  1.68k|{
   96|  1.68k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  1.68k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  1.68k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.68k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.68k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.68k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.68k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.68k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.68k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.68k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.68k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  1.68k|   else                                         \
  |  |  |  |  |  | 1240|  1.68k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  1.68k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.68k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.68k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.68k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 1.68k, False: 0]
  |  |  ------------------
  ------------------
   97|  1.68k|    {
   98|  1.68k|      gpointer mem;
   99|       |
  100|  1.68k|      mem = malloc (n_bytes);
  101|  1.68k|      TRACE (GLIB_MEM_ALLOC((void*) mem, (unsigned int) n_bytes, 0, 0));
  102|  1.68k|      if (mem)
  ------------------
  |  Branch (102:11): [True: 1.68k, False: 0]
  ------------------
  103|  1.68k|	return mem;
  104|       |
  105|  1.68k|      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|  1.68k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.68k|#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|  1.68k|}
g_malloc0:
  128|  2.36k|{
  129|  2.36k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  2.36k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  2.36k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  2.36k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  2.36k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  2.36k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  2.36k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.36k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  2.36k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.36k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.36k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  2.36k|   else                                         \
  |  |  |  |  |  | 1240|  2.36k|      G_PASTE (_g_boolean_var_, uniq) = 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.36k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  2.36k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  2.36k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  2.36k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 2.36k, False: 0]
  |  |  ------------------
  ------------------
  130|  2.36k|    {
  131|  2.36k|      gpointer mem;
  132|       |
  133|  2.36k|      mem = calloc (1, n_bytes);
  134|  2.36k|      TRACE (GLIB_MEM_ALLOC((void*) mem, (unsigned int) n_bytes, 1, 0));
  135|  2.36k|      if (mem)
  ------------------
  |  Branch (135:11): [True: 2.36k, False: 0]
  ------------------
  136|  2.36k|	return mem;
  137|       |
  138|  2.36k|      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.36k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.36k|#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|  2.36k|}
g_realloc:
  166|  1.52k|{
  167|  1.52k|  gpointer newmem;
  168|       |
  169|  1.52k|  if (G_LIKELY (n_bytes))
  ------------------
  |  | 1244|  1.52k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|  1.52k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.52k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.52k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.52k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.52k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.52k, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.52k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.52k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.52k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|  1.52k|   else                                         \
  |  |  |  |  |  | 1240|  1.52k|      G_PASTE (_g_boolean_var_, uniq) = 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.52k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.52k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.52k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.52k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 1.52k, False: 0]
  |  |  ------------------
  ------------------
  170|  1.52k|    {
  171|  1.52k|      newmem = realloc (mem, n_bytes);
  172|  1.52k|      TRACE (GLIB_MEM_REALLOC((void*) newmem, (void*)mem, (unsigned int) n_bytes, 0));
  173|  1.52k|      if (newmem)
  ------------------
  |  Branch (173:11): [True: 1.52k, False: 0]
  ------------------
  174|  1.52k|	return newmem;
  175|       |
  176|  1.52k|      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|  1.52k|                      } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.52k|#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|  1.52k|}
g_free:
  207|  5.89k|{
  208|  5.89k|  free (mem);
  209|  5.89k|  TRACE(GLIB_MEM_FREE((void*) mem));
  210|  5.89k|}
g_free_sized:
  234|  1.61k|{
  235|       |#ifdef HAVE_FREE_SIZED
  236|       |  free_sized (mem, size);
  237|       |#else
  238|  1.61k|  free (mem);
  239|  1.61k|#endif
  240|  1.61k|  TRACE (GLIB_MEM_FREE ((void*) mem));
  241|  1.61k|}
g_malloc_n:
  380|     13|{
  381|     13|  if (SIZE_OVERFLOWS (n_blocks, n_block_bytes))
  ------------------
  |  |  361|     13|#define SIZE_OVERFLOWS(a,b) (G_UNLIKELY ((b) > 0 && (a) > G_MAXSIZE / (b)))
  |  |  ------------------
  |  |  |  | 1245|     13|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     39|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 13]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      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|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (361:29): [True: 0, False: 13]
  |  |  ------------------
  ------------------
  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|     13|  return g_malloc (n_blocks * n_block_bytes);
  388|     13|}
g_malloc0_n:
  407|     33|{
  408|     33|  if (SIZE_OVERFLOWS (n_blocks, n_block_bytes))
  ------------------
  |  |  361|     33|#define SIZE_OVERFLOWS(a,b) (G_UNLIKELY ((b) > 0 && (a) > G_MAXSIZE / (b)))
  |  |  ------------------
  |  |  |  | 1245|     33|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     33|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     33| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     33|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     33|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     99|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 33, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 33]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     33|      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|     33|   else                                         \
  |  |  |  |  |  |  |  | 1240|     33|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     33|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     33|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     33|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     33|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     33|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     33|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (361:29): [True: 0, False: 33]
  |  |  ------------------
  ------------------
  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|     33|  return g_malloc0 (n_blocks * n_block_bytes);
  415|     33|}
g_realloc_n:
  436|    193|{
  437|    193|  if (SIZE_OVERFLOWS (n_blocks, n_block_bytes))
  ------------------
  |  |  361|    193|#define SIZE_OVERFLOWS(a,b) (G_UNLIKELY ((b) > 0 && (a) > G_MAXSIZE / (b)))
  |  |  ------------------
  |  |  |  | 1245|    193|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    193|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    193| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    193|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    193|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    579|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 193, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 193]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    193|      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|    193|   else                                         \
  |  |  |  |  |  |  |  | 1240|    193|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    193|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    193|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    193|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    193|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    193|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    193|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (361:29): [True: 0, False: 193]
  |  |  ------------------
  ------------------
  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|    193|  return g_realloc (mem, n_blocks * n_block_bytes);
  444|    193|}

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

g_logv:
 1150|  1.95k|{
 1151|  1.95k|  gboolean was_fatal = (log_level & G_LOG_FLAG_FATAL) != 0;
 1152|  1.95k|  gboolean was_recursion = (log_level & G_LOG_FLAG_RECURSION) != 0;
 1153|  1.95k|  char buffer[1025], *msg_alloc = NULL;
 1154|  1.95k|  const char *msg;
 1155|  1.95k|  gint i;
 1156|       |
 1157|  1.95k|  log_level &= G_LOG_LEVEL_MASK;
 1158|  1.95k|  if (!log_level)
  ------------------
  |  Branch (1158:7): [True: 0, False: 1.95k]
  ------------------
 1159|      0|    return;
 1160|       |
 1161|  1.95k|  if (log_level & G_LOG_FLAG_RECURSION)
  ------------------
  |  Branch (1161:7): [True: 0, False: 1.95k]
  ------------------
 1162|      0|    {
 1163|       |      /* we use a stack buffer of fixed size, since we're likely
 1164|       |       * in an out-of-memory situation
 1165|       |       */
 1166|      0|      gsize size G_GNUC_UNUSED;
 1167|       |
 1168|      0|      size = _g_vsnprintf (buffer, 1024, format, args);
  ------------------
  |  |   40|      0|#define _g_vsnprintf vsnprintf
  ------------------
 1169|      0|      msg = buffer;
 1170|      0|    }
 1171|  1.95k|  else
 1172|  1.95k|    {
 1173|  1.95k|      msg = format_string (format, args, &msg_alloc);
 1174|  1.95k|    }
 1175|       |
 1176|  1.95k|  if (expected_messages)
  ------------------
  |  Branch (1176:7): [True: 0, False: 1.95k]
  ------------------
 1177|      0|    {
 1178|      0|      GTestExpectedMessage *expected = expected_messages->data;
 1179|       |
 1180|      0|      if (g_strcmp0 (expected->log_domain, log_domain) == 0 &&
  ------------------
  |  Branch (1180:11): [True: 0, False: 0]
  ------------------
 1181|      0|          ((log_level & expected->log_level) == expected->log_level) &&
  ------------------
  |  Branch (1181:11): [True: 0, False: 0]
  ------------------
 1182|      0|          g_pattern_match_simple (expected->pattern, msg))
  ------------------
  |  Branch (1182:11): [True: 0, False: 0]
  ------------------
 1183|      0|        {
 1184|      0|          expected_messages = g_slist_delete_link (expected_messages,
 1185|      0|                                                   expected_messages);
 1186|      0|          g_free (expected->log_domain);
 1187|      0|          g_free (expected->pattern);
 1188|      0|          g_free (expected);
 1189|      0|          g_free (msg_alloc);
 1190|      0|          return;
 1191|      0|        }
 1192|      0|      else if ((log_level & G_LOG_LEVEL_DEBUG) != G_LOG_LEVEL_DEBUG)
  ------------------
  |  Branch (1192:16): [True: 0, False: 0]
  ------------------
 1193|      0|        {
 1194|      0|          gchar level_prefix[STRING_BUFFER_SIZE];
 1195|      0|          gchar *expected_message;
 1196|       |
 1197|      0|          mklevel_prefix (level_prefix, expected->log_level, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1198|      0|          expected_message = g_strdup_printf ("Did not see expected message %s-%s: %s",
 1199|      0|                                              expected->log_domain ? expected->log_domain : "**",
  ------------------
  |  Branch (1199:47): [True: 0, False: 0]
  ------------------
 1200|      0|                                              level_prefix, expected->pattern);
 1201|      0|          g_log_default_handler (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, expected_message, NULL);
 1202|      0|          g_free (expected_message);
 1203|       |
 1204|      0|          log_level |= G_LOG_FLAG_FATAL;
 1205|      0|        }
 1206|      0|    }
 1207|       |
 1208|  3.91k|  for (i = g_bit_nth_msf (log_level, -1); i >= 0; i = g_bit_nth_msf (log_level, i))
  ------------------
  |  |  362|  1.95k|#define g_bit_nth_msf(mask, nth_bit) g_bit_nth_msf_impl(mask, nth_bit)
  ------------------
                for (i = g_bit_nth_msf (log_level, -1); i >= 0; i = g_bit_nth_msf (log_level, i))
  ------------------
  |  |  362|  1.95k|#define g_bit_nth_msf(mask, nth_bit) g_bit_nth_msf_impl(mask, nth_bit)
  ------------------
  |  Branch (1208:43): [True: 1.95k, False: 1.95k]
  ------------------
 1209|  1.95k|    {
 1210|  1.95k|      GLogLevelFlags test_level;
 1211|       |
 1212|  1.95k|      test_level = 1L << i;
 1213|  1.95k|      if (log_level & test_level)
  ------------------
  |  Branch (1213:11): [True: 1.95k, False: 0]
  ------------------
 1214|  1.95k|	{
 1215|  1.95k|	  GLogDomain *domain;
 1216|  1.95k|	  GLogFunc log_func;
 1217|  1.95k|	  GLogLevelFlags domain_fatal_mask;
 1218|  1.95k|	  gpointer data = NULL;
 1219|  1.95k|          gboolean masquerade_fatal = FALSE;
  ------------------
  |  |  925|  1.95k|#define	FALSE	(0)
  ------------------
 1220|  1.95k|          guint depth;
 1221|       |
 1222|  1.95k|	  if (was_fatal)
  ------------------
  |  Branch (1222:8): [True: 0, False: 1.95k]
  ------------------
 1223|      0|	    test_level |= G_LOG_FLAG_FATAL;
 1224|  1.95k|	  if (was_recursion)
  ------------------
  |  Branch (1224:8): [True: 0, False: 1.95k]
  ------------------
 1225|      0|	    test_level |= G_LOG_FLAG_RECURSION;
 1226|       |
 1227|       |	  /* check recursion and lookup handler */
 1228|  1.95k|	  g_mutex_lock (&g_messages_lock);
 1229|  1.95k|          depth = GPOINTER_TO_UINT (g_private_get (&g_log_depth));
  ------------------
  |  |  104|  1.95k|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 1230|  1.95k|	  domain = g_log_find_domain_L (log_domain ? log_domain : "");
  ------------------
  |  Branch (1230:34): [True: 1.95k, False: 0]
  ------------------
 1231|  1.95k|	  if (depth)
  ------------------
  |  Branch (1231:8): [True: 0, False: 1.95k]
  ------------------
 1232|      0|	    test_level |= G_LOG_FLAG_RECURSION;
 1233|  1.95k|	  depth++;
 1234|  1.95k|	  domain_fatal_mask = domain ? domain->fatal_mask : G_LOG_FATAL_MASK;
  ------------------
  |  |   73|  3.91k|#define G_LOG_FATAL_MASK        (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
  ------------------
  |  Branch (1234:24): [True: 0, False: 1.95k]
  ------------------
 1235|  1.95k|	  if ((domain_fatal_mask | g_log_always_fatal) & test_level)
  ------------------
  |  Branch (1235:8): [True: 0, False: 1.95k]
  ------------------
 1236|      0|	    test_level |= G_LOG_FLAG_FATAL;
 1237|  1.95k|	  if (test_level & G_LOG_FLAG_RECURSION)
  ------------------
  |  Branch (1237:8): [True: 0, False: 1.95k]
  ------------------
 1238|      0|	    log_func = _g_log_fallback_handler;
 1239|  1.95k|	  else
 1240|  1.95k|	    log_func = g_log_domain_get_handler_L (domain, test_level, &data);
 1241|  1.95k|	  domain = NULL;
 1242|  1.95k|	  g_mutex_unlock (&g_messages_lock);
 1243|       |
 1244|  1.95k|	  g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
  ------------------
  |  |  107|  1.95k|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 1245|       |
 1246|  1.95k|          log_func (log_domain, test_level, msg, data);
 1247|       |
 1248|  1.95k|          if ((test_level & G_LOG_FLAG_FATAL)
  ------------------
  |  Branch (1248:15): [True: 0, False: 1.95k]
  ------------------
 1249|      0|              && !(test_level & G_LOG_LEVEL_ERROR))
  ------------------
  |  Branch (1249:18): [True: 0, False: 0]
  ------------------
 1250|      0|            {
 1251|      0|              masquerade_fatal = fatal_log_func
  ------------------
  |  Branch (1251:34): [True: 0, False: 0]
  ------------------
 1252|      0|                && !fatal_log_func (log_domain, test_level, msg, fatal_log_data);
  ------------------
  |  Branch (1252:20): [True: 0, False: 0]
  ------------------
 1253|      0|            }
 1254|       |
 1255|  1.95k|          if ((test_level & G_LOG_FLAG_FATAL) && !masquerade_fatal)
  ------------------
  |  Branch (1255:15): [True: 0, False: 1.95k]
  |  Branch (1255:50): [True: 0, False: 0]
  ------------------
 1256|      0|            {
 1257|       |              /* MessageBox is allowed on UWP apps only when building against
 1258|       |               * the debug CRT, which will set -D_DEBUG */
 1259|       |#if defined(G_OS_WIN32) && (defined(_DEBUG) || !defined(G_WINAPI_ONLY_APP))
 1260|       |              if (win32_keep_fatal_message)
 1261|       |                {
 1262|       |                  WCHAR *wide_msg;
 1263|       |
 1264|       |                  wide_msg = g_utf8_to_utf16 (fatal_msg_buf, -1, NULL, NULL, NULL);
 1265|       |
 1266|       |                  MessageBoxW (NULL, wide_msg, NULL,
 1267|       |                               MB_ICONERROR | MB_SETFOREGROUND);
 1268|       |
 1269|       |                  g_free (wide_msg);
 1270|       |                }
 1271|       |#endif
 1272|       |
 1273|      0|              _g_log_abort (!(test_level & G_LOG_FLAG_RECURSION));
 1274|      0|	    }
 1275|       |	  
 1276|  1.95k|	  depth--;
 1277|  1.95k|	  g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
  ------------------
  |  |  107|  1.95k|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 1278|  1.95k|	}
 1279|  1.95k|    }
 1280|       |
 1281|  1.95k|  g_free (msg_alloc);
 1282|  1.95k|}
g_log:
 1311|  1.95k|{
 1312|  1.95k|  va_list args;
 1313|       |  
 1314|  1.95k|  va_start (args, format);
 1315|  1.95k|  g_logv (log_domain, log_level, format, args);
 1316|       |  va_end (args);
 1317|  1.95k|}
g_log_structured_array:
 1835|  1.95k|{
 1836|  1.95k|  GLogWriterFunc writer_func;
 1837|  1.95k|  gpointer writer_user_data;
 1838|  1.95k|  gboolean recursion;
 1839|  1.95k|  guint depth;
 1840|       |
 1841|  1.95k|  if (n_fields == 0)
  ------------------
  |  Branch (1841:7): [True: 0, False: 1.95k]
  ------------------
 1842|      0|    return;
 1843|       |
 1844|       |  /* Check for recursion and look up the writer function. */
 1845|  1.95k|  depth = GPOINTER_TO_UINT (g_private_get (&g_log_structured_depth));
  ------------------
  |  |  104|  1.95k|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 1846|  1.95k|  recursion = (depth > 0);
 1847|       |
 1848|  1.95k|  g_mutex_lock (&g_messages_lock);
 1849|       |
 1850|  1.95k|  writer_func = recursion ? _g_log_writer_fallback : log_writer_func;
  ------------------
  |  Branch (1850:17): [True: 0, False: 1.95k]
  ------------------
 1851|  1.95k|  writer_user_data = log_writer_user_data;
 1852|       |
 1853|  1.95k|  g_mutex_unlock (&g_messages_lock);
 1854|       |
 1855|       |  /* Write the log entry. */
 1856|  1.95k|  g_private_set (&g_log_structured_depth, GUINT_TO_POINTER (++depth));
  ------------------
  |  |  107|  1.95k|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 1857|       |
 1858|  1.95k|  g_assert (writer_func != NULL);
  ------------------
  |  |  275|  1.95k|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.95k|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|  1.95k|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|  1.95k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.95k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.95k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.95k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.95k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.95k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.95k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.95k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.95k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.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|  1.95k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.95k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 1.95k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|  1.95k|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|  1.95k|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.95k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.95k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1859|  1.95k|  writer_func (log_level, fields, n_fields, writer_user_data);
 1860|       |
 1861|  1.95k|  g_private_set (&g_log_structured_depth, GUINT_TO_POINTER (--depth));
  ------------------
  |  |  107|  1.95k|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 1862|       |
 1863|       |  /* Abort if the message was fatal. */
 1864|  1.95k|  if (log_level & G_LOG_FATAL_MASK)
  ------------------
  |  |   73|  1.95k|#define G_LOG_FATAL_MASK        (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
  ------------------
  |  Branch (1864:7): [True: 0, False: 1.95k]
  ------------------
 1865|      0|    _g_log_abort (!(log_level & G_LOG_FLAG_RECURSION));
 1866|  1.95k|}
g_log_writer_default:
 2825|  1.95k|{
 2826|  1.95k|  static gsize initialized = 0;
 2827|  1.95k|  static gboolean stderr_is_journal = FALSE;
  ------------------
  |  |  925|  1.95k|#define	FALSE	(0)
  ------------------
 2828|       |
 2829|  1.95k|  g_return_val_if_fail (fields != NULL, G_LOG_WRITER_UNHANDLED);
  ------------------
  |  |  663|  1.95k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.95k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.95k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.95k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.95k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.95k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.95k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.95k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.95k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.95k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.95k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.95k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.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|  1.95k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.95k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.95k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.95k|      { } \
  |  |  666|  1.95k|    else \
  |  |  667|  1.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|  1.95k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.95k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.95k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2830|  1.95k|  g_return_val_if_fail (n_fields > 0, G_LOG_WRITER_UNHANDLED);
  ------------------
  |  |  663|  1.95k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.95k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.95k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.95k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.95k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.95k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.95k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.95k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.95k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.95k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.95k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.95k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.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|  1.95k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.95k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.95k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.95k|      { } \
  |  |  666|  1.95k|    else \
  |  |  667|  1.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|  1.95k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.95k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.95k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2831|       |
 2832|  1.95k|  if (should_drop_message (log_level, NULL, fields, n_fields))
  ------------------
  |  Branch (2832:7): [True: 1.95k, False: 0]
  ------------------
 2833|  1.95k|    return G_LOG_WRITER_HANDLED;
 2834|       |
 2835|       |  /* Mark messages as fatal if they have a level set in
 2836|       |   * g_log_set_always_fatal().
 2837|       |   */
 2838|      0|  if ((log_level & g_log_always_fatal) && !log_is_old_api (fields, n_fields))
  ------------------
  |  Branch (2838:7): [True: 0, False: 0]
  |  Branch (2838:43): [True: 0, False: 0]
  ------------------
 2839|      0|    log_level |= G_LOG_FLAG_FATAL;
 2840|       |
 2841|       |  /* Try logging to the systemd journal as first choice. */
 2842|      0|  if (g_once_init_enter (&initialized))
  ------------------
  |  |  269|      0|  (G_GNUC_EXTENSION ({                                               \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (269:3): [True: 0, False: 0]
  |  |  ------------------
  |  |  270|      0|    G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer));       \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  271|      0|    (void) (0 ? (gpointer) *(location) : NULL);                      \
  |  |  ------------------
  |  |  |  Branch (271:13): [Folded, False: 0]
  |  |  ------------------
  |  |  272|      0|    (!g_atomic_pointer_get (location) &&                             \
  |  |  ------------------
  |  |  |  |  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|  }))
  |  |  ------------------
  |  |  |  Branch (272:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  273|      0|     g_once_init_enter (location));                                  \
  |  |  ------------------
  |  |  |  Branch (273:6): [True: 0, False: 0]
  |  |  ------------------
  |  |  274|      0|  }))
  ------------------
 2843|      0|    {
 2844|      0|      stderr_is_journal = g_log_writer_is_journald (fileno (stderr));
 2845|      0|      g_once_init_leave (&initialized, TRUE);
  ------------------
  |  |  276|      0|  (G_GNUC_EXTENSION ({                                               \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  277|      0|    G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer));       \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  278|      0|    0 ? (void) (*(location) = (result)) : (void) 0;                  \
  |  |  ------------------
  |  |  |  Branch (278:5): [Folded, False: 0]
  |  |  ------------------
  |  |  279|      0|    g_once_init_leave ((location), (gsize) (result));                \
  |  |  280|      0|  }))
  ------------------
 2846|      0|    }
 2847|       |
 2848|      0|  if (stderr_is_journal &&
  ------------------
  |  Branch (2848:7): [True: 0, False: 0]
  ------------------
 2849|      0|      g_log_writer_journald (log_level, fields, n_fields, user_data) ==
  ------------------
  |  Branch (2849:7): [True: 0, False: 0]
  ------------------
 2850|      0|      G_LOG_WRITER_HANDLED)
 2851|      0|    goto handled;
 2852|       |
 2853|       |  /* FIXME: Add support for the Windows log. */
 2854|       |
 2855|      0|  if (g_log_writer_standard_streams (log_level, fields, n_fields, user_data) ==
  ------------------
  |  Branch (2855:7): [True: 0, False: 0]
  ------------------
 2856|      0|      G_LOG_WRITER_HANDLED)
 2857|      0|    goto handled;
 2858|       |
 2859|      0|  return G_LOG_WRITER_UNHANDLED;
 2860|       |
 2861|      0|handled:
 2862|       |  /* Abort if the message was fatal. */
 2863|      0|  if (log_level & G_LOG_FLAG_FATAL)
  ------------------
  |  Branch (2863:7): [True: 0, False: 0]
  ------------------
 2864|      0|    {
 2865|       |      /* MessageBox is allowed on UWP apps only when building against
 2866|       |       * the debug CRT, which will set -D_DEBUG */
 2867|       |#if defined(G_OS_WIN32) && (defined(_DEBUG) || !defined(G_WINAPI_ONLY_APP))
 2868|       |      if (!g_test_initialized ())
 2869|       |        {
 2870|       |          WCHAR *wide_msg;
 2871|       |
 2872|       |          wide_msg = g_utf8_to_utf16 (fatal_msg_buf, -1, NULL, NULL, NULL);
 2873|       |
 2874|       |          MessageBoxW (NULL, wide_msg, NULL, MB_ICONERROR | MB_SETFOREGROUND);
 2875|       |
 2876|       |          g_free (wide_msg);
 2877|       |        }
 2878|       |#endif /* !G_OS_WIN32 */
 2879|       |
 2880|      0|      _g_log_abort (!(log_level & G_LOG_FLAG_RECURSION));
 2881|      0|    }
 2882|       |
 2883|      0|  return G_LOG_WRITER_HANDLED;
 2884|      0|}
g_log_get_debug_enabled:
 2961|  1.97k|{
 2962|       |  return g_atomic_int_get (&g_log_debug_enabled);
  ------------------
  |  |  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|  }))
  ------------------
 2963|  1.97k|}
g_log_default_handler:
 3318|  1.95k|{
 3319|  1.95k|  GLogField fields[4];
 3320|  1.95k|  int n_fields = 0;
 3321|       |
 3322|       |  /* we can be called externally with recursion for whatever reason */
 3323|  1.95k|  if (log_level & G_LOG_FLAG_RECURSION)
  ------------------
  |  Branch (3323:7): [True: 0, False: 1.95k]
  ------------------
 3324|      0|    {
 3325|      0|      _g_log_fallback_handler (log_domain, log_level, message, unused_data);
 3326|      0|      return;
 3327|      0|    }
 3328|       |
 3329|  1.95k|  fields[0].key = "GLIB_OLD_LOG_API";
 3330|  1.95k|  fields[0].value = "1";
 3331|  1.95k|  fields[0].length = -1;
 3332|  1.95k|  n_fields++;
 3333|       |
 3334|  1.95k|  fields[1].key = "MESSAGE";
 3335|  1.95k|  fields[1].value = message;
 3336|  1.95k|  fields[1].length = -1;
 3337|  1.95k|  n_fields++;
 3338|       |
 3339|  1.95k|  fields[2].key = "PRIORITY";
 3340|  1.95k|  fields[2].value = log_level_to_priority (log_level);
 3341|  1.95k|  fields[2].length = -1;
 3342|  1.95k|  n_fields++;
 3343|       |
 3344|  1.95k|  if (log_domain)
  ------------------
  |  Branch (3344:7): [True: 1.95k, False: 0]
  ------------------
 3345|  1.95k|    {
 3346|  1.95k|      fields[3].key = "GLIB_DOMAIN";
 3347|  1.95k|      fields[3].value = log_domain;
 3348|  1.95k|      fields[3].length = -1;
 3349|  1.95k|      n_fields++;
 3350|  1.95k|    }
 3351|       |
 3352|       |  /* Print out via the structured log API, but drop any fatal flags since we
 3353|       |   * have already handled them. The fatal handling in the structured logging
 3354|       |   * API is more coarse-grained than in the old g_log() API, so we don't want
 3355|       |   * to use it here.
 3356|       |   */
 3357|  1.95k|  g_log_structured_array (log_level & ~G_LOG_FLAG_FATAL, fields, n_fields);
 3358|  1.95k|}
gmessages.c:g_log_find_domain_L:
  472|  1.95k|{
  473|  1.95k|  GLogDomain *domain;
  474|       |  
  475|  1.95k|  domain = g_log_domains;
  476|  1.95k|  while (domain)
  ------------------
  |  Branch (476:10): [True: 0, False: 1.95k]
  ------------------
  477|      0|    {
  478|      0|      if (strcmp (domain->log_domain, log_domain) == 0)
  ------------------
  |  Branch (478:11): [True: 0, False: 0]
  ------------------
  479|      0|	return domain;
  480|      0|      domain = domain->next;
  481|      0|    }
  482|  1.95k|  return NULL;
  483|  1.95k|}
gmessages.c:g_log_domain_get_handler_L:
  534|  1.95k|{
  535|  1.95k|  if (domain && log_level)
  ------------------
  |  Branch (535:7): [True: 0, False: 1.95k]
  |  Branch (535:17): [True: 0, False: 0]
  ------------------
  536|      0|    {
  537|      0|      GLogHandler *handler;
  538|       |      
  539|      0|      handler = domain->handlers;
  540|      0|      while (handler)
  ------------------
  |  Branch (540:14): [True: 0, False: 0]
  ------------------
  541|      0|	{
  542|      0|	  if ((handler->log_level & log_level) == log_level)
  ------------------
  |  Branch (542:8): [True: 0, False: 0]
  ------------------
  543|      0|	    {
  544|      0|	      *data = handler->data;
  545|      0|	      return handler->log_func;
  546|      0|	    }
  547|      0|	  handler = handler->next;
  548|      0|	}
  549|      0|    }
  550|       |
  551|  1.95k|  *data = default_log_data;
  552|  1.95k|  return default_log_func;
  553|  1.95k|}
gmessages.c:log_level_to_priority:
 1324|  1.95k|{
 1325|  1.95k|  if (log_level & G_LOG_LEVEL_ERROR)
  ------------------
  |  Branch (1325:7): [True: 0, False: 1.95k]
  ------------------
 1326|      0|    return "3";
 1327|  1.95k|  else if (log_level & G_LOG_LEVEL_CRITICAL)
  ------------------
  |  Branch (1327:12): [True: 0, False: 1.95k]
  ------------------
 1328|      0|    return "4";
 1329|  1.95k|  else if (log_level & G_LOG_LEVEL_WARNING)
  ------------------
  |  Branch (1329:12): [True: 0, False: 1.95k]
  ------------------
 1330|      0|    return "4";
 1331|  1.95k|  else if (log_level & G_LOG_LEVEL_MESSAGE)
  ------------------
  |  Branch (1331:12): [True: 0, False: 1.95k]
  ------------------
 1332|      0|    return "5";
 1333|  1.95k|  else if (log_level & G_LOG_LEVEL_INFO)
  ------------------
  |  Branch (1333:12): [True: 0, False: 1.95k]
  ------------------
 1334|      0|    return "6";
 1335|  1.95k|  else if (log_level & G_LOG_LEVEL_DEBUG)
  ------------------
  |  Branch (1335:12): [True: 1.95k, False: 0]
  ------------------
 1336|  1.95k|    return "7";
 1337|       |
 1338|       |  /* Default to LOG_NOTICE for custom log levels. */
 1339|      0|  return "5";
 1340|  1.95k|}
gmessages.c:should_drop_message:
 2693|  1.95k|{
 2694|       |  /* Disable debug message output unless specified in G_MESSAGES_DEBUG. */
 2695|  1.95k|  if (!(log_level & DEFAULT_LEVELS) &&
  ------------------
  |  | 1022|  1.95k|#define DEFAULT_LEVELS (G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE)
  ------------------
  |  Branch (2695:7): [True: 1.95k, False: 0]
  ------------------
 2696|  1.95k|      !(log_level >> G_LOG_LEVEL_USER_SHIFT) &&
  ------------------
  |  |   51|  1.95k|#define G_LOG_LEVEL_USER_SHIFT  (8)
  ------------------
  |  Branch (2696:7): [True: 1.95k, False: 0]
  ------------------
 2697|  1.95k|      !g_log_get_debug_enabled ())
  ------------------
  |  Branch (2697:7): [True: 1.95k, False: 0]
  ------------------
 2698|  1.95k|    {
 2699|  1.95k|      gsize i;
 2700|       |
 2701|  1.95k|      g_rw_lock_reader_lock (&g_log_global.lock);
 2702|       |
 2703|  1.95k|      if (G_UNLIKELY (!g_log_global.domains_set))
  ------------------
  |  | 1245|  1.95k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  1.95k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.95k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.95k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.95k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.95k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 1.95k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.95k|      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.95k|   else                                         \
  |  |  |  |  |  | 1240|  1.95k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  1.95k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.95k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 1, False: 1.95k]
  |  |  ------------------
  ------------------
 2704|      1|        {
 2705|      1|          g_log_global.domains = g_strdup (g_getenv ("G_MESSAGES_DEBUG"));
  ------------------
  |  |  324|      1|#define g_strdup(x) g_strdup_inline (x)
  ------------------
 2706|      1|          g_log_global.domains_set = TRUE;
  ------------------
  |  |  929|      1|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      1|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2707|      1|        }
 2708|       |
 2709|  1.95k|      if ((log_level & INFO_LEVELS) == 0 ||
  ------------------
  |  | 1024|  1.95k|#define INFO_LEVELS (G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG)
  ------------------
  |  Branch (2709:11): [True: 0, False: 1.95k]
  ------------------
 2710|  1.95k|          g_log_global.domains == NULL)
  ------------------
  |  Branch (2710:11): [True: 1.95k, False: 0]
  ------------------
 2711|  1.95k|        {
 2712|  1.95k|          g_rw_lock_reader_unlock (&g_log_global.lock);
 2713|  1.95k|          return TRUE;
  ------------------
  |  |  929|  1.95k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  1.95k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2714|  1.95k|        }
 2715|       |
 2716|      0|      if (log_domain == NULL)
  ------------------
  |  Branch (2716:11): [True: 0, False: 0]
  ------------------
 2717|      0|        {
 2718|      0|          for (i = 0; i < n_fields; i++)
  ------------------
  |  Branch (2718:23): [True: 0, False: 0]
  ------------------
 2719|      0|            {
 2720|      0|              if (g_strcmp0 (fields[i].key, "GLIB_DOMAIN") == 0)
  ------------------
  |  Branch (2720:19): [True: 0, False: 0]
  ------------------
 2721|      0|                {
 2722|      0|                  log_domain = fields[i].value;
 2723|      0|                  break;
 2724|      0|                }
 2725|      0|            }
 2726|      0|        }
 2727|       |
 2728|      0|      if (strcmp (g_log_global.domains, "all") != 0 &&
  ------------------
  |  Branch (2728:11): [True: 0, False: 0]
  ------------------
 2729|      0|          (log_domain == NULL || !domain_found (g_log_global.domains, log_domain)))
  ------------------
  |  Branch (2729:12): [True: 0, False: 0]
  |  Branch (2729:34): [True: 0, False: 0]
  ------------------
 2730|      0|        {
 2731|      0|          g_rw_lock_reader_unlock (&g_log_global.lock);
 2732|      0|          return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2733|      0|        }
 2734|       |
 2735|      0|      g_rw_lock_reader_unlock (&g_log_global.lock);
 2736|      0|    }
 2737|       |
 2738|      0|  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2739|  1.95k|}
gmessages.c:format_string:
 3423|  1.95k|{
 3424|       |#ifdef G_ENABLE_DEBUG
 3425|       |  g_assert (out_allocated_string != NULL);
 3426|       |#endif
 3427|       |
 3428|       |  /* If there is no formatting to be done, avoid an allocation */
 3429|  1.95k|  if (strchr (format, '%') == NULL)
  ------------------
  |  Branch (3429:7): [True: 0, False: 1.95k]
  ------------------
 3430|      0|    {
 3431|      0|      *out_allocated_string = NULL;
 3432|      0|      return format;
 3433|      0|    }
 3434|  1.95k|  else
 3435|  1.95k|    {
 3436|  1.95k|      *out_allocated_string = g_strdup_vprintf (format, args);
 3437|  1.95k|      return *out_allocated_string;
 3438|  1.95k|    }
 3439|  1.95k|}

g_vasprintf:
  327|  1.99k|{
  328|  1.99k|  gint len;
  329|  1.99k|  g_return_val_if_fail (string != NULL, -1);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  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|  1.99k|  {
  340|  1.99k|    int saved_errno;
  341|  1.99k|    len = vasprintf (string, format, args);
  342|  1.99k|    saved_errno = errno;
  343|  1.99k|    if (len < 0)
  ------------------
  |  Branch (343:9): [True: 0, False: 1.99k]
  ------------------
  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|  1.99k|  }
  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|  1.99k|  return len;
  390|  1.99k|}

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

g_ref_count_init:
   72|    722|{
   73|    722|  g_return_if_fail (rc != NULL);
  ------------------
  |  |  650|    722|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    722|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    722|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    722|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    722|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    722| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    722|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    722|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    722|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 722, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    722|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    722|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    722|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    722|   else                                         \
  |  |  |  |  |  |  |  | 1240|    722|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    722|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    722|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    722|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    722|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 722, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    722|      { } \
  |  |  653|    722|    else \
  |  |  654|    722|      { \
  |  |  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|    722|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    722|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 722]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   74|       |
   75|       |  /* Non-atomic refcounting is implemented using the negative range
   76|       |   * of signed integers:
   77|       |   *
   78|       |   * G_MININT                 Z¯< 0 > Z⁺                G_MAXINT
   79|       |   * |----------------------------|----------------------------|
   80|       |   *
   81|       |   * Acquiring a reference moves us towards MININT, and releasing a
   82|       |   * reference moves us towards 0.
   83|       |   */
   84|    722|  *rc = -1;
   85|    722|}
g_ref_count_inc:
   97|    643|{
   98|    643|  grefcount rrc;
   99|       |
  100|    643|  g_return_if_fail (rc != NULL);
  ------------------
  |  |  650|    643|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    643|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    643|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    643|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    643|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    643| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    643|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    643|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    643|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 643, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    643|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    643|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    643|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    643|   else                                         \
  |  |  |  |  |  |  |  | 1240|    643|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    643|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    643|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    643|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    643|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 643, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    643|      { } \
  |  |  653|    643|    else \
  |  |  654|    643|      { \
  |  |  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|    643|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    643|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 643]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|       |
  102|    643|  rrc = *rc;
  103|       |
  104|    643|  g_return_if_fail (rrc < 0);
  ------------------
  |  |  650|    643|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    643|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    643|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    643|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    643|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    643| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    643|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    643|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    643|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 643, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    643|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    643|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    643|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    643|   else                                         \
  |  |  |  |  |  |  |  | 1240|    643|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    643|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    643|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    643|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    643|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 643, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    643|      { } \
  |  |  653|    643|    else \
  |  |  654|    643|      { \
  |  |  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|    643|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    643|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 643]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  105|       |
  106|       |  /* Check for saturation */
  107|    643|  if (rrc == G_MININT)
  ------------------
  |  |   38|    643|#define G_MININT	INT_MIN
  ------------------
  |  Branch (107:7): [True: 0, False: 643]
  ------------------
  108|      0|    {
  109|      0|      g_critical ("Reference count %p has reached saturation", rc);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  110|      0|      return;
  111|      0|    }
  112|       |
  113|    643|  rrc -= 1;
  114|       |
  115|    643|  *rc = rrc;
  116|    643|}
g_ref_count_dec:
  134|  1.36k|{
  135|  1.36k|  grefcount rrc;
  136|       |
  137|  1.36k|  g_return_val_if_fail (rc != NULL, FALSE);
  ------------------
  |  |  663|  1.36k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.36k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.36k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.36k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.36k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.36k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.36k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.36k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.36k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.36k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.36k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.36k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.36k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.36k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.36k|      G_PASTE (_g_boolean_var_, uniq) = 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.36k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.36k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.36k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.36k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.36k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.36k|      { } \
  |  |  666|  1.36k|    else \
  |  |  667|  1.36k|      { \
  |  |  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.36k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.36k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.36k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  138|       |
  139|  1.36k|  rrc = *rc;
  140|       |
  141|  1.36k|  g_return_val_if_fail (rrc < 0, FALSE);
  ------------------
  |  |  663|  1.36k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.36k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.36k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.36k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.36k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.36k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.36k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.36k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.36k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.36k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.36k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.36k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.36k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.36k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.36k|      G_PASTE (_g_boolean_var_, uniq) = 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.36k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.36k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.36k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.36k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.36k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.36k|      { } \
  |  |  666|  1.36k|    else \
  |  |  667|  1.36k|      { \
  |  |  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.36k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.36k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.36k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  142|       |
  143|  1.36k|  rrc += 1;
  144|  1.36k|  if (rrc == 0)
  ------------------
  |  Branch (144:7): [True: 722, False: 643]
  ------------------
  145|    722|    return TRUE;
  ------------------
  |  |  929|    722|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    722|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  146|       |
  147|    643|  *rc = rrc;
  148|       |
  149|    643|  return FALSE;
  ------------------
  |  |  925|    643|#define	FALSE	(0)
  ------------------
  150|  1.36k|}
g_atomic_ref_count_init:
  191|  1.17k|{
  192|  1.17k|  g_return_if_fail (arc != NULL);
  ------------------
  |  |  650|  1.17k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.17k|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|  1.17k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.17k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.17k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.17k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.17k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.17k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.17k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.17k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.17k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.17k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.17k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.17k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.17k|      G_PASTE (_g_boolean_var_, uniq) = 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.17k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.17k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.17k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.17k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.17k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|  1.17k|      { } \
  |  |  653|  1.17k|    else \
  |  |  654|  1.17k|      { \
  |  |  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.17k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.17k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.17k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  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|  1.17k|  *arc = 1;
  204|  1.17k|}
g_atomic_ref_count_inc:
  216|    317|{
  217|    317|  gint old_value;
  218|       |
  219|    317|  g_return_if_fail (arc != NULL);
  ------------------
  |  |  650|    317|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    317|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    317|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    317|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    317|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    317| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    317|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    317|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    317|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 317, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    317|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    317|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    317|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    317|   else                                         \
  |  |  |  |  |  |  |  | 1240|    317|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    317|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    317|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    317|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    317|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 317, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    317|      { } \
  |  |  653|    317|    else \
  |  |  654|    317|      { \
  |  |  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|    317|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    317|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 317]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  220|    317|  old_value = g_atomic_int_add (arc, 1);
  ------------------
  |  |  209|    317|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    317|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|    317|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    317|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|    317|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 317]
  |  |  ------------------
  |  |  212|    317|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|    317|  }))
  ------------------
  221|    317|  g_return_if_fail (old_value > 0);
  ------------------
  |  |  650|    317|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    317|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    317|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    317|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    317|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    317| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    317|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    317|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    317|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 317, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    317|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    317|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    317|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    317|   else                                         \
  |  |  |  |  |  |  |  | 1240|    317|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    317|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    317|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    317|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    317|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 317, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    317|      { } \
  |  |  653|    317|    else \
  |  |  654|    317|      { \
  |  |  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|    317|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    317|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 317]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|       |
  223|    317|  if (old_value == G_MAXINT)
  ------------------
  |  |   39|    317|#define G_MAXINT	INT_MAX
  ------------------
  |  Branch (223:7): [True: 0, False: 317]
  ------------------
  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|    317|}
g_atomic_ref_count_dec:
  243|  1.47k|{
  244|  1.47k|  gint old_value;
  245|       |
  246|  1.47k|  g_return_val_if_fail (arc != NULL, FALSE);
  ------------------
  |  |  663|  1.47k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.47k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.47k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.47k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.47k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.47k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.47k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.47k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.47k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.47k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.47k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.47k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.47k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.47k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.47k|      G_PASTE (_g_boolean_var_, uniq) = 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.47k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.47k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.47k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.47k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.47k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.47k|      { } \
  |  |  666|  1.47k|    else \
  |  |  667|  1.47k|      { \
  |  |  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.47k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.47k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.47k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  247|  1.47k|  old_value = g_atomic_int_add (arc, -1);
  ------------------
  |  |  209|  1.47k|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|  1.47k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  210|  1.47k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|  1.47k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  211|  1.47k|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (211:13): [Folded, False: 1.47k]
  |  |  ------------------
  |  |  212|  1.47k|    (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  213|  1.47k|  }))
  ------------------
  248|  1.47k|  g_return_val_if_fail (old_value > 0, FALSE);
  ------------------
  |  |  663|  1.47k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  1.47k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  1.47k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  1.47k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  1.47k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  1.47k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  1.47k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  1.47k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.47k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1.47k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  1.47k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.47k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.47k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  1.47k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  1.47k|      G_PASTE (_g_boolean_var_, uniq) = 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.47k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  1.47k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  1.47k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  1.47k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1.47k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  1.47k|      { } \
  |  |  666|  1.47k|    else \
  |  |  667|  1.47k|      { \
  |  |  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.47k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  1.47k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1.47k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  249|       |
  250|  1.47k|  return old_value == 1;
  251|  1.47k|}
g_atomic_ref_count_compare:
  268|      2|{
  269|      2|  g_return_val_if_fail (arc != NULL, FALSE);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  270|      2|  g_return_val_if_fail (val >= 0, FALSE);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  271|       |
  272|      2|  return g_atomic_int_get (arc) == val;
  ------------------
  |  |  110|      2|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|      2|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      2|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|      2|    gint gaig_temp;                                                          \
  |  |  113|      2|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 2]
  |  |  ------------------
  |  |  114|      2|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|      2|    (gint) gaig_temp;                                                        \
  |  |  116|      2|  }))
  ------------------
  273|      2|}

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

g_slist_free:
   99|    243|{
  100|       |  g_slice_free_chain (GSList, list, next);
  ------------------
  |  |   86|    243|#define g_slice_free_chain(type, mem_chain, next)               \
  |  |  ------------------
  |  |  |  |  985|    243|#define G_STMT_START  do
  |  |  ------------------
  |  |   87|    243|G_STMT_START {                                                  \
  |  |   88|    243|  if (1) g_slice_free_chain_with_offset (sizeof (type),		\
  |  |  ------------------
  |  |  |  Branch (88:7): [True: 243, Folded]
  |  |  ------------------
  |  |   89|    243|                 (mem_chain), G_STRUCT_OFFSET (type, next)); 	\
  |  |  ------------------
  |  |  |  |  964|    243|      ((glong) offsetof (struct_type, member))
  |  |  ------------------
  |  |   90|    243|  else   (void) ((type*) 0 == (mem_chain));			\
  |  |   91|    243|} G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    243|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 243]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|    243|}
g_slist_free_1:
  119|     17|{
  120|     17|  _g_slist_free1 (list);
  ------------------
  |  |   62|     17|#define _g_slist_free1(slist)   g_slice_free (GSList, slist)
  |  |  ------------------
  |  |  |  |   81|     17|#define g_slice_free(type, mem)                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |   82|     17|G_STMT_START {                                                  \
  |  |  |  |   83|     17|  if (1) g_slice_free1 (sizeof (type), (mem));			\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:7): [True: 17, Folded]
  |  |  |  |  ------------------
  |  |  |  |   84|     17|  else   (void) ((type*) 0 == (mem)); 				\
  |  |  |  |   85|     17|} G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  121|     17|}
g_slist_append:
  186|      1|{
  187|      1|  GSList *new_list;
  188|      1|  GSList *last;
  189|       |
  190|      1|  new_list = _g_slist_alloc ();
  ------------------
  |  |   61|      1|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|      1|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  191|      1|  new_list->data = data;
  192|      1|  new_list->next = NULL;
  193|       |
  194|      1|  if (list)
  ------------------
  |  Branch (194:7): [True: 0, False: 1]
  ------------------
  195|      0|    {
  196|      0|      last = g_slist_last (list);
  197|       |      /* g_assert (last != NULL); */
  198|      0|      last->next = new_list;
  199|       |
  200|      0|      return list;
  201|      0|    }
  202|      1|  else
  203|      1|    return new_list;
  204|      1|}
g_slist_prepend:
  228|     66|{
  229|     66|  GSList *new_list;
  230|       |
  231|     66|  new_list = _g_slist_alloc ();
  ------------------
  |  |   61|     66|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|     66|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  232|     66|  new_list->data = data;
  233|     66|  new_list->next = list;
  234|       |
  235|     66|  return new_list;
  236|     66|}
g_slist_remove:
  404|     17|{
  405|     17|  return _g_slist_remove_data (list, data, FALSE);
  ------------------
  |  |  925|     17|#define	FALSE	(0)
  ------------------
  406|     17|}
g_slist_copy:
  517|      6|{
  518|      6|  return g_slist_copy_deep (list, NULL, NULL);
  519|      6|}
g_slist_copy_deep:
  554|      6|{
  555|      6|  GSList *new_list = NULL;
  556|       |
  557|      6|  if (list)
  ------------------
  |  Branch (557:7): [True: 2, False: 4]
  ------------------
  558|      2|    {
  559|      2|      GSList *last;
  560|       |
  561|      2|      new_list = _g_slist_alloc ();
  ------------------
  |  |   61|      2|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|      2|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  562|      2|      if (func)
  ------------------
  |  Branch (562:11): [True: 0, False: 2]
  ------------------
  563|      0|        new_list->data = func (list->data, user_data);
  564|      2|      else
  565|      2|        new_list->data = list->data;
  566|      2|      last = new_list;
  567|      2|      list = list->next;
  568|      2|      while (list)
  ------------------
  |  Branch (568:14): [True: 0, False: 2]
  ------------------
  569|      0|        {
  570|      0|          last->next = _g_slist_alloc ();
  ------------------
  |  |   61|      0|#define _g_slist_alloc()        g_slice_new (GSList)
  |  |  ------------------
  |  |  |  |   48|      0|#define  g_slice_new(type)      ((type*) g_slice_alloc (sizeof (type)))
  |  |  ------------------
  ------------------
  571|      0|          last = last->next;
  572|      0|          if (func)
  ------------------
  |  Branch (572:15): [True: 0, False: 0]
  ------------------
  573|      0|            last->data = func (list->data, user_data);
  574|      0|          else
  575|      0|            last->data = list->data;
  576|      0|          list = list->next;
  577|      0|        }
  578|      2|      last->next = NULL;
  579|      2|    }
  580|       |
  581|      6|  return new_list;
  582|      6|}
g_slist_find:
  664|     17|{
  665|     27|  while (list)
  ------------------
  |  Branch (665:10): [True: 10, False: 17]
  ------------------
  666|     10|    {
  667|     10|      if (list->data == data)
  ------------------
  |  Branch (667:11): [True: 0, False: 10]
  ------------------
  668|      0|        break;
  669|     10|      list = list->next;
  670|     10|    }
  671|       |
  672|     17|  return list;
  673|     17|}
g_slist_length:
  804|      7|{
  805|      7|  guint length;
  806|       |
  807|      7|  length = 0;
  808|      9|  while (list)
  ------------------
  |  Branch (808:10): [True: 2, False: 7]
  ------------------
  809|      2|    {
  810|      2|      length++;
  811|      2|      list = list->next;
  812|      2|    }
  813|       |
  814|      7|  return length;
  815|      7|}
g_slist_sort:
 1019|      6|{
 1020|       |  return g_slist_sort_real (list, (GFunc) compare_func, NULL);
 1021|      6|}
gslist.c:_g_slist_remove_data:
  368|     17|{
  369|     17|  GSList *tmp = NULL;
  370|     17|  GSList **previous_ptr = &list;
  371|       |
  372|     17|  while (*previous_ptr)
  ------------------
  |  Branch (372:10): [True: 17, False: 0]
  ------------------
  373|     17|    {
  374|     17|      tmp = *previous_ptr;
  375|     17|      if (tmp->data == data)
  ------------------
  |  Branch (375:11): [True: 17, False: 0]
  ------------------
  376|     17|        {
  377|     17|          *previous_ptr = tmp->next;
  378|     17|          g_slist_free_1 (tmp);
  379|     17|          if (!all)
  ------------------
  |  Branch (379:15): [True: 17, False: 0]
  ------------------
  380|     17|            break;
  381|     17|        }
  382|      0|      else
  383|      0|        {
  384|      0|          previous_ptr = &tmp->next;
  385|      0|        }
  386|     17|    }
  387|       |
  388|     17|  return list;
  389|     17|}
gslist.c:g_slist_sort_real:
  976|      6|{
  977|      6|  GSList *l1, *l2;
  978|       |
  979|      6|  if (!list)
  ------------------
  |  Branch (979:7): [True: 6, False: 0]
  ------------------
  980|      6|    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|     61|{
  317|     61|  gchar *new_str;
  318|     61|  gsize length;
  319|       |
  320|     61|  if G_LIKELY (str)
  ------------------
  |  | 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: 58, False: 3]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|     61|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     58|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     58|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|     61|   else                                         \
  |  |  |  |  |  | 1240|     61|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      3|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      3|#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: 58, False: 3]
  |  |  ------------------
  ------------------
  321|     58|    {
  322|     58|      length = strlen (str) + 1;
  323|     58|      new_str = g_new (char, length);
  ------------------
  |  |  315|     58|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|     58|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     58|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     58|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     58|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     58|	  gpointer __p;						\
  |  |  |  |  264|     58|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 58, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|     58|	    __p = g_##func (__n);				\
  |  |  |  |  266|     58|	  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|     58|	  __p;							\
  |  |  |  |  272|     58|	}))
  |  |  ------------------
  ------------------
  324|     58|      memcpy (new_str, str, length);
  325|     58|    }
  326|      3|  else
  327|      3|    new_str = NULL;
  328|       |
  329|     61|  return new_str;
  330|     61|}
g_memdup2:
  381|     37|{
  382|     37|  gpointer new_mem;
  383|       |
  384|     37|  if (mem && byte_size != 0)
  ------------------
  |  Branch (384:7): [True: 37, False: 0]
  |  Branch (384:14): [True: 37, False: 0]
  ------------------
  385|     37|    {
  386|     37|      new_mem = g_malloc (byte_size);
  387|     37|      memcpy (new_mem, mem, byte_size);
  388|     37|    }
  389|      0|  else
  390|      0|    new_mem = NULL;
  391|       |
  392|     37|  return new_mem;
  393|     37|}
g_strndup:
  414|     11|{
  415|     11|  gchar *new_str;
  416|       |
  417|     11|  if (str)
  ------------------
  |  Branch (417:7): [True: 11, False: 0]
  ------------------
  418|     11|    {
  419|     11|      new_str = g_new (gchar, n + 1);
  ------------------
  |  |  315|     11|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  260|     11|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     11|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     11|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     11|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     11|	  gpointer __p;						\
  |  |  |  |  264|     11|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 11, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  265|     11|	    __p = g_##func (__n);				\
  |  |  |  |  266|     11|	  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|     11|	  __p;							\
  |  |  |  |  272|     11|	}))
  |  |  ------------------
  ------------------
  420|     11|      strncpy (new_str, str, n);
  421|     11|      new_str[n] = '\0';
  422|     11|    }
  423|      0|  else
  424|      0|    new_str = NULL;
  425|       |
  426|     11|  return new_str;
  427|     11|}
g_strdup_vprintf:
  508|  1.99k|{
  509|  1.99k|  gchar *string = NULL;
  510|       |
  511|  1.99k|  g_vasprintf (&string, format, args);
  512|       |
  513|  1.99k|  return string;
  514|  1.99k|}
g_strdup_printf:
  536|     29|{
  537|     29|  gchar *buffer;
  538|     29|  va_list args;
  539|       |
  540|     29|  va_start (args, format);
  541|     29|  buffer = g_strdup_vprintf (format, args);
  542|     29|  va_end (args);
  543|       |
  544|     29|  return buffer;
  545|     29|}

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|}
gerror.c:g_strdup_inline:
  310|      7|{
  311|      7|  if (__builtin_constant_p (!str) && !str)
  ------------------
  |  Branch (311:7): [True: 7, False: 0]
  |  Branch (311:38): [True: 0, False: 7]
  ------------------
  312|      0|    return NULL;
  313|       |
  314|      7|  if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str)))
  ------------------
  |  Branch (314:7): [True: 7, False: 0]
  |  Branch (314:39): [True: 7, False: 0]
  |  Branch (314:48): [True: 0, False: 7]
  ------------------
  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|      7|  return g_strdup (str);
  322|      7|}
gmessages.c:g_strdup_inline:
  310|      1|{
  311|      1|  if (__builtin_constant_p (!str) && !str)
  ------------------
  |  Branch (311:7): [True: 0, False: 1]
  |  Branch (311:38): [True: 0, False: 0]
  ------------------
  312|      0|    return NULL;
  313|       |
  314|      1|  if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str)))
  ------------------
  |  Branch (314:7): [True: 0, False: 1]
  |  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|      1|  return g_strdup (str);
  322|      1|}

g_rec_mutex_lock:
  396|     56|{
  397|     56|  pthread_mutex_lock (g_rec_mutex_get_impl (mutex));
  398|     56|}
g_rec_mutex_unlock:
  415|     56|{
  416|     56|  pthread_mutex_unlock (rec_mutex->p);
  417|     56|}
g_rw_lock_writer_lock:
  553|    279|{
  554|    279|  int retval = pthread_rwlock_wrlock (g_rw_lock_get_impl (rw_lock));
  555|       |
  556|    279|  if (retval != 0)
  ------------------
  |  Branch (556:7): [True: 0, False: 279]
  ------------------
  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|    279|}
g_rw_lock_writer_unlock:
  595|    279|{
  596|    279|  pthread_rwlock_unlock (g_rw_lock_get_impl (rw_lock));
  597|    279|}
g_rw_lock_reader_lock:
  623|  2.14k|{
  624|  2.14k|  int retval = pthread_rwlock_rdlock (g_rw_lock_get_impl (rw_lock));
  625|       |
  626|  2.14k|  if (retval != 0)
  ------------------
  |  Branch (626:7): [True: 0, False: 2.14k]
  ------------------
  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|  2.14k|}
g_rw_lock_reader_unlock:
  664|  2.14k|{
  665|  2.14k|  pthread_rwlock_unlock (g_rw_lock_get_impl (rw_lock));
  666|  2.14k|}
g_private_get:
 1159|  3.91k|{
 1160|       |  /* quote POSIX: No errors are returned from pthread_getspecific(). */
 1161|  3.91k|  return pthread_getspecific (g_private_get_impl (key));
 1162|  3.91k|}
g_private_set:
 1178|  7.83k|{
 1179|  7.83k|  gint status;
 1180|       |
 1181|  7.83k|  if G_UNLIKELY ((status = pthread_setspecific (g_private_get_impl (key), value)) != 0)
  ------------------
  |  | 1245|  7.83k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  7.83k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  7.83k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  7.83k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  7.83k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  7.83k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 7.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  7.83k|      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|  7.83k|   else                                         \
  |  |  |  |  |  | 1240|  7.83k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  7.83k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  7.83k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  7.83k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  7.83k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  7.83k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  7.83k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 7.83k]
  |  |  ------------------
  ------------------
 1182|      0|    g_thread_abort (status, "pthread_setspecific");
 1183|  7.83k|}
g_mutex_lock:
 1489|  4.66k|{
 1490|       |  /* empty -> owned and we're done.  Anything else, and we need to wait... */
 1491|  4.66k|  if G_UNLIKELY (!g_atomic_int_compare_and_exchange (&mutex->i[0],
  ------------------
  |  | 1245|  4.66k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  4.66k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  4.66k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  4.66k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  4.66k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  23.3k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 4.66k]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 4.66k, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 4.66k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  4.66k|      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.66k|   else                                         \
  |  |  |  |  |  | 1240|  4.66k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.66k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.66k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  4.66k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.66k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.66k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  4.66k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 4.66k]
  |  |  ------------------
  ------------------
 1492|  4.66k|                                                     G_MUTEX_STATE_EMPTY,
 1493|  4.66k|                                                     G_MUTEX_STATE_OWNED))
 1494|      0|    g_mutex_lock_slowpath (mutex);
 1495|  4.66k|}
g_mutex_unlock:
 1499|  4.66k|{
 1500|  4.66k|  guint prev;
 1501|       |
 1502|  4.66k|  prev = exchange_release (&mutex->i[0], G_MUTEX_STATE_EMPTY);
  ------------------
  |  | 1389|  4.66k|  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|  4.66k|  if G_UNLIKELY (prev != G_MUTEX_STATE_OWNED)
  ------------------
  |  | 1245|  4.66k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  4.66k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  4.66k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  4.66k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  4.66k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  4.66k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 4.66k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  4.66k|      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.66k|   else                                         \
  |  |  |  |  |  | 1240|  4.66k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.66k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.66k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  4.66k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.66k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.66k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  4.66k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 4.66k]
  |  |  ------------------
  ------------------
 1506|      0|    g_mutex_unlock_slowpath (mutex, prev);
 1507|  4.66k|}
g_cond_broadcast:
 1566|     17|{
 1567|     17|  g_atomic_int_inc (&cond->i[0]);
  ------------------
  |  |  162|     17|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     17|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|     17|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     17|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|     17|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 17]
  |  |  ------------------
  |  |  165|     17|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|     17|  }))
  ------------------
 1568|       |
 1569|       |  g_futex_simple (&cond->i[0], (gsize) FUTEX_WAKE_PRIVATE, (gsize) INT_MAX, NULL);
  ------------------
  |  |  101|     17|  G_STMT_START                                                            \
  |  |  ------------------
  |  |  |  |  985|     17|#define G_STMT_START  do
  |  |  ------------------
  |  |  102|     17|  {                                                                       \
  |  |  103|     17|    int saved_errno = errno;                                              \
  |  |  104|     17|    int res = syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
  |  |  105|     17|    if (res < 0 && errno == EAGAIN)                                       \
  |  |  ------------------
  |  |  |  Branch (105:9): [True: 0, False: 17]
  |  |  |  Branch (105:20): [True: 0, False: 0]
  |  |  ------------------
  |  |  106|     17|      {                                                                   \
  |  |  107|      0|        errno = saved_errno;                                              \
  |  |  108|      0|      }                                                                   \
  |  |  109|     17|  }                                                                       \
  |  |  110|     17|  G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     17|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 17]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1570|     17|}
gthread-posix.c:g_rec_mutex_impl_new:
  282|      2|{
  283|      2|  pthread_mutexattr_t attr;
  284|      2|  pthread_mutex_t *mutex;
  285|       |
  286|      2|  mutex = malloc (sizeof (pthread_mutex_t));
  287|      2|  if G_UNLIKELY (mutex == NULL)
  ------------------
  |  | 1245|      2|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|      2|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|      2| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      2|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|      2|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|      2|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      2|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      2|   else                                         \
  |  |  |  |  |  | 1240|      2|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|      2|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      2|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      2|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|      2|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 2]
  |  |  ------------------
  ------------------
  288|      0|    g_thread_abort (errno, "malloc");
  289|       |
  290|      2|  pthread_mutexattr_init (&attr);
  291|      2|  pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE);
  292|      2|  pthread_mutex_init (mutex, &attr);
  293|      2|  pthread_mutexattr_destroy (&attr);
  294|       |
  295|      2|  return mutex;
  296|      2|}
gthread-posix.c:g_rec_mutex_get_impl:
  307|     56|{
  308|     56|  pthread_mutex_t *impl = g_atomic_pointer_get (&rec_mutex->p);
  ------------------
  |  |  127|     56|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|     56|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|     56|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|     56|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|     56|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|     56|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|     56|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|     56|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|     56|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|     56|    gapg_temp_newval;                                                      \
  |  |  133|     56|  }))
  ------------------
  309|       |
  310|     56|  if G_UNLIKELY (impl == NULL)
  ------------------
  |  | 1245|     56|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|     56|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|     56| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     56|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|     56|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|     56|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 54]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|     56|      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|     56|   else                                         \
  |  |  |  |  |  | 1240|     56|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     54|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     54|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|     56|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     56|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     56|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|     56|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 2, False: 54]
  |  |  ------------------
  ------------------
  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|     56|  return impl;
  319|     56|}
gthread-posix.c:g_rw_lock_impl_new:
  444|      4|{
  445|      4|  pthread_rwlock_t *rwlock;
  446|      4|  gint status;
  447|       |
  448|      4|  rwlock = malloc (sizeof (pthread_rwlock_t));
  449|      4|  if G_UNLIKELY (rwlock == NULL)
  ------------------
  |  | 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:27): [True: 0, False: 4]
  |  |  ------------------
  ------------------
  450|      0|    g_thread_abort (errno, "malloc");
  451|       |
  452|      4|  if G_UNLIKELY ((status = pthread_rwlock_init (rwlock, NULL)) != 0)
  ------------------
  |  | 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:27): [True: 0, False: 4]
  |  |  ------------------
  ------------------
  453|      0|    g_thread_abort (status, "pthread_rwlock_init");
  454|       |
  455|      4|  return rwlock;
  456|      4|}
gthread-posix.c:g_rw_lock_get_impl:
  467|  4.84k|{
  468|  4.84k|  pthread_rwlock_t *impl = g_atomic_pointer_get (&lock->p);
  ------------------
  |  |  127|  4.84k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|  4.84k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|  4.84k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|  4.84k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|  4.84k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|  4.84k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|  4.84k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|  4.84k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|  4.84k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|  4.84k|    gapg_temp_newval;                                                      \
  |  |  133|  4.84k|  }))
  ------------------
  469|       |
  470|  4.84k|  if G_UNLIKELY (impl == NULL)
  ------------------
  |  | 1245|  4.84k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  4.84k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  4.84k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  4.84k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  4.84k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  4.84k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 4.84k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  4.84k|      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.84k|   else                                         \
  |  |  |  |  |  | 1240|  4.84k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.84k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.84k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  4.84k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  4.84k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  4.84k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  4.84k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 4, False: 4.84k]
  |  |  ------------------
  ------------------
  471|      4|    {
  472|      4|      impl = g_rw_lock_impl_new ();
  473|      4|      if (!g_atomic_pointer_compare_and_exchange (&lock->p, NULL, impl))
  ------------------
  |  |  253|      4|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  254|      4|    G_STATIC_ASSERT (sizeof (oldval) == sizeof (gpointer));                  \
  |  |  ------------------
  |  |  |  |  871|      4|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  255|      4|    gpointer gapcae_oldval = (gpointer)(oldval);                             \
  |  |  256|      4|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      4|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  257|      4|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (257:13): [Folded, False: 4]
  |  |  ------------------
  |  |  258|      4|    __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      4|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|      4|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      4|#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: 4, False: 0]
  |  |  ------------------
  |  |  259|      4|  }))
  ------------------
  |  Branch (473:11): [True: 0, False: 4]
  ------------------
  474|      0|        g_rw_lock_impl_free (impl);
  475|      4|      impl = lock->p;
  476|      4|    }
  477|       |
  478|  4.84k|  return impl;
  479|  4.84k|}
gthread-posix.c:g_private_get_impl:
 1107|  11.7k|{
 1108|  11.7k|  if (sizeof (pthread_key_t) > sizeof (gpointer))
  ------------------
  |  Branch (1108:7): [Folded, False: 11.7k]
  ------------------
 1109|      0|    {
 1110|      0|      pthread_key_t *impl = g_atomic_pointer_get (&key->p);
  ------------------
  |  |  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|  }))
  ------------------
 1111|       |
 1112|      0|      if G_UNLIKELY (impl == 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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]
  |  |  ------------------
  ------------------
 1113|      0|        {
 1114|      0|          impl = g_private_impl_new (key->notify);
 1115|      0|          if (!g_atomic_pointer_compare_and_exchange (&key->p, NULL, impl))
  ------------------
  |  |  253|      0|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  254|      0|    G_STATIC_ASSERT (sizeof (oldval) == sizeof (gpointer));                  \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  255|      0|    gpointer gapcae_oldval = (gpointer)(oldval);                             \
  |  |  256|      0|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|      0|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  257|      0|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (257:13): [Folded, False: 0]
  |  |  ------------------
  |  |  258|      0|    __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#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: 0, False: 0]
  |  |  ------------------
  |  |  259|      0|  }))
  ------------------
  |  Branch (1115:15): [True: 0, False: 0]
  ------------------
 1116|      0|            {
 1117|      0|              g_private_impl_free (impl);
 1118|      0|              impl = key->p;
 1119|      0|            }
 1120|      0|        }
 1121|       |
 1122|      0|      return *impl;
 1123|      0|    }
 1124|  11.7k|  else
 1125|  11.7k|    {
 1126|  11.7k|      gpointer impl = g_atomic_pointer_get (&key->p);
  ------------------
  |  |  127|  11.7k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|  11.7k|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|  11.7k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|  11.7k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|  11.7k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|  11.7k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|  11.7k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|  11.7k|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|  11.7k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|  11.7k|    gapg_temp_newval;                                                      \
  |  |  133|  11.7k|  }))
  ------------------
 1127|  11.7k|      pthread_key_t tmp;
 1128|       |
 1129|  11.7k|      if G_UNLIKELY (impl == NULL)
  ------------------
  |  | 1245|  11.7k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  11.7k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  11.7k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  11.7k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  11.7k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  11.7k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 11.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  11.7k|      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|  11.7k|   else                                         \
  |  |  |  |  |  | 1240|  11.7k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  11.7k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  11.7k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  11.7k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  11.7k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  11.7k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  11.7k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 2, False: 11.7k]
  |  |  ------------------
  ------------------
 1130|      2|        {
 1131|      2|          impl = g_private_impl_new_direct (key->notify);
 1132|      2|          if (!g_atomic_pointer_compare_and_exchange (&key->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 (1132:15): [True: 0, False: 2]
  ------------------
 1133|      0|            {
 1134|      0|              g_private_impl_free_direct (impl);
 1135|      0|              impl = key->p;
 1136|      0|            }
 1137|      2|        }
 1138|       |
 1139|  11.7k|      memcpy (&tmp, &impl, sizeof (pthread_key_t));
 1140|       |
 1141|  11.7k|      return tmp;
 1142|  11.7k|    }
 1143|  11.7k|}
gthread-posix.c:g_private_impl_new_direct:
 1052|      2|{
 1053|      2|  gpointer impl = (void *) (gssize) -1;
 1054|      2|  pthread_key_t key;
 1055|      2|  gint status;
 1056|       |
 1057|      2|  status = pthread_key_create (&key, notify);
 1058|      2|  if G_UNLIKELY (status != 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]
  |  |  ------------------
  ------------------
 1059|      0|    g_thread_abort (status, "pthread_key_create");
 1060|       |
 1061|      2|  memcpy (&impl, &key, sizeof (pthread_key_t));
 1062|       |
 1063|       |  /* pthread_key_create could theoretically put a NULL value into key.
 1064|       |   * If that happens, waste the result and create a new one, since we
 1065|       |   * use NULL to mean "not yet allocated".
 1066|       |   *
 1067|       |   * This will only happen once per program run.
 1068|       |   *
 1069|       |   * We completely avoid this problem for the case where pthread_key_t
 1070|       |   * is smaller than void* (for example, on 64 bit Linux) by putting
 1071|       |   * some high bits in the value of 'impl' to start with.  Since we only
 1072|       |   * overwrite part of the pointer, we will never end up with NULL.
 1073|       |   */
 1074|      2|  if (sizeof (pthread_key_t) == sizeof (gpointer))
  ------------------
  |  Branch (1074:7): [Folded, False: 2]
  ------------------
 1075|      0|    {
 1076|      0|      if G_UNLIKELY (impl == 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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]
  |  |  ------------------
  ------------------
 1077|      0|        {
 1078|      0|          status = pthread_key_create (&key, notify);
 1079|      0|          if G_UNLIKELY (status != 0)
  ------------------
  |  | 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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]
  |  |  ------------------
  ------------------
 1080|      0|            g_thread_abort (status, "pthread_key_create");
 1081|       |
 1082|      0|          memcpy (&impl, &key, sizeof (pthread_key_t));
 1083|       |
 1084|      0|          if G_UNLIKELY (impl == 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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]
  |  |  ------------------
  ------------------
 1085|      0|            g_thread_abort (status, "pthread_key_create (gave NULL result twice)");
 1086|      0|        }
 1087|      0|    }
 1088|       |
 1089|      2|  return impl;
 1090|      2|}

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

g_utf8_validate_len:
 1795|     11|{
 1796|     11|  const gchar *p;
 1797|       |
 1798|     11|  p = fast_validate_len (str, max_len);
 1799|       |
 1800|     11|  if (end)
  ------------------
  |  Branch (1800:7): [True: 0, False: 11]
  ------------------
 1801|      0|    *end = p;
 1802|       |
 1803|     11|  if (p != str + max_len)
  ------------------
  |  Branch (1803:7): [True: 0, False: 11]
  ------------------
 1804|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1805|     11|  else
 1806|     11|    return TRUE;
  ------------------
  |  |  929|     11|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     11|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1807|     11|}
gutf8.c:fast_validate_len:
 1651|     11|{
 1652|     11|  const gchar *p;
 1653|       |
 1654|     11|  g_assert (max_len >= 0);
  ------------------
  |  |  275|     11|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     11|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     11|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     11|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     11|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     11| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     11|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     11|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     11|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 11, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     11|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     11|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     11|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     11|   else                                         \
  |  |  |  |  |  |  |  | 1240|     11|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     11|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     11|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     11|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     11|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 11, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     11|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     11|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     11|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 11]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1655|       |
 1656|    231|  for (p = str; ((p - str) < max_len) && *p; p++)
  ------------------
  |  Branch (1656:17): [True: 220, False: 11]
  |  Branch (1656:42): [True: 220, False: 0]
  ------------------
 1657|    220|    {
 1658|    220|      if (*(guchar *)p < 128)
  ------------------
  |  Branch (1658:11): [True: 220, False: 0]
  ------------------
 1659|    220|	/* done */;
 1660|      0|      else 
 1661|      0|	{
 1662|      0|	  const gchar *last;
 1663|       |
 1664|      0|	  last = p;
 1665|      0|	  if (*(guchar *)p < 0xe0) /* 110xxxxx */
  ------------------
  |  Branch (1665:8): [True: 0, False: 0]
  ------------------
 1666|      0|	    {
 1667|      0|	      if (G_UNLIKELY (max_len - (p - str) < 2))
  ------------------
  |  | 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1668|      0|		goto error;
 1669|       |	      
 1670|      0|	      if (G_UNLIKELY (*(guchar *)p < 0xc2))
  ------------------
  |  | 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1671|      0|		goto error;
 1672|      0|	    }
 1673|      0|	  else
 1674|      0|	    {
 1675|      0|	      if (*(guchar *)p < 0xf0) /* 1110xxxx */
  ------------------
  |  Branch (1675:12): [True: 0, False: 0]
  ------------------
 1676|      0|		{
 1677|      0|		  if (G_UNLIKELY (max_len - (p - str) < 3))
  ------------------
  |  | 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1678|      0|		    goto error;
 1679|       |
 1680|      0|		  switch (*(guchar *)p++ & 0x0f)
 1681|      0|		    {
 1682|      0|		    case 0:
  ------------------
  |  Branch (1682:7): [True: 0, False: 0]
  ------------------
 1683|      0|		      VALIDATE_BYTE(0xe0, 0xa0); /* 0xa0 ... 0xbf */
  ------------------
  |  | 1569|      0|  G_STMT_START {                                         \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  | 1570|      0|    if (G_UNLIKELY((*(guchar *)p & (mask)) != (expect))) \
  |  |  ------------------
  |  |  |  | 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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1571|      0|      goto error;                                        \
  |  | 1572|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1684|      0|		      break;
 1685|      0|		    case 0x0d:
  ------------------
  |  Branch (1685:7): [True: 0, False: 0]
  ------------------
 1686|      0|		      VALIDATE_BYTE(0xe0, 0x80); /* 0x80 ... 0x9f */
  ------------------
  |  | 1569|      0|  G_STMT_START {                                         \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  | 1570|      0|    if (G_UNLIKELY((*(guchar *)p & (mask)) != (expect))) \
  |  |  ------------------
  |  |  |  | 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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1571|      0|      goto error;                                        \
  |  | 1572|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1687|      0|		      break;
 1688|      0|		    default:
  ------------------
  |  Branch (1688:7): [True: 0, False: 0]
  ------------------
 1689|      0|		      VALIDATE_BYTE(0xc0, 0x80); /* 10xxxxxx */
  ------------------
  |  | 1569|      0|  G_STMT_START {                                         \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  | 1570|      0|    if (G_UNLIKELY((*(guchar *)p & (mask)) != (expect))) \
  |  |  ------------------
  |  |  |  | 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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1571|      0|      goto error;                                        \
  |  | 1572|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1690|      0|		    }
 1691|      0|		}
 1692|      0|	      else if (*(guchar *)p < 0xf5) /* 11110xxx excluding out-of-range */
  ------------------
  |  Branch (1692:17): [True: 0, False: 0]
  ------------------
 1693|      0|		{
 1694|      0|		  if (G_UNLIKELY (max_len - (p - str) < 4))
  ------------------
  |  | 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1695|      0|		    goto error;
 1696|       |
 1697|      0|		  switch (*(guchar *)p++ & 0x07)
 1698|      0|		    {
 1699|      0|		    case 0:
  ------------------
  |  Branch (1699:7): [True: 0, False: 0]
  ------------------
 1700|      0|		      VALIDATE_BYTE(0xc0, 0x80); /* 10xxxxxx */
  ------------------
  |  | 1569|      0|  G_STMT_START {                                         \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  | 1570|      0|    if (G_UNLIKELY((*(guchar *)p & (mask)) != (expect))) \
  |  |  ------------------
  |  |  |  | 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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1571|      0|      goto error;                                        \
  |  | 1572|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1701|      0|		      if (G_UNLIKELY((*(guchar *)p & 0x30) == 0))
  ------------------
  |  | 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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1702|      0|			goto error;
 1703|      0|		      break;
 1704|      0|		    case 4:
  ------------------
  |  Branch (1704:7): [True: 0, False: 0]
  ------------------
 1705|      0|		      VALIDATE_BYTE(0xf0, 0x80); /* 0x80 ... 0x8f */
  ------------------
  |  | 1569|      0|  G_STMT_START {                                         \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  | 1570|      0|    if (G_UNLIKELY((*(guchar *)p & (mask)) != (expect))) \
  |  |  ------------------
  |  |  |  | 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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1571|      0|      goto error;                                        \
  |  | 1572|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1706|      0|		      break;
 1707|      0|		    default:
  ------------------
  |  Branch (1707:7): [True: 0, False: 0]
  ------------------
 1708|      0|		      VALIDATE_BYTE(0xc0, 0x80); /* 10xxxxxx */
  ------------------
  |  | 1569|      0|  G_STMT_START {                                         \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  | 1570|      0|    if (G_UNLIKELY((*(guchar *)p & (mask)) != (expect))) \
  |  |  ------------------
  |  |  |  | 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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1571|      0|      goto error;                                        \
  |  | 1572|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1709|      0|		    }
 1710|      0|		  p++;
 1711|      0|		  VALIDATE_BYTE(0xc0, 0x80); /* 10xxxxxx */
  ------------------
  |  | 1569|      0|  G_STMT_START {                                         \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  | 1570|      0|    if (G_UNLIKELY((*(guchar *)p & (mask)) != (expect))) \
  |  |  ------------------
  |  |  |  | 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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1571|      0|      goto error;                                        \
  |  | 1572|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1712|      0|		}
 1713|      0|	      else
 1714|      0|		goto error;
 1715|      0|	    }
 1716|       |
 1717|      0|	  p++;
 1718|      0|	  VALIDATE_BYTE(0xc0, 0x80); /* 10xxxxxx */
  ------------------
  |  | 1569|      0|  G_STMT_START {                                         \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  | 1570|      0|    if (G_UNLIKELY((*(guchar *)p & (mask)) != (expect))) \
  |  |  ------------------
  |  |  |  | 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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 1571|      0|      goto error;                                        \
  |  | 1572|      0|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1719|       |
 1720|      0|	  continue;
 1721|       |
 1722|      0|	error:
 1723|      0|	  return last;
 1724|      0|	}
 1725|    220|    }
 1726|       |
 1727|     11|  return p;
 1728|     11|}

g_nullify_pointer:
 2857|     60|{
 2858|     60|  g_return_if_fail (nullify_location != NULL);
  ------------------
  |  |  650|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     60|      { } \
  |  |  653|     60|    else \
  |  |  654|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2859|       |
 2860|     60|  *nullify_location = NULL;
 2861|     60|}

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|}
gmessages.c:g_bit_nth_msf_impl:
  392|  3.91k|{
  393|  3.91k|  if (nth_bit < 0 || G_UNLIKELY (nth_bit > GLIB_SIZEOF_LONG * 8))
  ------------------
  |  | 1245|  1.95k|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|  1.95k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|  1.95k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|  1.95k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|  1.95k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.95k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 1.95k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|  1.95k|      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.95k|   else                                         \
  |  |  |  |  |  | 1240|  1.95k|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|  1.95k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|  1.95k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|  1.95k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|  1.95k|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 1.95k]
  |  |  ------------------
  ------------------
  |  Branch (393:7): [True: 1.95k, False: 1.95k]
  ------------------
  394|  1.95k|    nth_bit = GLIB_SIZEOF_LONG * 8;
  ------------------
  |  |   78|  1.95k|#define GLIB_SIZEOF_LONG   8
  ------------------
  395|   127k|  while (nth_bit > 0)
  ------------------
  |  Branch (395:10): [True: 125k, False: 1.95k]
  ------------------
  396|   125k|    {
  397|   125k|      nth_bit--;
  398|   125k|      if (mask & (1UL << nth_bit))
  ------------------
  |  Branch (398:11): [True: 1.95k, False: 123k]
  ------------------
  399|  1.95k|        return nth_bit;
  400|   125k|    }
  401|  1.95k|  return -1;
  402|  3.91k|}

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

_g_atomic_array_init:
  105|     40|{
  106|       |  array->data = NULL;
  107|     40|}
_g_atomic_array_copy:
  129|     66|{
  130|     66|  guint8 *new, *old;
  131|     66|  gsize old_size, new_size;
  132|       |
  133|     66|  G_LOCK (array);
  ------------------
  |  |  137|     66|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     66|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  134|     66|  old = g_atomic_pointer_get (&array->data);
  ------------------
  |  |  127|     66|  (G_GNUC_EXTENSION ({                                                     \
  |  |  ------------------
  |  |  |  |   62|     66|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  128|     66|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  ------------------
  |  |  |  |  871|     66|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  129|     66|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  ------------------
  |  |  |  |   39|     66|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  130|     66|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  ------------------
  |  |  |  |   39|     66|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  131|     66|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  132|     66|    gapg_temp_newval;                                                      \
  |  |  133|     66|  }))
  ------------------
  135|     66|  if (old)
  ------------------
  |  Branch (135:7): [True: 6, False: 60]
  ------------------
  136|      6|    {
  137|      6|      old_size = G_ATOMIC_ARRAY_DATA_SIZE (old);
  ------------------
  |  |   39|      6|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
  138|      6|      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|      6|      new = freelist_alloc (new_size, additional_element_size != 0);
  143|      6|      memcpy (new, old, old_size);
  144|      6|    }
  145|     60|  else if (additional_element_size != 0)
  ------------------
  |  Branch (145:12): [True: 7, False: 53]
  ------------------
  146|      7|    {
  147|      7|      new_size = header_size + additional_element_size;
  148|      7|      new = freelist_alloc (new_size, TRUE);
  ------------------
  |  |  929|      7|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      7|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  149|      7|    }
  150|     53|  else
  151|     53|    new = NULL;
  152|     66|  G_UNLOCK (array);
  ------------------
  |  |  138|     66|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     66|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  153|     66|  return new;
  154|     66|}
_g_atomic_array_update:
  163|     13|{
  164|     13|  guint8 *old;
  165|       |
  166|     13|  G_LOCK (array);
  ------------------
  |  |  137|     13|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     13|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  167|     13|  old = g_atomic_pointer_exchange (&array->data, new_data);
  ------------------
  |  |  273|     13|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  274|     13|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));                 \
  |  |  ------------------
  |  |  |  |  871|     13|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  275|     13|    (void) (0 ? (gpointer) *(atomic) : NULL);                                \
  |  |  ------------------
  |  |  |  Branch (275:13): [Folded, False: 13]
  |  |  ------------------
  |  |  276|     13|    (gpointer) __atomic_exchange_n ((atomic), (newval), __ATOMIC_SEQ_CST);   \
  |  |  277|     13|  }))
  ------------------
  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|     13|  g_assert (old == NULL || G_ATOMIC_ARRAY_DATA_SIZE (old) <= G_ATOMIC_ARRAY_DATA_SIZE (new_data));
  ------------------
  |  |  275|     13|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     13|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     27|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 12, False: 1]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     13|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     13|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  177|     13|#endif
  178|       |
  179|     13|  if (old)
  ------------------
  |  Branch (179:7): [True: 1, False: 12]
  ------------------
  180|      1|    freelist_free (old);
  181|     13|  G_UNLOCK (array);
  ------------------
  |  |  138|     13|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  ------------------
  |  |  |  |  111|     13|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  ------------------
  ------------------
  182|     13|}
gatomicarray.c:freelist_alloc:
   62|     13|{
   63|     13|  gpointer mem;
   64|     13|  FreeListNode *free, **prev;
   65|     13|  gsize real_size;
   66|       |
   67|     13|  if (reuse)
  ------------------
  |  Branch (67:7): [True: 8, False: 5]
  ------------------
   68|      8|    {
   69|      8|      for (free = freelist, prev = &freelist; free != NULL; prev = &free->next, free = free->next)
  ------------------
  |  Branch (69:47): [True: 0, False: 8]
  ------------------
   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|      8|    }
   78|       |
   79|     13|  real_size = sizeof (GAtomicArrayMetadata) + MAX (size, sizeof (FreeListNode));
  ------------------
  |  |  933|     13|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 9, False: 4]
  |  |  ------------------
  ------------------
   80|     13|  mem = g_slice_alloc (real_size);
   81|     13|  mem = ((char *) mem) + sizeof (GAtomicArrayMetadata);
   82|     13|  G_ATOMIC_ARRAY_DATA_SIZE (mem) = size;
  ------------------
  |  |   39|     13|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  ------------------
   83|       |
   84|     13|#if ENABLE_VALGRIND
   85|     13|  VALGRIND_MALLOCLIKE_BLOCK (mem, real_size - sizeof (GAtomicArrayMetadata),
  ------------------
  |  | 6480|     13|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|     13|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  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|    })
  |  |  |  |  ------------------
  |  |  |  |  205|     13|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|     13|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|     13|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
   86|     13|                             FALSE, FALSE);
   87|     13|#endif
   88|       |
   89|     13|  return mem;
   90|     13|}
gatomicarray.c:freelist_free:
   95|      1|{
   96|      1|  FreeListNode *free;
   97|       |
   98|      1|  free = mem;
   99|      1|  free->next = freelist;
  100|      1|  freelist = free;
  101|      1|}

_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|    188|{
 2410|    188|  GObject *object;
 2411|    188|  va_list var_args;
 2412|       |  
 2413|       |  /* short circuit for calls supplying no properties */
 2414|    188|  if (!first_property_name)
  ------------------
  |  Branch (2414:7): [True: 188, False: 0]
  ------------------
 2415|    188|    return g_object_new_with_properties (object_type, 0, NULL, NULL);
 2416|       |
 2417|    188|  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|    188|}
g_object_new_with_properties:
 2736|    188|{
 2737|    188|  GObjectClass *class, *unref_class = NULL;
 2738|    188|  GObject *object;
 2739|       |
 2740|    188|  g_return_val_if_fail (G_TYPE_IS_OBJECT (object_type), NULL);
  ------------------
  |  |  663|    188|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    188|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    188|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    188|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    188|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 188, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    188|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    188|   else                                         \
  |  |  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 188, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    188|      { } \
  |  |  666|    188|    else \
  |  |  667|    188|      { \
  |  |  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|    188|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    188|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 188]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2741|       |
 2742|       |  /* Try to avoid thrashing the ref_count if we don't need to (since
 2743|       |   * it's a locked operation).
 2744|       |   */
 2745|    188|  class = g_type_class_peek_static (object_type);
 2746|       |
 2747|    188|  if (class == NULL)
  ------------------
  |  Branch (2747:7): [True: 4, False: 184]
  ------------------
 2748|      4|    class = unref_class = g_type_class_ref (object_type);
 2749|       |
 2750|    188|  if (n_properties > 0)
  ------------------
  |  Branch (2750:7): [True: 0, False: 188]
  ------------------
 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|    188|  else
 2769|    188|    object = g_object_new_internal (class, NULL, 0);
 2770|       |
 2771|    188|  if (unref_class != NULL)
  ------------------
  |  Branch (2771:7): [True: 4, False: 184]
  ------------------
 2772|      4|    g_type_class_unref (unref_class);
 2773|       |
 2774|    188|  return object;
 2775|    188|}
g_object_weak_ref:
 3671|     60|{
 3672|     60|  WeakRefStack *wstack;
 3673|     60|  guint i;
 3674|       |  
 3675|     60|  g_return_if_fail (G_IS_OBJECT (object));
  ------------------
  |  |  650|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     60|      { } \
  |  |  653|     60|    else \
  |  |  654|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3676|     60|  g_return_if_fail (notify != NULL);
  ------------------
  |  |  650|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     60|      { } \
  |  |  653|     60|    else \
  |  |  654|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3677|     60|  g_return_if_fail (g_atomic_int_get (&object->ref_count) >= 1);
  ------------------
  |  |  650|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    180|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 60]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     60|      { } \
  |  |  653|     60|    else \
  |  |  654|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3678|       |
 3679|     60|  object_bit_lock (object, OPTIONAL_BIT_LOCK_WEAK_REFS);
  ------------------
  |  |  127|     60|#define OPTIONAL_BIT_LOCK_WEAK_REFS      1
  ------------------
 3680|     60|  wstack = g_datalist_id_remove_no_notify (&object->qdata, quark_weak_notifies);
 3681|     60|  if (wstack)
  ------------------
  |  Branch (3681:7): [True: 55, False: 5]
  ------------------
 3682|     55|    {
 3683|     55|      i = wstack->n_weak_refs++;
 3684|     55|      wstack = g_realloc (wstack, sizeof (*wstack) + sizeof (wstack->weak_refs[0]) * i);
 3685|     55|    }
 3686|      5|  else
 3687|      5|    {
 3688|      5|      wstack = g_renew (WeakRefStack, NULL, 1);
  ------------------
  |  |  346|      5|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|      5|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      5|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|      5|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|      5|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|      5|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|      5|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 5]
  |  |  |  |  ------------------
  |  |  |  |  279|      5|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|      5|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  281|      5|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      5|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      5|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 5]
  |  |  |  |  |  Branch (281:26): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|      5|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|      5|	  else							\
  |  |  |  |  284|      5|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|      5|	  __p;							\
  |  |  |  |  286|      5|	}))
  |  |  ------------------
  ------------------
 3689|      5|      wstack->object = object;
 3690|      5|      wstack->n_weak_refs = 1;
 3691|      5|      i = 0;
 3692|      5|    }
 3693|     60|  wstack->weak_refs[i].notify = notify;
 3694|     60|  wstack->weak_refs[i].data = data;
 3695|     60|  g_datalist_id_set_data_full (&object->qdata, quark_weak_notifies, wstack, weak_refs_notify);
 3696|     60|  object_bit_unlock (object, OPTIONAL_BIT_LOCK_WEAK_REFS);
  ------------------
  |  |  127|     60|#define OPTIONAL_BIT_LOCK_WEAK_REFS      1
  ------------------
 3697|     60|}
g_object_add_weak_pointer:
 3760|     60|{
 3761|     60|  g_return_if_fail (G_IS_OBJECT (object));
  ------------------
  |  |  650|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     60|      { } \
  |  |  653|     60|    else \
  |  |  654|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3762|     60|  g_return_if_fail (weak_pointer_location != NULL);
  ------------------
  |  |  650|     60|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     60|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     60|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     60|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     60|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     60| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     60|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     60|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     60|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 60, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     60|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     60|   else                                         \
  |  |  |  |  |  |  |  | 1240|     60|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     60|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     60|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     60|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     60|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 60, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     60|      { } \
  |  |  653|     60|    else \
  |  |  654|     60|      { \
  |  |  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|     60|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     60|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 60]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3763|       |
 3764|     60|  g_object_weak_ref (object, 
 3765|     60|                     (GWeakNotify) g_nullify_pointer, 
 3766|     60|                     weak_pointer_location);
 3767|     60|}
g_object_ref:
 4233|    237|{
 4234|    237|  GObject *object = _object;
 4235|    237|  GToggleNotify toggle_notify;
 4236|    237|  gpointer toggle_data;
 4237|       |
 4238|    237|  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
  ------------------
  |  |  663|    237|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    237|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    237|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    237|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    237|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    237| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    237|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    237|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 237, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    237|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    237|   else                                         \
  |  |  |  |  |  |  |  | 1240|    237|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    237|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    237|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    237|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    237|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 237, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    237|      { } \
  |  |  666|    237|    else \
  |  |  667|    237|      { \
  |  |  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|    237|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    237|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 237]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4239|       |
 4240|    237|  object = object_ref (object, &toggle_notify, &toggle_data);
 4241|       |
 4242|    237|  if (toggle_notify)
  ------------------
  |  Branch (4242:7): [True: 0, False: 237]
  ------------------
 4243|      0|    toggle_notify (toggle_data, object, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4244|       |
 4245|    237|  return object;
 4246|    237|}
g_object_unref:
 4317|    425|{
 4318|    425|  GObject *object = _object;
 4319|    425|  gint old_ref;
 4320|    425|  GToggleNotify toggle_notify;
 4321|    425|  gpointer toggle_data;
 4322|    425|  GObjectNotifyQueue *nqueue;
 4323|    425|  GType obj_gtype;
 4324|       |
 4325|    425|  g_return_if_fail (G_IS_OBJECT (object));
  ------------------
  |  |  650|    425|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    425|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    425|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 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: 425, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    425|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    425|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    425|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    425|   else                                         \
  |  |  |  |  |  |  |  | 1240|    425|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#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:24): [True: 425, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    425|      { } \
  |  |  653|    425|    else \
  |  |  654|    425|      { \
  |  |  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|    425|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    425|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 425]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|    425|  obj_gtype = G_TYPE_FROM_INSTANCE (object);
  ------------------
  |  |  646|    425|#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
  |  |  ------------------
  |  |  |  |  657|    425|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  |  |  ------------------
  ------------------
 4341|    425|  (void) obj_gtype;
 4342|       |
 4343|    425|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|    425|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    425|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    425|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    425|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    425|    gint gaig_temp;                                                          \
  |  |  113|    425|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 425]
  |  |  ------------------
  |  |  114|    425|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    425|    (gint) gaig_temp;                                                        \
  |  |  116|    425|  }))
  ------------------
 4344|       |
 4345|    425|retry_beginning:
 4346|       |
 4347|    425|  if (old_ref > 2)
  ------------------
  |  Branch (4347:7): [True: 84, False: 341]
  ------------------
 4348|     84|    {
 4349|       |      /* We have many references. If we can decrement the ref counter, we are done. */
 4350|     84|      if (!g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|     84|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|     84|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|     84|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|     84|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|     84|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|     84|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|     84|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 84]
  |  |  ------------------
  |  |  197|     84|    *(preval) = (oldval);                                                      \
  |  |  198|     84|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|     84|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 84, False: 0]
  |  |  ------------------
  |  |  199|     84|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|     84|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|     84|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|     84|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|     84|  }))
  ------------------
  |  Branch (4350:11): [True: 0, False: 84]
  ------------------
 4351|     84|                                                   old_ref, old_ref - 1, &old_ref))
 4352|      0|        goto retry_beginning;
 4353|       |
 4354|       |      /* Beware: object might be a dangling pointer. */
 4355|     84|      TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4356|     84|      return;
 4357|     84|    }
 4358|       |
 4359|    341|  if (old_ref == 2)
  ------------------
  |  Branch (4359:7): [True: 153, False: 188]
  ------------------
 4360|    153|    {
 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|    153|      if (!toggle_refs_check_and_ref_or_deref (object, FALSE, &old_ref, &toggle_notify, &toggle_data))
  ------------------
  |  |  925|    153|#define	FALSE	(0)
  ------------------
  |  Branch (4371:11): [True: 0, False: 153]
  ------------------
 4372|      0|        goto retry_beginning;
 4373|       |
 4374|       |      /* Beware: object might be a dangling pointer. */
 4375|    153|      TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4376|    153|      if (toggle_notify)
  ------------------
  |  Branch (4376:11): [True: 0, False: 153]
  ------------------
 4377|      0|        toggle_notify (toggle_data, object, TRUE);
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4378|    153|      return;
 4379|    153|    }
 4380|       |
 4381|    188|  if (G_UNLIKELY (old_ref != 1))
  ------------------
  |  | 1245|    188|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    188|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 188]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    188|      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|    188|   else                                         \
  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 188]
  |  |  ------------------
  ------------------
 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|    188|  if (!_object_unref_clear_weak_locations (object, &old_ref, FALSE))
  ------------------
  |  |  925|    188|#define	FALSE	(0)
  ------------------
  |  Branch (4390:7): [True: 0, False: 188]
  ------------------
 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|    188|  nqueue = g_object_notify_queue_freeze (object);
 4411|       |
 4412|    188|  TRACE (GOBJECT_OBJECT_DISPOSE (object, G_TYPE_FROM_INSTANCE (object), 1));
 4413|    188|  G_OBJECT_GET_CLASS (object)->dispose (object);
  ------------------
  |  |   89|    188|#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  571|    188|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    188|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4414|    188|  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|    188|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|    188|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    188|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    188|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    188|    gint gaig_temp;                                                          \
  |  |  113|    188|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 188]
  |  |  ------------------
  |  |  114|    188|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    188|    (gint) gaig_temp;                                                        \
  |  |  116|    188|  }))
  ------------------
 4419|       |
 4420|    188|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|    188|  if (old_ref > 1 && nqueue)
  ------------------
  |  Branch (4424:7): [True: 0, False: 188]
  |  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|    188|  if (old_ref > 2)
  ------------------
  |  Branch (4441:7): [True: 0, False: 188]
  ------------------
 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|    188|  if (old_ref == 2)
  ------------------
  |  Branch (4453:7): [True: 0, False: 188]
  ------------------
 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|    188|  if (!_object_unref_clear_weak_locations (object, &old_ref, TRUE))
  ------------------
  |  |  929|    188|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    188|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (4472:7): [True: 0, False: 188]
  ------------------
 4473|      0|    goto retry_decrement;
 4474|       |
 4475|    188|  TRACE (GOBJECT_OBJECT_UNREF (object, obj_gtype, old_ref));
 4476|       |
 4477|       |  /* The object is almost gone. Finalize. */
 4478|       |
 4479|    188|  g_datalist_id_set_data (&object->qdata, quark_closure_array, NULL);
  ------------------
  |  |  105|    188|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 4480|    188|  g_signal_handlers_destroy (object);
 4481|    188|  g_datalist_id_set_data (&object->qdata, quark_weak_notifies, NULL);
  ------------------
  |  |  105|    188|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 4482|       |
 4483|    188|  TRACE (GOBJECT_OBJECT_FINALIZE (object, G_TYPE_FROM_INSTANCE (object)));
 4484|    188|  G_OBJECT_GET_CLASS (object)->finalize (object);
  ------------------
  |  |   89|    188|#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
  |  |  ------------------
  |  |  |  |  571|    188|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|    188|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4485|    188|  TRACE (GOBJECT_OBJECT_FINALIZE_END (object, G_TYPE_FROM_INSTANCE (object)));
 4486|       |
 4487|    188|  GOBJECT_IF_DEBUG (OBJECTS,
 4488|    188|                    {
 4489|    188|                      gboolean was_present;
 4490|       |
 4491|       |                      /* catch objects not chaining finalize handlers */
 4492|    188|                      G_LOCK (debug_objects);
 4493|    188|                      was_present = g_hash_table_remove (debug_objects_ht, object);
 4494|    188|                      G_UNLOCK (debug_objects);
 4495|       |
 4496|    188|                      if (was_present)
 4497|    188|                        g_critical ("Object %p of type %s not finalized correctly.",
 4498|    188|                                    object, G_OBJECT_TYPE_NAME (object));
 4499|    188|                    });
 4500|    188|  g_type_free_instance ((GTypeInstance *) object);
 4501|    188|}
g_clear_object:
 4523|    183|{
 4524|       |  g_clear_pointer (object_ptr, g_object_unref);
  ------------------
  |  |  136|    183|  G_STMT_START                                           \
  |  |  ------------------
  |  |  |  |  985|    183|#define G_STMT_START  do
  |  |  ------------------
  |  |  137|    183|  {                                                      \
  |  |  138|    183|    G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|    183|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  139|    183|    glib_typeof ((pp)) _pp = (pp);                       \
  |  |  ------------------
  |  |  |  |   39|    183|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  140|    183|    glib_typeof (*(pp)) _ptr = *_pp;                     \
  |  |  ------------------
  |  |  |  |   39|    183|#define glib_typeof(t) __typeof__ (t)
  |  |  ------------------
  |  |  141|    183|    *_pp = NULL;                                         \
  |  |  142|    183|    if (_ptr)                                            \
  |  |  ------------------
  |  |  |  Branch (142:9): [True: 0, False: 183]
  |  |  ------------------
  |  |  143|    183|      (destroy) (_ptr);                                  \
  |  |  144|    183|  }                                                      \
  |  |  145|    183|  G_STMT_END                                             \
  |  |  ------------------
  |  |  |  |  993|    183|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 183]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  146|    183|  GLIB_AVAILABLE_MACRO_IN_2_34
  ------------------
 4525|    183|}
g_value_get_object:
 5113|     91|{
 5114|     91|  g_return_val_if_fail (G_VALUE_HOLDS_OBJECT (value), NULL);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    455|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 91]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 91]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5115|       |  
 5116|     91|  return value->data[0].v_pointer;
 5117|     91|}
gobject.c:g_object_base_class_init:
  935|      7|{
  936|      7|  GObjectClass *pclass = g_type_class_peek_parent (class);
  937|       |
  938|       |  /* Don't inherit HAS_DERIVED_CLASS flag from parent class */
  939|      7|  class->flags &= ~CLASS_HAS_DERIVED_CLASS_FLAG;
  ------------------
  |  |   89|      7|#define CLASS_HAS_DERIVED_CLASS_FLAG 0x2
  ------------------
  940|       |
  941|      7|  if (pclass)
  ------------------
  |  Branch (941:7): [True: 6, False: 1]
  ------------------
  942|      6|    pclass->flags |= CLASS_HAS_DERIVED_CLASS_FLAG;
  ------------------
  |  |   89|      6|#define CLASS_HAS_DERIVED_CLASS_FLAG 0x2
  ------------------
  943|       |
  944|       |  /* reset instance specific fields and methods that don't get inherited */
  945|      7|  class->construct_properties = pclass ? g_slist_copy (pclass->construct_properties) : NULL;
  ------------------
  |  Branch (945:33): [True: 6, False: 1]
  ------------------
  946|      7|  class->n_construct_properties = g_slist_length (class->construct_properties);
  947|      7|  class->get_property = NULL;
  948|      7|  class->set_property = NULL;
  949|       |  class->pspecs = NULL;
  950|      7|  class->n_pspecs = 0;
  951|      7|}
gobject.c:g_object_do_class_init:
  977|      1|{
  978|      1|  quark_closure_array = g_quark_from_static_string ("GObject-closure-array");
  979|      1|  quark_weak_notifies = g_quark_from_static_string ("GObject-weak-notifies");
  980|      1|  quark_weak_locations = g_quark_from_static_string ("GObject-weak-locations");
  981|      1|  quark_toggle_refs = g_quark_from_static_string ("GObject-toggle-references");
  982|      1|  quark_notify_queue = g_quark_from_static_string ("GObject-notify-queue");
  983|       |
  984|      1|  g_object_init_pspec_pool ();
  985|       |
  986|      1|  class->constructor = g_object_constructor;
  987|      1|  class->constructed = g_object_constructed;
  988|      1|  class->set_property = g_object_do_set_property;
  989|      1|  class->get_property = g_object_do_get_property;
  990|      1|  class->dispose = g_object_real_dispose;
  991|      1|  class->finalize = g_object_finalize;
  992|      1|  class->dispatch_properties_changed = g_object_dispatch_properties_changed;
  993|      1|  class->notify = NULL;
  994|       |
  995|       |  /**
  996|       |   * GObject::notify:
  997|       |   * @gobject: the object which received the signal.
  998|       |   * @pspec: the #GParamSpec of the property which changed.
  999|       |   *
 1000|       |   * The notify signal is emitted on an object when one of its properties has
 1001|       |   * its value set through g_object_set_property(), g_object_set(), et al.
 1002|       |   *
 1003|       |   * Note that getting this signal doesn’t itself guarantee that the value of
 1004|       |   * the property has actually changed. When it is emitted is determined by the
 1005|       |   * derived GObject class. If the implementor did not create the property with
 1006|       |   * %G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results
 1007|       |   * in ::notify being emitted, even if the new value is the same as the old.
 1008|       |   * If they did pass %G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only
 1009|       |   * when they explicitly call g_object_notify() or g_object_notify_by_pspec(),
 1010|       |   * and common practice is to do that only when the value has actually changed.
 1011|       |   *
 1012|       |   * This signal is typically used to obtain change notification for a
 1013|       |   * single property, by specifying the property name as a detail in the
 1014|       |   * g_signal_connect() call, like this:
 1015|       |   *
 1016|       |   * |[<!-- language="C" --> 
 1017|       |   * g_signal_connect (text_view->buffer, "notify::paste-target-list",
 1018|       |   *                   G_CALLBACK (gtk_text_view_target_list_notify),
 1019|       |   *                   text_view)
 1020|       |   * ]|
 1021|       |   *
 1022|       |   * It is important to note that you must use
 1023|       |   * [canonical parameter names][canonical-parameter-names] as
 1024|       |   * detail strings for the notify signal.
 1025|       |   */
 1026|      1|  gobject_signals[NOTIFY] =
 1027|      1|    g_signal_new (g_intern_static_string ("notify"),
 1028|      1|		  G_TYPE_FROM_CLASS (class),
  ------------------
  |  |  657|      1|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  ------------------
 1029|      1|		  G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE | G_SIGNAL_DETAILED | G_SIGNAL_NO_HOOKS | G_SIGNAL_ACTION,
 1030|      1|		  G_STRUCT_OFFSET (GObjectClass, notify),
  ------------------
  |  |  964|      1|      ((glong) offsetof (struct_type, member))
  ------------------
 1031|      1|		  NULL, NULL,
 1032|      1|		  NULL,
 1033|      1|		  G_TYPE_NONE,
  ------------------
  |  |   72|      1|#define G_TYPE_NONE			G_TYPE_MAKE_FUNDAMENTAL (1)
  |  |  ------------------
  |  |  |  |  227|      1|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1034|      1|		  1, G_TYPE_PARAM);
  ------------------
  |  |  183|      1|#define G_TYPE_PARAM			G_TYPE_MAKE_FUNDAMENTAL (19)
  |  |  ------------------
  |  |  |  |  227|      1|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|      1|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1035|       |
 1036|       |  /* Install a check function that we'll use to verify that classes that
 1037|       |   * implement an interface implement all properties for that interface
 1038|       |   */
 1039|      1|  g_type_add_interface_check (NULL, object_interface_check_properties);
 1040|       |
 1041|       |#if HAVE_PRIVATE
 1042|       |  g_type_class_adjust_private_offset (class, &GObject_private_offset);
 1043|       |#endif
 1044|      1|}
gobject.c:g_object_constructed:
 3009|    188|{
 3010|       |  /* empty default impl to allow unconditional upchaining */
 3011|    188|}
gobject.c:g_object_real_dispose:
 1751|    188|{
 1752|    188|  g_signal_handlers_destroy (object);
 1753|       |
 1754|       |  /* GWeakNotify and GClosure can call into user code */
 1755|    188|  g_datalist_id_set_data (&object->qdata, quark_weak_notifies, NULL);
  ------------------
  |  |  105|    188|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 1756|       |  g_datalist_id_set_data (&object->qdata, quark_closure_array, NULL);
  ------------------
  |  |  105|    188|     g_datalist_id_set_data_full ((dl), (q), (d), NULL)
  ------------------
 1757|    188|}
gobject.c:g_object_finalize:
 1781|    188|{
 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|    188|  g_datalist_clear (&object->qdata);
 1800|       |  
 1801|    188|  GOBJECT_IF_DEBUG (OBJECTS,
 1802|    188|    {
 1803|    188|      G_LOCK (debug_objects);
 1804|    188|      g_assert (g_hash_table_contains (debug_objects_ht, object));
 1805|    188|      g_hash_table_remove (debug_objects_ht, object);
 1806|    188|      debug_objects_count--;
 1807|    188|      G_UNLOCK (debug_objects);
 1808|    188|    });
 1809|    188|}
gobject.c:object_interface_check_properties:
 2213|      3|{
 2214|      3|  GTypeInterface *iface_class = g_iface;
 2215|      3|  GObjectClass *class;
 2216|      3|  GType iface_type = iface_class->g_type;
 2217|      3|  GParamSpec **pspecs;
 2218|      3|  guint n;
 2219|       |
 2220|      3|  class = g_type_class_ref (iface_class->g_instance_type);
 2221|       |
 2222|      3|  if (class == NULL)
  ------------------
  |  Branch (2222:7): [True: 0, False: 3]
  ------------------
 2223|      0|    return;
 2224|       |
 2225|      3|  if (!G_IS_OBJECT_CLASS (class))
  ------------------
  |  |   80|      3|#define G_IS_OBJECT_CLASS(class)    (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
  |  |  ------------------
  |  |  |  |  610|      3|#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type)                (_G_TYPE_CCT ((g_class), (g_type)))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2681|      3|#  define _G_TYPE_CCT(cp, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|      3|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2682|      3|  GTypeClass *__class = (GTypeClass*) cp; GType __t = gt; gboolean __r; \
  |  |  |  |  |  | 2683|      3|  if (!__class) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2683:7): [True: 0, False: 3]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2684|      3|    __r = FALSE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2685|      3|  else if (__class->g_type == __t) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (2685:12): [True: 0, False: 3]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2686|      3|    __r = TRUE; \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 2687|      3|  else \
  |  |  |  |  |  | 2688|      3|    __r = g_type_check_class_is_a (__class, __t); \
  |  |  |  |  |  | 2689|      3|  __r; \
  |  |  |  |  |  | 2690|      3|}))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2225:7): [True: 0, False: 3]
  ------------------
 2226|      0|    goto out;
 2227|       |
 2228|      3|  pspecs = g_param_spec_pool_list (pspec_pool, iface_type, &n);
 2229|       |
 2230|      3|  while (n--)
  ------------------
  |  Branch (2230:10): [True: 0, False: 3]
  ------------------
 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|      3|  g_free (pspecs);
 2357|       |
 2358|      3| out:
 2359|      3|  g_type_class_unref (class);
 2360|      3|}
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|     91|{
 1424|     91|  if (((GTypeInstance *) (*pspec))->g_class->g_type == G_TYPE_PARAM_OVERRIDE)
  ------------------
  |  |  509|     91|#define	G_TYPE_PARAM_OVERRIDE		   (g_param_spec_types[20])
  ------------------
  |  Branch (1424:7): [True: 0, False: 91]
  ------------------
 1425|      0|    *pspec = ((GParamSpecOverride *) (*pspec))->overridden;
 1426|     91|}
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|    467|{
 1638|       |  return g_atomic_int_get (object_get_optional_flags_p (object));
  ------------------
  |  |  110|    467|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    467|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    467|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    467|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    467|    gint gaig_temp;                                                          \
  |  |  113|    467|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 467]
  |  |  ------------------
  |  |  114|    467|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    467|    (gint) gaig_temp;                                                        \
  |  |  116|    467|  }))
  ------------------
 1639|    467|}
gobject.c:object_get_optional_flags_p:
  246|  1.95k|{
  247|  1.95k|#if HAVE_OPTIONAL_FLAGS_IN_GOBJECT
  248|  1.95k|  return &(((GObjectReal *) object)->optional_flags);
  249|       |#else
  250|       |  return &g_object_get_instance_private (object)->optional_flags;
  251|       |#endif
  252|  1.95k|}
gobject.c:object_set_optional_flags:
 1644|    188|{
 1645|       |  g_atomic_int_or (object_get_optional_flags_p (object), flags);
  ------------------
  |  |  221|    188|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  222|    188|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    188|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  223|    188|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (223:13): [Folded, False: 188]
  |  |  ------------------
  |  |  224|    188|    (guint) __atomic_fetch_or ((atomic), (val), __ATOMIC_SEQ_CST);           \
  |  |  225|    188|  }))
  ------------------
 1646|    188|}
gobject.c:g_object_init:
 1699|    188|{
 1700|    188|  object->ref_count = 1;
 1701|    188|  object->qdata = NULL;
 1702|       |
 1703|    188|  if (CLASS_HAS_PROPS (class) && CLASS_NEEDS_NOTIFY (class))
  ------------------
  |  |   78|    376|    ((class)->flags & CLASS_HAS_PROPS_FLAG)
  |  |  ------------------
  |  |  |  |   76|    188|#define CLASS_HAS_PROPS_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (78:5): [True: 91, False: 97]
  |  |  ------------------
  ------------------
                if (CLASS_HAS_PROPS (class) && CLASS_NEEDS_NOTIFY (class))
  ------------------
  |  |   87|     91|    (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   83|    182|#define CLASS_HAS_NOTIFY(class) ((class)->notify != NULL)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:33): [True: 0, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   85|     91|    ((class)->dispatch_properties_changed != g_object_dispatch_properties_changed)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (85:5): [True: 0, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|    188|  set_object_in_construction (object);
 1711|       |
 1712|    188|  GOBJECT_IF_DEBUG (OBJECTS,
 1713|    188|    {
 1714|    188|      G_LOCK (debug_objects);
 1715|    188|      debug_objects_count++;
 1716|    188|      g_hash_table_add (debug_objects_ht, object);
 1717|    188|      G_UNLOCK (debug_objects);
 1718|    188|    });
 1719|    188|}
gobject.c:set_object_in_construction:
 1686|    188|{
 1687|    188|  object_set_optional_flags (object, OPTIONAL_FLAG_IN_CONSTRUCTION);
  ------------------
  |  |  107|    188|#define OPTIONAL_FLAG_IN_CONSTRUCTION    (1 << 0)
  ------------------
 1688|    188|}
gobject.c:g_object_notify_queue_freeze:
  682|    188|{
  683|    188|  GObjectNotifyQueue *nqueue;
  684|       |
  685|    188|  object_bit_lock (object, OPTIONAL_BIT_LOCK_NOTIFY);
  ------------------
  |  |  128|    188|#define OPTIONAL_BIT_LOCK_NOTIFY         2
  ------------------
  686|    188|  nqueue = g_datalist_id_get_data (&object->qdata, quark_notify_queue);
  687|    188|  if (!nqueue)
  ------------------
  |  Branch (687:7): [True: 188, False: 0]
  ------------------
  688|    188|    {
  689|    188|      nqueue = g_object_notify_queue_create_queue_frozen (object);
  690|    188|      goto out;
  691|    188|    }
  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|    188|out:
  702|    188|  object_bit_unlock (object, OPTIONAL_BIT_LOCK_NOTIFY);
  ------------------
  |  |  128|    188|#define OPTIONAL_BIT_LOCK_NOTIFY         2
  ------------------
  703|       |
  704|    188|  return nqueue;
  705|      0|}
gobject.c:g_object_notify_queue_create_queue_frozen:
  665|    188|{
  666|    188|  GObjectNotifyQueue *nqueue;
  667|       |
  668|    188|  nqueue = g_new0 (GObjectNotifyQueue, 1);
  ------------------
  |  |  332|    188|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    188|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    188|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    188|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    188|	  gpointer __p;						\
  |  |  |  |  264|    188|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 188]
  |  |  |  |  ------------------
  |  |  |  |  265|    188|	    __p = g_##func (__n);				\
  |  |  |  |  266|    188|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 188, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    188|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    188|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    188|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 188]
  |  |  |  |  |  Branch (267:26): [True: 188, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    188|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    188|	  else							\
  |  |  |  |  270|    188|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    188|	  __p;							\
  |  |  |  |  272|    188|	}))
  |  |  ------------------
  ------------------
  669|       |
  670|    188|  *nqueue = (GObjectNotifyQueue){
  671|    188|    .freeze_count = 1,
  672|    188|  };
  673|       |
  674|    188|  g_datalist_id_set_data_full (&object->qdata, quark_notify_queue,
  675|    188|                               nqueue, g_object_notify_queue_free);
  676|       |
  677|    188|  return nqueue;
  678|    188|}
gobject.c:g_object_notify_queue_free:
  656|    188|{
  657|    188|  GObjectNotifyQueue *nqueue = data;
  658|       |
  659|    188|  g_slist_free (nqueue->pspecs);
  660|    188|  g_free_sized (nqueue, sizeof (GObjectNotifyQueue));
  661|    188|}
gobject.c:g_object_new_internal:
 2598|    188|{
 2599|    188|  GObjectNotifyQueue *nqueue = NULL;
 2600|    188|  GObject *object;
 2601|    188|  guint i;
 2602|       |
 2603|    188|  if G_UNLIKELY (CLASS_HAS_CUSTOM_CONSTRUCTOR (class))
  ------------------
  |  | 1245|    188|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    188|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 188]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    188|      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|    188|   else                                         \
  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:27): [True: 0, False: 188]
  |  |  ------------------
  ------------------
 2604|      0|    return g_object_new_with_custom_constructor (class, params, n_params);
 2605|       |
 2606|    188|  object = (GObject *) g_type_create_instance (class->g_type_class.g_type);
 2607|       |
 2608|    188|  g_assert (g_object_is_aligned (object));
  ------------------
  |  |  275|    188|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    188|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    188|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    188|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    188|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 188, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    188|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    188|   else                                         \
  |  |  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 188, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    188|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    188|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    188|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 188]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2609|       |
 2610|    188|  unset_object_in_construction (object);
 2611|       |
 2612|    188|  if (CLASS_HAS_PROPS (class))
  ------------------
  |  |   78|    188|    ((class)->flags & CLASS_HAS_PROPS_FLAG)
  |  |  ------------------
  |  |  |  |   76|    188|#define CLASS_HAS_PROPS_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (78:5): [True: 91, False: 97]
  |  |  ------------------
  ------------------
 2613|     91|    {
 2614|     91|      GSList *node;
 2615|       |
 2616|     91|      if (_g_object_has_notify_handler (object))
  ------------------
  |  Branch (2616:11): [True: 0, False: 91]
  ------------------
 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|    182|      for (node = class->construct_properties; node; node = node->next)
  ------------------
  |  Branch (2630:48): [True: 91, False: 91]
  ------------------
 2631|     91|        {
 2632|     91|          const GValue *value;
 2633|     91|          GParamSpec *pspec;
 2634|     91|          guint j;
 2635|     91|          gboolean user_specified = FALSE;
  ------------------
  |  |  925|     91|#define	FALSE	(0)
  ------------------
 2636|       |
 2637|     91|          pspec = node->data;
 2638|     91|          value = NULL; /* to silence gcc... */
 2639|       |
 2640|     91|          for (j = 0; j < n_params; j++)
  ------------------
  |  Branch (2640:23): [True: 0, False: 91]
  ------------------
 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|     91|          if (value == NULL)
  ------------------
  |  Branch (2648:15): [True: 91, False: 0]
  ------------------
 2649|     91|            value = g_param_spec_get_default_value (pspec);
 2650|       |
 2651|     91|          object_set_property (object, pspec, value, nqueue, user_specified);
 2652|     91|        }
 2653|     91|    }
 2654|       |
 2655|       |  /* run 'constructed' handler if there is a custom one */
 2656|    188|  if (CLASS_HAS_CUSTOM_CONSTRUCTED (class))
  ------------------
  |  |   82|    188|    ((class)->constructed != g_object_constructed)
  |  |  ------------------
  |  |  |  Branch (82:5): [True: 188, False: 0]
  |  |  ------------------
  ------------------
 2657|    188|    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|    188|  for (i = 0; i < n_params; i++)
  ------------------
  |  Branch (2662:15): [True: 0, False: 188]
  ------------------
 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|    188|  if (nqueue)
  ------------------
  |  Branch (2666:7): [True: 0, False: 188]
  ------------------
 2667|      0|    g_object_notify_queue_thaw (object, nqueue, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2668|       |
 2669|    188|  return object;
 2670|    188|}
gobject.c:g_object_is_aligned:
 2436|    188|{
 2437|    188|  return ((((guintptr) (void *) object) %
 2438|    188|             MAX (G_ALIGNOF (gdouble),
  ------------------
  |  |  933|  1.12k|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [Folded, False: 188]
  |  |  |  Branch (933:29): [Folded, False: 188]
  |  |  |  Branch (933:29): [Folded, False: 188]
  |  |  |  Branch (933:29): [Folded, False: 188]
  |  |  |  Branch (933:42): [Folded, False: 188]
  |  |  |  Branch (933:42): [Folded, False: 188]
  |  |  |  Branch (933:42): [Folded, False: 188]
  |  |  ------------------
  ------------------
 2439|    188|                  MAX (G_ALIGNOF (guint64),
 2440|    188|                       MAX (G_ALIGNOF (gint),
 2441|    188|                            G_ALIGNOF (glong))))) == 0);
 2442|    188|}
gobject.c:unset_object_in_construction:
 1692|    188|{
 1693|    188|  object_unset_optional_flags (object, OPTIONAL_FLAG_IN_CONSTRUCTION);
  ------------------
  |  |  107|    188|#define OPTIONAL_FLAG_IN_CONSTRUCTION    (1 << 0)
  ------------------
 1694|    188|}
gobject.c:object_unset_optional_flags:
 1651|    188|{
 1652|       |  g_atomic_int_and (object_get_optional_flags_p (object), ~flags);
  ------------------
  |  |  215|    188|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  216|    188|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    188|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  217|    188|    (void) (0 ? *(atomic) ^ (val) : 1);                                      \
  |  |  ------------------
  |  |  |  Branch (217:13): [Folded, False: 188]
  |  |  ------------------
  |  |  218|    188|    (guint) __atomic_fetch_and ((atomic), (val), __ATOMIC_SEQ_CST);          \
  |  |  219|    188|  }))
  ------------------
 1653|    188|}
gobject.c:_g_object_has_notify_handler:
 1663|     91|{
 1664|     91|  return CLASS_NEEDS_NOTIFY (G_OBJECT_GET_CLASS (object)) ||
  ------------------
  |  |   87|    182|    (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   83|    182|#define CLASS_HAS_NOTIFY(class) ((class)->notify != NULL)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (83:33): [True: 0, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (CLASS_HAS_NOTIFY(class) || CLASS_HAS_CUSTOM_DISPATCH(class))
  |  |  ------------------
  |  |  |  |   85|     91|    ((class)->dispatch_properties_changed != g_object_dispatch_properties_changed)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (85:5): [True: 0, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1665|     91|         (object_get_optional_flags (object) & OPTIONAL_FLAG_HAS_NOTIFY_HANDLER) != 0;
  ------------------
  |  |  109|     91|#define OPTIONAL_FLAG_HAS_NOTIFY_HANDLER (1 << 2) /* Same, specifically for "notify" */
  ------------------
  |  Branch (1665:10): [True: 0, False: 91]
  ------------------
 1666|     91|}
gobject.c:object_set_property:
 2149|     91|{
 2150|     91|  GTypeInstance *inst = (GTypeInstance *) object;
 2151|     91|  GObjectClass *class;
 2152|     91|  GParamSpecClass *pclass;
 2153|     91|  guint param_id = PARAM_SPEC_PARAM_ID (pspec);
  ------------------
  |  |   68|     91|#define PARAM_SPEC_PARAM_ID(pspec)		((pspec)->param_id)
  ------------------
 2154|       |
 2155|     91|  if (G_LIKELY (inst->g_class->g_type == pspec->owner_type))
  ------------------
  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 2, False: 89]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|     91|      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|     91|   else                                         \
  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     89|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     89|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 2, False: 89]
  |  |  ------------------
  ------------------
 2156|      2|    class = (GObjectClass *) inst->g_class;
 2157|     89|  else
 2158|     89|    class = g_type_class_peek (pspec->owner_type);
 2159|       |
 2160|     91|  g_assert (class != NULL);
  ------------------
  |  |  275|     91|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     91|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     91|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     91|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2161|       |
 2162|     91|  param_spec_follow_override (&pspec);
 2163|       |
 2164|     91|  if (user_specified)
  ------------------
  |  Branch (2164:7): [True: 0, False: 91]
  ------------------
 2165|      0|    consider_issuing_property_deprecation_warning (pspec);
 2166|       |
 2167|     91|  pclass = G_PARAM_SPEC_GET_CLASS (pspec);
  ------------------
  |  |   81|     91|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|     91|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|     91|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2168|     91|  if (g_value_type_compatible (G_VALUE_TYPE (value), pspec->value_type) &&
  ------------------
  |  |   62|     91|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (2168:7): [True: 91, False: 0]
  ------------------
 2169|     91|      (pclass->value_validate == NULL ||
  ------------------
  |  Branch (2169:8): [True: 0, False: 91]
  ------------------
 2170|     91|       (pclass->value_is_valid != NULL && pclass->value_is_valid (pspec, value))))
  ------------------
  |  Branch (2170:9): [True: 91, False: 0]
  |  Branch (2170:43): [True: 0, False: 91]
  ------------------
 2171|      0|    {
 2172|      0|      class->set_property (object, param_id, value, pspec);
 2173|      0|    }
 2174|     91|  else
 2175|     91|    {
 2176|       |      /* provide a copy to work from, convert (if necessary) and validate */
 2177|     91|      GValue tmp_value = G_VALUE_INIT;
  ------------------
  |  |  207|     91|#define G_VALUE_INIT  { 0, { { 0 } } }
  ------------------
 2178|       |
 2179|     91|      g_value_init (&tmp_value, pspec->value_type);
 2180|       |
 2181|     91|      if (!g_value_transform (value, &tmp_value))
  ------------------
  |  Branch (2181:11): [True: 0, False: 91]
  ------------------
 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|     91|                    pspec->name,
 2184|     91|                    g_type_name (pspec->value_type),
 2185|     91|                    G_VALUE_TYPE_NAME (value));
 2186|     91|      else if (g_param_value_validate (pspec, &tmp_value) && !(pspec->flags & G_PARAM_LAX_VALIDATION))
  ------------------
  |  Branch (2186:16): [True: 0, False: 91]
  |  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|     91|      else
 2198|     91|        {
 2199|     91|          class->set_property (object, param_id, &tmp_value, pspec);
 2200|     91|        }
 2201|       |
 2202|     91|      g_value_unset (&tmp_value);
 2203|     91|    }
 2204|       |
 2205|     91|  if ((pspec->flags & (G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE)) == G_PARAM_READABLE &&
  ------------------
  |  Branch (2205:7): [True: 91, False: 0]
  ------------------
 2206|     91|      nqueue != NULL)
  ------------------
  |  Branch (2206:7): [True: 0, False: 91]
  ------------------
 2207|      0|    g_object_notify_queue_add (object, nqueue, pspec, FALSE);
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 2208|     91|}
gobject.c:object_bit_lock:
  623|    554|{
  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|    554|  g_bit_lock ((gint *) object_get_optional_flags_p (object), _OPTIONAL_BIT_LOCK);
  ------------------
  |  |  105|    554|#define _OPTIONAL_BIT_LOCK               3
  ------------------
  634|    554|}
gobject.c:weak_refs_notify:
 3641|      5|{
 3642|      5|  WeakRefStack *wstack = data;
 3643|      5|  guint i;
 3644|       |
 3645|     65|  for (i = 0; i < wstack->n_weak_refs; i++)
  ------------------
  |  Branch (3645:15): [True: 60, False: 5]
  ------------------
 3646|     60|    wstack->weak_refs[i].notify (wstack->weak_refs[i].data, wstack->object);
 3647|      5|  g_free (wstack);
 3648|      5|}
gobject.c:object_bit_unlock:
  638|    554|{
  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|    554|  g_bit_unlock ((gint *) object_get_optional_flags_p (object), _OPTIONAL_BIT_LOCK);
  ------------------
  |  |  105|    554|#define _OPTIONAL_BIT_LOCK               3
  ------------------
  651|    554|}
gobject.c:object_ref:
 4177|    237|{
 4178|    237|  GToggleNotify toggle_notify;
 4179|    237|  gpointer toggle_data;
 4180|    237|  gint old_ref;
 4181|       |
 4182|    237|  old_ref = g_atomic_int_get (&object->ref_count);
  ------------------
  |  |  110|    237|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    237|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    237|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    237|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    237|    gint gaig_temp;                                                          \
  |  |  113|    237|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 237]
  |  |  ------------------
  |  |  114|    237|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    237|    (gint) gaig_temp;                                                        \
  |  |  116|    237|  }))
  ------------------
 4183|       |
 4184|    237|retry:
 4185|    237|  toggle_notify = NULL;
 4186|    237|  toggle_data = NULL;
 4187|    237|  if (old_ref > 1 && old_ref < G_MAXINT)
  ------------------
  |  |   39|     84|#define G_MAXINT	INT_MAX
  ------------------
  |  Branch (4187:7): [True: 84, False: 153]
  |  Branch (4187:22): [True: 84, False: 0]
  ------------------
 4188|     84|    {
 4189|       |      /* Fast-path. We have apparently more than 1 references already. No
 4190|       |       * special handling for toggle references, just increment the ref count. */
 4191|     84|      if (!g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|     84|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|     84|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|     84|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|     84|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|     84|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|     84|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|     84|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 84]
  |  |  ------------------
  |  |  197|     84|    *(preval) = (oldval);                                                      \
  |  |  198|     84|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|     84|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 84, False: 0]
  |  |  ------------------
  |  |  199|     84|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|     84|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|     84|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|     84|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|     84|  }))
  ------------------
  |  Branch (4191:11): [True: 0, False: 84]
  ------------------
 4192|     84|                                                   old_ref, old_ref + 1, &old_ref))
 4193|      0|        goto retry;
 4194|     84|    }
 4195|    153|  else if (old_ref == 1)
  ------------------
  |  Branch (4195:12): [True: 153, False: 0]
  ------------------
 4196|    153|    {
 4197|       |      /* With ref count 1, check whether we need to emit a toggle notification. */
 4198|    153|      if (!toggle_refs_check_and_ref_or_deref (object, TRUE, &old_ref, &toggle_notify, &toggle_data))
  ------------------
  |  |  929|    153|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    153|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (4198:11): [True: 0, False: 153]
  ------------------
 4199|      0|        goto retry;
 4200|    153|    }
 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|    237|  TRACE (GOBJECT_OBJECT_REF (object, G_TYPE_FROM_INSTANCE (object), old_ref));
 4212|       |
 4213|    237|  *out_toggle_notify = toggle_notify;
 4214|    237|  *out_toggle_data = toggle_data;
 4215|    237|  return object;
 4216|    237|}
gobject.c:toggle_refs_check_and_ref_or_deref:
 3961|    306|{
 3962|    306|  const gint ref_curr = is_ref ? 1 : 2;
  ------------------
  |  Branch (3962:25): [True: 153, False: 153]
  ------------------
 3963|    306|  const gint ref_next = is_ref ? 2 : 1;
  ------------------
  |  Branch (3963:25): [True: 153, False: 153]
  ------------------
 3964|    306|  gboolean success;
 3965|       |
 3966|       |#if G_ENABLE_DEBUG
 3967|       |  g_assert (ref_curr == *old_ref);
 3968|       |#endif
 3969|       |
 3970|    306|  *toggle_notify = NULL;
 3971|    306|  *toggle_data = NULL;
 3972|       |
 3973|    306|  object_bit_lock (object, OPTIONAL_BIT_LOCK_TOGGLE_REFS);
  ------------------
  |  |  129|    306|#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|    306|  success = g_atomic_int_compare_and_exchange_full ((int *) &object->ref_count,
  ------------------
  |  |  193|    306|  (G_GNUC_EXTENSION ({                                                         \
  |  |  ------------------
  |  |  |  |   62|    306|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  194|    306|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    306|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  195|    306|    G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint));                       \
  |  |  ------------------
  |  |  |  |  871|    306|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  196|    306|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1);              \
  |  |  ------------------
  |  |  |  Branch (196:13): [Folded, False: 306]
  |  |  ------------------
  |  |  197|    306|    *(preval) = (oldval);                                                      \
  |  |  198|    306|    __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE,          \
  |  |  ------------------
  |  |  |  |  925|    306|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (198:5): [True: 306, False: 0]
  |  |  ------------------
  |  |  199|    306|                                 __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)           \
  |  |  200|    306|                                 ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  929|    306|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    306|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                                                ? TRUE : FALSE;                               \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |  201|    306|  }))
  ------------------
 3979|    306|                                                    ref_curr,
 3980|    306|                                                    ref_next,
 3981|    306|                                                    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|    306|  if (success && OBJECT_HAS_TOGGLE_REF (object))
  ------------------
  |  |   73|    306|    ((g_datalist_get_flags (&(object)->qdata) & OBJECT_HAS_TOGGLE_REF_FLAG) != 0)
  |  |  ------------------
  |  |  |  |   71|    306|#define OBJECT_HAS_TOGGLE_REF_FLAG 0x1
  |  |  ------------------
  |  |  |  Branch (73:5): [True: 0, False: 306]
  |  |  ------------------
  ------------------
  |  Branch (3997:7): [True: 306, 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|    306|  object_bit_unlock (object, OPTIONAL_BIT_LOCK_TOGGLE_REFS);
  ------------------
  |  |  129|    306|#define OPTIONAL_BIT_LOCK_TOGGLE_REFS    3
  ------------------
 4015|       |
 4016|    306|  return success;
 4017|    306|}
gobject.c:_object_unref_clear_weak_locations:
 4250|    376|{
 4251|    376|  WeakRefData *wrdata;
 4252|    376|  gboolean success;
 4253|       |
 4254|       |  /* Fast path, for objects that never had a GWeakRef registered. */
 4255|    376|  if (!(object_get_optional_flags (object) & OPTIONAL_FLAG_EVER_HAD_WEAK_REF))
  ------------------
  |  |  111|    376|#define OPTIONAL_FLAG_EVER_HAD_WEAK_REF  (1 << 4) /* whether on the object ever g_weak_ref_set() was called. */
  ------------------
  |  Branch (4255:7): [True: 376, False: 0]
  ------------------
 4256|    376|    {
 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|    376|      if (do_unref)
  ------------------
  |  Branch (4264:11): [True: 188, False: 188]
  ------------------
 4265|    188|        {
 4266|    188|          if (!g_atomic_int_compare_and_exchange ((gint *) &object->ref_count, 1, 0))
  ------------------
  |  |  185|    188|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|    188|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|    188|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    188|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|    188|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 188]
  |  |  ------------------
  |  |  189|    188|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|    188|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|    188|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    188|#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: 188, False: 0]
  |  |  ------------------
  |  |  190|    188|  }))
  ------------------
  |  Branch (4266:15): [True: 0, False: 188]
  ------------------
 4267|      0|            {
 4268|       |#if G_ENABLE_DEBUG
 4269|       |              g_assert_not_reached ();
 4270|       |#endif
 4271|      0|            }
 4272|    188|        }
 4273|    376|      return TRUE;
  ------------------
  |  |  929|    376|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    376|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 4274|    376|    }
 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|    376|}
gobject.c:g_value_object_init:
 4929|     93|{
 4930|       |  value->data[0].v_pointer = NULL;
 4931|     93|}
gobject.c:g_value_object_free_value:
 4935|    183|{
 4936|    183|  g_clear_object ((GObject**) &value->data[0].v_pointer);
 4937|    183|}
gobject.c:g_value_object_copy_value:
 4942|     91|{
 4943|       |  g_set_object ((GObject**) &dest_value->data[0].v_pointer,
  ------------------
  |  |  763|     91|  (G_GNUC_EXTENSION ({ \
  |  |  ------------------
  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  764|     91|    G_STATIC_ASSERT (sizeof *(object_ptr) == sizeof (new_object)); \
  |  |  ------------------
  |  |  |  |  871|     91|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  765|     91|    /* Only one access, please; work around type aliasing */ \
  |  |  766|     91|    union { char *in; GObject **out; } _object_ptr; \
  |  |  767|     91|    _object_ptr.in = (char *) (object_ptr); \
  |  |  768|     91|    /* Check types match */ \
  |  |  769|     91|    (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  |  |                   (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
  |  |  ------------------
  |  |  |  |  925|     91|#define	FALSE	(0)
  |  |  ------------------
  |  |  |  Branch (769:13): [Folded, False: 91]
  |  |  ------------------
  |  |  770|     91|    (g_set_object) (_object_ptr.out, (GObject *) new_object); \
  |  |  771|     91|  })) \
  |  |  772|     91|  GOBJECT_AVAILABLE_MACRO_IN_2_44
  ------------------
 4944|     91|                src_value->data[0].v_pointer);
 4945|     91|}

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

_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|     91|{
  693|     91|  g_return_val_if_fail (G_IS_PARAM_SPEC (pspec), FALSE);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  694|     91|  g_return_val_if_fail (G_IS_VALUE (value), FALSE);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  695|     91|  g_return_val_if_fail (PSPEC_APPLIES_TO_VALUE (pspec, value), FALSE);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    455|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 91]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  696|       |
  697|     91|  if (G_PARAM_SPEC_GET_CLASS (pspec)->value_validate)
  ------------------
  |  |   81|     91|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|     91|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|     91|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (697:7): [True: 91, False: 0]
  ------------------
  698|     91|    {
  699|     91|      GValue oval = *value;
  700|       |
  701|     91|      if (G_PARAM_SPEC_GET_CLASS (pspec)->value_validate (pspec, value) ||
  ------------------
  |  |   81|     91|#define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
  |  |  ------------------
  |  |  |  |  571|     91|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2667|     91|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (701:11): [True: 0, False: 91]
  ------------------
  702|     91|	  memcmp (&oval.data, &value->data, sizeof (oval.data)))
  ------------------
  |  Branch (702:4): [True: 0, False: 91]
  ------------------
  703|      0|	return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  704|     91|    }
  705|       |
  706|     91|  return FALSE;
  ------------------
  |  |  925|     91|#define	FALSE	(0)
  ------------------
  707|     91|}
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|      3|{
 1381|      3|  GParamSpec **pspecs, **p;
 1382|      3|  GSList **slists, *node;
 1383|      3|  gpointer data[4];
 1384|      3|  guint d, i;
 1385|      3|  int n_pspecs = 0;
 1386|       |
 1387|      3|  g_return_val_if_fail (pool != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1388|      3|  g_return_val_if_fail (owner_type > 0, 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1389|      3|  g_return_val_if_fail (n_pspecs_p != 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1390|       |  
 1391|      3|  g_mutex_lock (&pool->mutex);
 1392|      3|  d = g_type_depth (owner_type);
 1393|      3|  slists = g_new0 (GSList*, d);
  ------------------
  |  |  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: 0, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  267|      3|	           (__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|      3|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      3|	  else							\
  |  |  |  |  270|      3|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      3|	  __p;							\
  |  |  |  |  272|      3|	}))
  |  |  ------------------
  ------------------
 1394|      3|  data[0] = slists;
 1395|      3|  data[1] = GTYPE_TO_POINTER (owner_type);
  ------------------
  |  | 2732|      3|#define GTYPE_TO_POINTER(t) ((gpointer) (guintptr) (t)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
 1396|      3|  data[2] = pool->hash_table;
 1397|      3|  data[3] = &n_pspecs;
 1398|       |
 1399|      3|  g_hash_table_foreach (pool->hash_table,
 1400|      3|                        G_TYPE_IS_INTERFACE (owner_type) ?
  ------------------
  |  |  300|      3|#define G_TYPE_IS_INTERFACE(type)               (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   42|      3|#define G_TYPE_FUNDAMENTAL(type)	(g_type_fundamental (type))
  |  |  ------------------
  |  |               #define G_TYPE_IS_INTERFACE(type)               (G_TYPE_FUNDAMENTAL (type) == 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 (300:49): [True: 3, False: 0]
  |  |  ------------------
  ------------------
 1401|      3|                          pool_depth_list_for_interface :
 1402|      3|                          pool_depth_list,
 1403|      3|                        &data);
 1404|       |
 1405|      3|  pspecs = g_new (GParamSpec*, n_pspecs + 1);
  ------------------
  |  |  315|      3|#define g_new(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc)
  |  |  ------------------
  |  |  |  |  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: 0, False: 3]
  |  |  |  |  ------------------
  |  |  |  |  267|      3|	           (__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|      3|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      3|	  else							\
  |  |  |  |  270|      3|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      3|	  __p;							\
  |  |  |  |  272|      3|	}))
  |  |  ------------------
  ------------------
 1406|      3|  p = pspecs;
 1407|      9|  for (i = 0; i < d; i++)
  ------------------
  |  Branch (1407:15): [True: 6, False: 3]
  ------------------
 1408|      6|    {
 1409|      6|      slists[i] = g_slist_sort (slists[i], pspec_compare_id);
 1410|      6|      for (node = slists[i]; node; node = node->next)
  ------------------
  |  Branch (1410:30): [True: 0, False: 6]
  ------------------
 1411|      0|	*p++ = node->data;
 1412|      6|      g_slist_free (slists[i]);
 1413|      6|    }
 1414|      3|  *p++ = NULL;
 1415|      3|  g_free (slists);
 1416|      3|  g_mutex_unlock (&pool->mutex);
 1417|       |
 1418|      3|  *n_pspecs_p = n_pspecs;
 1419|       |
 1420|      3|  return pspecs;
 1421|      3|}
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|     91|{
 1636|     91|  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|     91|  if (g_once_init_enter_pointer (&priv->default_value.g_type))
  ------------------
  |  |  282|     91|  (G_GNUC_EXTENSION ({                                         \
  |  |  ------------------
  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  |  Branch (282:3): [True: 1, False: 90]
  |  |  ------------------
  |  |  283|     91|    G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
  |  |  ------------------
  |  |  |  |  871|     91|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  284|     91|    (void) (0 ? (gpointer) * (location) : NULL);               \
  |  |  ------------------
  |  |  |  Branch (284:13): [Folded, False: 91]
  |  |  ------------------
  |  |  285|     91|    (!g_atomic_pointer_get (location) &&                       \
  |  |  ------------------
  |  |  |  |  127|    182|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|    182|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|     91|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|    182|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|     91|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|    182|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|     91|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|    182|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|    182|    gapg_temp_newval;                                                      \
  |  |  |  |  133|    182|  }))
  |  |  ------------------
  |  |  |  Branch (285:6): [True: 1, False: 90]
  |  |  ------------------
  |  |  286|     91|     g_once_init_enter_pointer (location));                    \
  |  |  ------------------
  |  |  |  Branch (286:6): [True: 1, False: 0]
  |  |  ------------------
  |  |  287|     91|  })) 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|     91|  return &priv->default_value;
 1665|     91|}
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|     92|{
   96|     92|  return &G_STRUCT_MEMBER (GParamSpecPrivate, pspec, g_param_private_offset);
  ------------------
  |  |  973|     92|    (*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
  |  |  ------------------
  |  |  |  |  971|     92|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  ------------------
   97|     92|}
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|      3|{
 1348|      3|  GParamSpec *pspec = value;
 1349|      3|  gpointer *data = user_data;
 1350|      3|  GSList **slists = data[0];
 1351|      3|  GType owner_type = (GType) data[1];
 1352|      3|  GHashTable *ht = data[2];
 1353|      3|  int *count = data[3];
 1354|       |
 1355|      3|  if (pspec->owner_type == owner_type &&
  ------------------
  |  Branch (1355:7): [True: 0, False: 3]
  ------------------
 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|      3|}
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|     91|{
 1129|     91|  GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec);
  ------------------
  |  |  500|     91|#define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
  |  |  ------------------
  |  |  |  |  528|     91|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     91|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1130|     91|  GObject *object = value->data[0].v_pointer;
 1131|     91|  guint changed = 0;
 1132|       |  
 1133|     91|  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: 91]
  |  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|     91|  return changed;
 1141|     91|}
gparamspecs.c:param_object_is_valid:
 1117|     91|{
 1118|     91|  GParamSpecObject *ospec = G_PARAM_SPEC_OBJECT (pspec);
  ------------------
  |  |  500|     91|#define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
  |  |  ------------------
  |  |  |  |  528|     91|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  |  |  ------------------
  |  |  |  |  |  | 2656|     91|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1119|     91|  GObject *object = value->data[0].v_pointer;
 1120|       |
 1121|     91|  return object &&
  ------------------
  |  Branch (1121:10): [True: 0, False: 91]
  ------------------
 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|     91|}

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|    376|{
 2725|    376|  GBSearchArray *hlbsa;
 2726|       |  
 2727|    376|  g_return_if_fail (G_TYPE_CHECK_INSTANCE (instance));
  ------------------
  |  |  650|    376|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    376|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    376|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    376|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    376|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    376| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    376|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    376|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    376|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 376, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    376|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    376|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    376|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    376|   else                                         \
  |  |  |  |  |  |  |  | 1240|    376|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    376|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    376|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    376|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    376|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 376, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    376|      { } \
  |  |  653|    376|    else \
  |  |  654|    376|      { \
  |  |  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|    376|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    376|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 376]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2728|       |  
 2729|    376|  SIGNAL_LOCK ();
  ------------------
  |  |  237|    376|#define	SIGNAL_LOCK()		G_LOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  137|    376|#  define G_LOCK(name) g_mutex_lock       (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    376|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2730|    376|  hlbsa = g_hash_table_lookup (g_handler_list_bsa_ht, instance);
 2731|    376|  if (hlbsa)
  ------------------
  |  Branch (2731:7): [True: 0, False: 376]
  ------------------
 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|    376|  SIGNAL_UNLOCK ();
  ------------------
  |  |  238|    376|#define	SIGNAL_UNLOCK()		G_UNLOCK (g_signal_mutex)
  |  |  ------------------
  |  |  |  |  138|    376|#  define G_UNLOCK(name) g_mutex_unlock   (&G_LOCK_NAME (name))
  |  |  |  |  ------------------
  |  |  |  |  |  |  111|    376|#define G_LOCK_NAME(name)             g__ ## name ## _lock
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2764|    376|}
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|      4|{
 1551|      4|  TypeNode *iface, *prerequisite_node;
 1552|      4|  IFaceHolder *holders;
 1553|       |  
 1554|      4|  g_return_if_fail (G_TYPE_IS_INTERFACE (interface_type));	/* G_TYPE_IS_INTERFACE() is an external call: _U */
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1555|      4|  g_return_if_fail (!g_type_is_a (interface_type, prerequisite_type));
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     12|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 4]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 4]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1556|      4|  g_return_if_fail (!g_type_is_a (prerequisite_type, interface_type));
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     12|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 4]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 4]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1557|       |  
 1558|      4|  iface = lookup_type_node_I (interface_type);
 1559|      4|  prerequisite_node = lookup_type_node_I (prerequisite_type);
 1560|      4|  if (!iface || !prerequisite_node || !NODE_IS_IFACE (iface))
  ------------------
  |  |  233|      4|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      4|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      4|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      4|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      4|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1560:7): [True: 0, False: 4]
  |  Branch (1560:17): [True: 0, False: 4]
  |  Branch (1560:39): [True: 0, False: 4]
  ------------------
 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|      4|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      4|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 1568|      4|  holders = iface_node_get_holders_L (iface);
  ------------------
  |  |  238|      4|#define	iface_node_get_holders_L(node)		((IFaceHolder*) type_get_qdata_L ((node), static_quark_iface_holder))
  ------------------
 1569|      4|  if (holders)
  ------------------
  |  Branch (1569:7): [True: 0, False: 4]
  ------------------
 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|      4|  if (prerequisite_node->is_instantiatable)
  ------------------
  |  Branch (1578:7): [True: 4, False: 0]
  ------------------
 1579|      4|    {
 1580|      4|      guint i;
 1581|       |      
 1582|       |      /* can have at most one publicly installable instantiatable prerequisite */
 1583|      4|      for (i = 0; i < IFACE_NODE_N_PREREQUISITES (iface); i++)
  ------------------
  |  |  236|      4|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (1583:19): [True: 0, False: 4]
  ------------------
 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|      8|      for (i = 0; i < prerequisite_node->n_supers + 1u; i++)
  ------------------
  |  Branch (1598:19): [True: 4, False: 4]
  ------------------
 1599|      4|	type_iface_add_prerequisite_W (iface, lookup_type_node_I (prerequisite_node->supers[i]));
 1600|      4|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      4|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1601|      4|    }
 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|      4|}
g_type_create_instance:
 1869|    189|{
 1870|    189|  TypeNode *node;
 1871|    189|  GTypeInstance *instance;
 1872|    189|  GTypeClass *class;
 1873|    189|  gchar *allocated;
 1874|    189|  gint private_size;
 1875|    189|  gint ivar_size;
 1876|    189|  guint i;
 1877|       |
 1878|    189|  node = lookup_type_node_I (type);
 1879|    189|  if (G_UNLIKELY (!node || !node->is_instantiatable))
  ------------------
  |  | 1245|    189|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    189|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    189| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    189|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    189|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    567|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 189]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 189]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    189|      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|    189|   else                                         \
  |  |  |  |  |  | 1240|    189|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    189|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    189|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    189|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    189|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    189|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    189|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 189]
  |  |  ------------------
  ------------------
 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|    189|  if (G_UNLIKELY (!node->mutatable_check_cache && G_TYPE_IS_ABSTRACT (type)))
  ------------------
  |  | 1245|    189|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    189|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    189| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    189|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    189|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    378|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 189]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    189|      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|    189|   else                                         \
  |  |  |  |  |  | 1240|    189|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    189|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    189|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    189|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    189|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    189|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    189|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 189]
  |  |  ------------------
  ------------------
 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|    189|  if (G_UNLIKELY (G_TYPE_IS_DEPRECATED (type)))
  ------------------
  |  | 1245|    189|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    189|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    189| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    189|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    189|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    189|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 189]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    189|      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|    189|   else                                         \
  |  |  |  |  |  | 1240|    189|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    189|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    189|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    189|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    189|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    189|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    189|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 189]
  |  |  ------------------
  ------------------
 1891|      0|    {
 1892|      0|      maybe_issue_deprecation_warning (type);
 1893|      0|    }
 1894|       |
 1895|    189|  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|    189|  private_size = node->data->instance.private_size;
 1915|    189|  ivar_size = node->data->instance.instance_size;
 1916|       |
 1917|    189|#ifdef ENABLE_VALGRIND
 1918|    189|  if (G_UNLIKELY (private_size && RUNNING_ON_VALGRIND))
  ------------------
  |  | 1245|    189|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    189|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    189| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    189|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    189|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    470|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 92, False: 97]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 92]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    189|      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|    189|   else                                         \
  |  |  |  |  |  | 1240|    189|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    189|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    189|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    189|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    189|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    189|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    189|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 189]
  |  |  ------------------
  ------------------
 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|    189|  else
 1932|    189|#endif
 1933|    189|    allocated = g_malloc0 (private_size + ivar_size);
 1934|       |
 1935|    189|  instance = (GTypeInstance *) (allocated + private_size);
 1936|       |
 1937|    564|  for (i = node->n_supers; i > 0; i--)
  ------------------
  |  Branch (1937:28): [True: 375, False: 189]
  ------------------
 1938|    375|    {
 1939|    375|      TypeNode *pnode;
 1940|       |      
 1941|    375|      pnode = lookup_type_node_I (node->supers[i]);
 1942|    375|      if (pnode->data->instance.instance_init)
  ------------------
  |  Branch (1942:11): [True: 375, False: 0]
  ------------------
 1943|    375|	{
 1944|    375|	  instance->g_class = pnode->data->instance.class;
 1945|    375|	  pnode->data->instance.instance_init (instance, class);
 1946|    375|	}
 1947|    375|    }
 1948|       |
 1949|    189|  instance->g_class = class;
 1950|    189|  if (node->data->instance.instance_init)
  ------------------
  |  Branch (1950:7): [True: 189, False: 0]
  ------------------
 1951|    189|    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|    189|  TRACE(GOBJECT_OBJECT_NEW(instance, type));
 1961|       |
 1962|    189|  return instance;
 1963|    189|}
g_type_free_instance:
 1977|    188|{
 1978|    188|  TypeNode *node;
 1979|    188|  GTypeClass *class;
 1980|    188|  gchar *allocated;
 1981|    188|  gint private_size;
 1982|    188|  gint ivar_size;
 1983|       |
 1984|    188|  g_return_if_fail (instance != NULL && instance->g_class != NULL);
  ------------------
  |  |  650|    188|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    188|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    188|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    188|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    564|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 188, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 188, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    188|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    188|   else                                         \
  |  |  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 188, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    188|      { } \
  |  |  653|    188|    else \
  |  |  654|    188|      { \
  |  |  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|    188|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    188|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 188]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1985|       |  
 1986|    188|  class = instance->g_class;
 1987|    188|  node = lookup_type_node_I (class->g_type);
 1988|    188|  if (G_UNLIKELY (!node || !node->is_instantiatable || !node->data || node->data->class.class != (gpointer) class))
  ------------------
  |  | 1245|    188|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.31k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 188]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 188]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 188]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 188]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    188|      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|    188|   else                                         \
  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 188]
  |  |  ------------------
  ------------------
 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|    188|  if (G_UNLIKELY (!node->mutatable_check_cache && G_TYPE_IS_ABSTRACT (NODE_TYPE (node))))
  ------------------
  |  | 1245|    188|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    376|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 188]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    188|      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|    188|   else                                         \
  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 188]
  |  |  ------------------
  ------------------
 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|    188|  instance->g_class = NULL;
 2003|    188|  private_size = node->data->instance.private_size;
 2004|    188|  ivar_size = node->data->instance.instance_size;
 2005|    188|  allocated = ((gchar *) instance) - private_size;
 2006|       |
 2007|       |#ifdef G_ENABLE_DEBUG
 2008|       |  memset (allocated, 0xaa, ivar_size + private_size);
 2009|       |#endif
 2010|       |
 2011|    188|#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|    188|  if (G_UNLIKELY (private_size && RUNNING_ON_VALGRIND))
  ------------------
  |  | 1245|    188|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    188|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    188| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    188|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    467|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 97]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 91]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    188|      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|    188|   else                                         \
  |  |  |  |  |  | 1240|    188|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    188|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    188|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    188|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    188|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 188]
  |  |  ------------------
  ------------------
 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|    188|  else
 2029|    188|#endif
 2030|    188|    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|    188|  g_type_class_unref (class);
 2040|    188|}
g_type_add_interface_check:
 2633|      1|{
 2634|      1|  guint i;
 2635|       |  
 2636|      1|  g_return_if_fail (check_func != NULL);
  ------------------
  |  |  650|      1|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      1|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      1|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      1|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      1|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      1| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      1|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      1|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 1, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      1|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      1|   else                                         \
  |  |  |  |  |  |  |  | 1240|      1|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      1|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      1|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      1|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      1|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      1|      { } \
  |  |  653|      1|    else \
  |  |  654|      1|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      1|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      1|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2637|       |  
 2638|      1|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      1|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2639|      1|  i = static_n_iface_check_funcs++;
 2640|      1|  static_iface_check_funcs = g_renew (IFaceCheckFunc, static_iface_check_funcs, static_n_iface_check_funcs);
  ------------------
  |  |  346|      1|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|      1|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      1|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|      1|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|      1|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|      1|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|      1|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  279|      1|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|      1|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 1]
  |  |  |  |  ------------------
  |  |  |  |  281|      1|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|      1|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|      1|	  else							\
  |  |  |  |  284|      1|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|      1|	  __p;							\
  |  |  |  |  286|      1|	}))
  |  |  ------------------
  ------------------
 2641|      1|  static_iface_check_funcs[i].check_data = check_data;
 2642|      1|  static_iface_check_funcs[i].check_func = check_func;
 2643|      1|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      1|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2644|      1|}
g_type_register_fundamental:
 2710|     38|{
 2711|     38|  TypeNode *node;
 2712|       |  
 2713|     38|  g_assert_type_system_initialized ();
  ------------------
  |  |   97|     38|  g_assert (static_quark_type_flags)
  |  |  ------------------
  |  |  |  |  275|     38|#define g_assert(expr)                  G_STMT_START { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  276|     38|                                             if G_LIKELY (expr) ; else \
  |  |  |  |  ------------------
  |  |  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1244:25): [True: 38, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  277|     38|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  |  |  ------------------
  |  |  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  |  |  ------------------
  |  |  |  |  278|      0|                                                                         #expr); \
  |  |  |  |  279|     38|                                        } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2714|     38|  g_return_val_if_fail (type_id > 0, 0);
  ------------------
  |  |  663|     38|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     38|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 38, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     38|      { } \
  |  |  666|     38|    else \
  |  |  667|     38|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2715|     38|  g_return_val_if_fail (type_name != NULL, 0);
  ------------------
  |  |  663|     38|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     38|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 38, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     38|      { } \
  |  |  666|     38|    else \
  |  |  667|     38|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2716|     38|  g_return_val_if_fail (info != NULL, 0);
  ------------------
  |  |  663|     38|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     38|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 38, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     38|      { } \
  |  |  666|     38|    else \
  |  |  667|     38|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2717|     38|  g_return_val_if_fail (finfo != NULL, 0);
  ------------------
  |  |  663|     38|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     38|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     38|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     38|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     38|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     38| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     38|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     38|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     38|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 38, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     38|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     38|   else                                         \
  |  |  |  |  |  |  |  | 1240|     38|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     38|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     38|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     38|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     38|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 38, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     38|      { } \
  |  |  666|     38|    else \
  |  |  667|     38|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     38|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     38|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2718|       |  
 2719|     38|  if (!check_type_name_I (type_name))
  ------------------
  |  Branch (2719:7): [True: 0, False: 38]
  ------------------
 2720|      0|    return 0;
 2721|     38|  if ((type_id & TYPE_ID_MASK) ||
  ------------------
  |  |  242|     38|#define	TYPE_ID_MASK				((GType) ((1 << G_TYPE_FUNDAMENTAL_SHIFT) - 1))
  |  |  ------------------
  |  |  |  |   48|     38|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  |  Branch (2721:7): [True: 0, False: 38]
  ------------------
 2722|     38|      type_id > G_TYPE_FUNDAMENTAL_MAX)
  ------------------
  |  |   55|     38|#define	G_TYPE_FUNDAMENTAL_MAX		(255 << G_TYPE_FUNDAMENTAL_SHIFT)
  |  |  ------------------
  |  |  |  |   48|     38|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  |  Branch (2722:7): [True: 0, False: 38]
  ------------------
 2723|      0|    {
 2724|      0|      g_critical ("attempt to register fundamental type '%s' with invalid type id (%" G_GUINTPTR_FORMAT ")",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2725|      0|		  type_name,
 2726|      0|		  (guintptr) type_id);
 2727|      0|      return 0;
 2728|      0|    }
 2729|     38|  if ((finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE) &&
  ------------------
  |  Branch (2729:7): [True: 4, False: 34]
  ------------------
 2730|      4|      !(finfo->type_flags & G_TYPE_FLAG_CLASSED))
  ------------------
  |  Branch (2730:7): [True: 0, False: 4]
  ------------------
 2731|      0|    {
 2732|      0|      g_critical ("cannot register instantiatable fundamental type '%s' as non-classed",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2733|      0|		  type_name);
 2734|      0|      return 0;
 2735|      0|    }
 2736|     38|  if (lookup_type_node_I (type_id))
  ------------------
  |  Branch (2736:7): [True: 0, False: 38]
  ------------------
 2737|      0|    {
 2738|      0|      g_critical ("cannot register existing fundamental type '%s' (as '%s')",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2739|      0|		  type_descriptive_name_I (type_id),
 2740|      0|		  type_name);
 2741|      0|      return 0;
 2742|      0|    }
 2743|       |  
 2744|     38|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     38|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2745|     38|  node = type_node_fundamental_new_W (type_id, type_name, finfo->type_flags);
 2746|     38|  type_add_flags_W (node, flags);
 2747|       |  
 2748|     38|  if (check_type_info_I (NULL, NODE_FUNDAMENTAL_TYPE (node), type_name, info))
  ------------------
  |  |  229|     38|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (2748:7): [True: 38, False: 0]
  ------------------
 2749|     38|    type_data_make_W (node, info,
 2750|     38|		      check_value_table_I (type_name, info->value_table) ? info->value_table : NULL);
  ------------------
  |  Branch (2750:9): [True: 36, False: 2]
  ------------------
 2751|     38|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     38|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2752|       |  
 2753|     38|  return NODE_TYPE (node);
  ------------------
  |  |  227|     38|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2754|     38|}
g_type_register_static_simple:
 2783|     12|{
 2784|     12|  GTypeInfo info;
 2785|       |
 2786|       |  /* Instances are not allowed to be larger than this. If you have a big
 2787|       |   * fixed-length array or something, point to it instead.
 2788|       |   */
 2789|     12|  g_return_val_if_fail (class_size <= G_MAXUINT16, G_TYPE_INVALID);
  ------------------
  |  |  663|     12|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     12|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     12|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     12|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     12|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     12| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     12|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     12|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     12|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 12, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     12|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     12|   else                                         \
  |  |  |  |  |  |  |  | 1240|     12|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     12|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     12|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 12, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     12|      { } \
  |  |  666|     12|    else \
  |  |  667|     12|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     12|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     12|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 12]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2790|     12|  g_return_val_if_fail (instance_size <= G_MAXUINT16, G_TYPE_INVALID);
  ------------------
  |  |  663|     12|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     12|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     12|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     12|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     12|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     12| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     12|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     12|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     12|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 12, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     12|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     12|   else                                         \
  |  |  |  |  |  |  |  | 1240|     12|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     12|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     12|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     12|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     12|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 12, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     12|      { } \
  |  |  666|     12|    else \
  |  |  667|     12|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     12|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     12|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 12]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2791|       |
 2792|     12|  info.class_size = class_size;
 2793|     12|  info.base_init = NULL;
 2794|     12|  info.base_finalize = NULL;
 2795|     12|  info.class_init = class_init;
 2796|     12|  info.class_finalize = NULL;
 2797|     12|  info.class_data = NULL;
 2798|     12|  info.instance_size = instance_size;
 2799|     12|  info.n_preallocs = 0;
 2800|     12|  info.instance_init = instance_init;
 2801|     12|  info.value_table = NULL;
 2802|       |
 2803|     12|  return g_type_register_static (parent_type, type_name, &info, flags);
 2804|     12|}
g_type_register_static:
 2826|     64|{
 2827|     64|  TypeNode *pnode, *node;
 2828|     64|  GType type = 0;
 2829|       |  
 2830|     64|  g_assert_type_system_initialized ();
  ------------------
  |  |   97|     64|  g_assert (static_quark_type_flags)
  |  |  ------------------
  |  |  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  |  |  ------------------
  |  |  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  |  |  ------------------
  |  |  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  |  |  ------------------
  |  |  |  |  278|      0|                                                                         #expr); \
  |  |  |  |  279|     64|                                        } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2831|     64|  g_return_val_if_fail (parent_type > 0, 0);
  ------------------
  |  |  663|     64|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     64|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     64|      { } \
  |  |  666|     64|    else \
  |  |  667|     64|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     64|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2832|     64|  g_return_val_if_fail (type_name != NULL, 0);
  ------------------
  |  |  663|     64|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     64|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     64|      { } \
  |  |  666|     64|    else \
  |  |  667|     64|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     64|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2833|     64|  g_return_val_if_fail (info != NULL, 0);
  ------------------
  |  |  663|     64|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     64|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     64|      { } \
  |  |  666|     64|    else \
  |  |  667|     64|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     64|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2834|       |  
 2835|     64|  if (!check_type_name_I (type_name) ||
  ------------------
  |  Branch (2835:7): [True: 0, False: 64]
  ------------------
 2836|     64|      !check_derivation_I (parent_type, type_name))
  ------------------
  |  Branch (2836:7): [True: 0, False: 64]
  ------------------
 2837|      0|    return 0;
 2838|     64|  if (info->class_finalize)
  ------------------
  |  Branch (2838:7): [True: 0, False: 64]
  ------------------
 2839|      0|    {
 2840|      0|      g_critical ("class finalizer specified for static type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 2841|      0|		  type_name);
 2842|      0|      return 0;
 2843|      0|    }
 2844|       |  
 2845|     64|  pnode = lookup_type_node_I (parent_type);
 2846|     64|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     64|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2847|     64|  type_data_ref_Wm (pnode);
 2848|     64|  if (check_type_info_I (pnode, NODE_FUNDAMENTAL_TYPE (pnode), type_name, info))
  ------------------
  |  |  229|     64|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (2848:7): [True: 64, False: 0]
  ------------------
 2849|     64|    {
 2850|     64|      node = type_node_new_W (pnode, type_name, NULL);
 2851|     64|      type_add_flags_W (node, flags);
 2852|     64|      type = NODE_TYPE (node);
  ------------------
  |  |  227|     64|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2853|     64|      type_data_make_W (node, info,
 2854|     64|			check_value_table_I (type_name, info->value_table) ? info->value_table : NULL);
  ------------------
  |  Branch (2854:4): [True: 2, False: 62]
  ------------------
 2855|     64|    }
 2856|     64|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     64|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2857|       |  
 2858|     64|  return type;
 2859|     64|}
g_type_add_interface_static:
 2920|      4|{
 2921|       |  /* G_TYPE_IS_INSTANTIATABLE() is an external call: _U */
 2922|      4|  g_return_if_fail (G_TYPE_IS_INSTANTIATABLE (instance_type));
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2923|      4|  g_return_if_fail (g_type_parent (interface_type) == G_TYPE_INTERFACE);
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|      4|  g_rec_mutex_lock (&class_init_rec_mutex); /* required locking order: 1) class_init_rec_mutex, 2) type_rw_lock */
 2930|      4|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      4|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2931|      4|  if (check_add_interface_L (instance_type, interface_type))
  ------------------
  |  Branch (2931:7): [True: 4, False: 0]
  ------------------
 2932|      4|    {
 2933|      4|      TypeNode *node = lookup_type_node_I (instance_type);
 2934|      4|      TypeNode *iface = lookup_type_node_I (interface_type);
 2935|      4|      if (check_interface_info_I (iface, NODE_TYPE (node), info))
  ------------------
  |  |  227|      4|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
  |  Branch (2935:11): [True: 4, False: 0]
  ------------------
 2936|      4|        type_add_interface_Wm (node, iface, info, NULL);
 2937|      4|    }
 2938|      4|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      4|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2939|      4|  g_rec_mutex_unlock (&class_init_rec_mutex);
 2940|      4|}
g_type_class_ref:
 2993|    285|{
 2994|    285|  TypeNode *node;
 2995|    285|  GType ptype;
 2996|    285|  gboolean holds_ref;
 2997|    285|  GTypeClass *pclass;
 2998|       |
 2999|       |  /* optimize for common code path */
 3000|    285|  node = lookup_type_node_I (type);
 3001|    285|  if (!node || !node->is_classed)
  ------------------
  |  Branch (3001:7): [True: 0, False: 285]
  |  Branch (3001:16): [True: 0, False: 285]
  ------------------
 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|    285|  if (G_LIKELY (type_data_ref_U (node)))
  ------------------
  |  | 1244|    285|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    285|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    285| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    285|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    285|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    285|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 285, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    285|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    285|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    285|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    285|   else                                         \
  |  |  |  |  |  | 1240|    285|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    285|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    285|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    285|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    285|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 285, False: 0]
  |  |  ------------------
  ------------------
 3009|    285|    {
 3010|    285|      if (G_LIKELY (g_atomic_int_get (&node->data->class.init_state) == INITIALIZED))
  ------------------
  |  | 1244|    285|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  ------------------
  |  |  |  | 1243|    285|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    285| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    285|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    285|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    855|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 285]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 233, False: 52]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    285|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    233|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    233|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|    285|   else                                         \
  |  |  |  |  |  | 1240|    285|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|     52|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|     52|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    285|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    285|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    285|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    285|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1244:24): [True: 233, False: 52]
  |  |  ------------------
  ------------------
 3011|    233|        return node->data->class.class;
 3012|     52|      holds_ref = TRUE;
  ------------------
  |  |  929|     52|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     52|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3013|     52|    }
 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|     52|  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|     52|  ptype = NODE_PARENT_TYPE (node);
  ------------------
  |  |  228|     52|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 3026|     52|  pclass = ptype ? g_type_class_ref (ptype) : NULL;
  ------------------
  |  Branch (3026:12): [True: 49, False: 3]
  ------------------
 3027|       |
 3028|     52|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     52|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 3029|       |
 3030|     52|  if (!holds_ref)
  ------------------
  |  Branch (3030:7): [True: 0, False: 52]
  ------------------
 3031|      0|    type_data_ref_Wm (node);
 3032|       |
 3033|     52|  if (!node->data->class.class) /* class uninitialized */
  ------------------
  |  Branch (3033:7): [True: 49, False: 3]
  ------------------
 3034|     49|    type_class_init_Wm (node, pclass);
 3035|       |
 3036|     52|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     52|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 3037|       |
 3038|     52|  if (pclass)
  ------------------
  |  Branch (3038:7): [True: 49, False: 3]
  ------------------
 3039|     49|    g_type_class_unref (pclass);
 3040|       |
 3041|     52|  g_rec_mutex_unlock (&class_init_rec_mutex);
 3042|       |
 3043|     52|  return node->data->class.class;
 3044|    285|}
g_type_class_unref:
 3057|    284|{
 3058|    284|  TypeNode *node;
 3059|    284|  GTypeClass *class = g_class;
 3060|       |  
 3061|    284|  g_return_if_fail (g_class != NULL);
  ------------------
  |  |  650|    284|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    284|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    284|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    284|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    284|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    284| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    284|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    284|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    284|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 284, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    284|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    284|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    284|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    284|   else                                         \
  |  |  |  |  |  |  |  | 1240|    284|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    284|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    284|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    284|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    284|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 284, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    284|      { } \
  |  |  653|    284|    else \
  |  |  654|    284|      { \
  |  |  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|    284|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    284|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 284]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3062|       |  
 3063|    284|  node = lookup_type_node_I (class->g_type);
 3064|    284|  if (node && node->is_classed && NODE_REFCOUNT (node))
  ------------------
  |  |  231|    284|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    284|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    284|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    284|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    284|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    284|    gint gaig_temp;                                                          \
  |  |  |  |  113|    284|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 284]
  |  |  |  |  ------------------
  |  |  |  |  114|    284|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    284|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    284|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 284, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3064:7): [True: 284, False: 0]
  |  Branch (3064:15): [True: 284, False: 0]
  ------------------
 3065|    284|    type_data_unref_U (node, FALSE);
  ------------------
  |  |  925|    284|#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|    284|	        type_descriptive_name_I (class->g_type));
 3069|    284|}
g_type_class_peek:
 3112|     89|{
 3113|     89|  TypeNode *node;
 3114|     89|  gpointer class;
 3115|       |  
 3116|     89|  node = lookup_type_node_I (type);
 3117|     89|  if (node && node->is_classed && NODE_REFCOUNT (node) &&
  ------------------
  |  |  231|    178|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|     89|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     89|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|     89|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|     89|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|     89|    gint gaig_temp;                                                          \
  |  |  |  |  113|     89|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 89]
  |  |  |  |  ------------------
  |  |  |  |  114|     89|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|     89|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|     89|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 89, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3117:7): [True: 89, False: 0]
  |  Branch (3117:15): [True: 89, False: 0]
  ------------------
 3118|     89|      g_atomic_int_get (&node->data->class.init_state) == INITIALIZED)
  ------------------
  |  |  110|     89|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     89|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|     89|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     89|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|     89|    gint gaig_temp;                                                          \
  |  |  113|     89|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 89]
  |  |  ------------------
  |  |  114|     89|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|     89|    (gint) gaig_temp;                                                        \
  |  |  116|     89|  }))
  ------------------
  |  Branch (3118:7): [True: 89, False: 0]
  ------------------
 3119|       |    /* ref_count _may_ be 0 */
 3120|     89|    class = node->data->class.class;
 3121|      0|  else
 3122|      0|    class = NULL;
 3123|       |  
 3124|     89|  return class;
 3125|     89|}
g_type_class_peek_static:
 3142|    188|{
 3143|    188|  TypeNode *node;
 3144|    188|  gpointer class;
 3145|       |  
 3146|    188|  node = lookup_type_node_I (type);
 3147|    188|  if (node && node->is_classed && NODE_REFCOUNT (node) &&
  ------------------
  |  |  231|    376|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    188|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    188|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    188|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    188|    gint gaig_temp;                                                          \
  |  |  |  |  113|    188|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 188]
  |  |  |  |  ------------------
  |  |  |  |  114|    188|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    188|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    188|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 188, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (3147:7): [True: 188, False: 0]
  |  Branch (3147:15): [True: 188, False: 0]
  ------------------
 3148|    188|      /* peek only static types: */ node->plugin == NULL &&
  ------------------
  |  Branch (3148:37): [True: 188, False: 0]
  ------------------
 3149|    188|      g_atomic_int_get (&node->data->class.init_state) == INITIALIZED)
  ------------------
  |  |  110|    188|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    188|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|    188|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    188|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|    188|    gint gaig_temp;                                                          \
  |  |  113|    188|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 188]
  |  |  ------------------
  |  |  114|    188|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|    188|    (gint) gaig_temp;                                                        \
  |  |  116|    188|  }))
  ------------------
  |  Branch (3149:7): [True: 184, False: 4]
  ------------------
 3150|       |    /* ref_count _may_ be 0 */
 3151|    184|    class = node->data->class.class;
 3152|      4|  else
 3153|      4|    class = NULL;
 3154|       |  
 3155|    188|  return class;
 3156|    188|}
g_type_class_peek_parent:
 3177|     13|{
 3178|     13|  TypeNode *node;
 3179|     13|  gpointer class = NULL;
 3180|       |  
 3181|     13|  g_return_val_if_fail (g_class != NULL, NULL);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     13|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3182|       |  
 3183|     13|  node = lookup_type_node_I (G_TYPE_FROM_CLASS (g_class));
  ------------------
  |  |  657|     13|#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
  ------------------
 3184|       |
 3185|     13|  g_return_val_if_fail (node != NULL, NULL);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     13|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3186|       |
 3187|       |  /* We used to acquire a read lock here. That is not necessary, since 
 3188|       |   * parent->data->class.class is constant as long as the derived class
 3189|       |   * exists. 
 3190|       |   */
 3191|     13|  if (node->is_classed && node->data && NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|     13|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 12, False: 1]
  |  |  ------------------
  ------------------
  |  Branch (3191:7): [True: 13, False: 0]
  |  Branch (3191:27): [True: 13, False: 0]
  ------------------
 3192|     12|    {
 3193|     12|      node = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     12|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 3194|     12|      class = node->data->class.class;
 3195|     12|    }
 3196|      1|  else if (NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|      1|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 0, False: 1]
  |  |  ------------------
  ------------------
 3197|      0|    g_critical (G_STRLOC ": invalid class pointer '%p'", g_class);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 3198|       |  
 3199|     13|  return class;
 3200|     13|}
g_type_interface_peek:
 3217|  2.03k|{
 3218|  2.03k|  TypeNode *node;
 3219|  2.03k|  TypeNode *iface;
 3220|  2.03k|  gpointer vtable = NULL;
 3221|  2.03k|  GTypeClass *class = instance_class;
 3222|       |  
 3223|  2.03k|  g_return_val_if_fail (instance_class != NULL, NULL);
  ------------------
  |  |  663|  2.03k|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|  2.03k|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|  2.03k|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|  2.03k|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|  2.03k|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|  2.03k| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|  2.03k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|  2.03k|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  2.03k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 2.03k, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|  2.03k|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.03k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.03k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|  2.03k|   else                                         \
  |  |  |  |  |  |  |  | 1240|  2.03k|      G_PASTE (_g_boolean_var_, uniq) = 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.03k|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|  2.03k|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|  2.03k|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|  2.03k|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 2.03k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|  2.03k|      { } \
  |  |  666|  2.03k|    else \
  |  |  667|  2.03k|      { \
  |  |  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.03k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  2.03k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2.03k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3224|       |  
 3225|  2.03k|  node = lookup_type_node_I (class->g_type);
 3226|  2.03k|  iface = lookup_type_node_I (iface_type);
 3227|  2.03k|  if (node && node->is_instantiatable && iface)
  ------------------
  |  Branch (3227:7): [True: 2.03k, False: 0]
  |  Branch (3227:15): [True: 2.03k, False: 0]
  |  Branch (3227:42): [True: 2.03k, False: 0]
  ------------------
 3228|  2.03k|    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|  2.03k|  return vtable;
 3233|  2.03k|}
g_type_name:
 3400|     46|{
 3401|     46|  TypeNode *node;
 3402|       |  
 3403|     46|  g_assert_type_system_initialized ();
  ------------------
  |  |   97|     46|  g_assert (static_quark_type_flags)
  |  |  ------------------
  |  |  |  |  275|     46|#define g_assert(expr)                  G_STMT_START { \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|     46|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  276|     46|                                             if G_LIKELY (expr) ; else \
  |  |  |  |  ------------------
  |  |  |  |  |  | 1244|     46|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1243|     46|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1235|     46| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |   62|     46|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1236|     46|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  |  |  | 1237|     46|   if (expr)                                    \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 46, False: 0]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1238|     46|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1239|     46|   else                                         \
  |  |  |  |  |  |  |  |  |  | 1240|     46|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1241|     46|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  866|     46|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  865|     46|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1242|     46|})
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1244:25): [True: 46, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  277|     46|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  |  |  ------------------
  |  |  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  |  |  ------------------
  |  |  |  |  278|      0|                                                                         #expr); \
  |  |  |  |  279|     46|                                        } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|     46|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 46]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3404|       |  
 3405|     46|  node = lookup_type_node_I (type);
 3406|       |  
 3407|     46|  return node ? NODE_NAME (node) : NULL;
  ------------------
  |  |  230|     46|#define NODE_NAME(node)				(g_quark_to_string (node->qname))
  ------------------
  |  Branch (3407:10): [True: 46, False: 0]
  ------------------
 3408|     46|}
g_type_from_name:
 3441|    152|{
 3442|    152|  GType type = 0;
 3443|       |  
 3444|    152|  g_return_val_if_fail (name != NULL, 0);
  ------------------
  |  |  663|    152|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    152|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    152|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    152|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    152|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    152| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    152|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    152|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    152|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 152, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    152|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    152|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    152|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    152|   else                                         \
  |  |  |  |  |  |  |  | 1240|    152|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    152|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    152|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    152|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    152|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 152, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    152|      { } \
  |  |  666|    152|    else \
  |  |  667|    152|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|    152|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    152|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 152]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3445|       |  
 3446|    152|  G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|    152|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 3447|    152|  type = GPOINTER_TO_TYPE (g_hash_table_lookup (static_type_nodes_ht, name));
  ------------------
  |  | 2722|    152|#define GPOINTER_TO_TYPE(p) ((GType) (guintptr) (p)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
 3448|    152|  G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|    152|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 3449|       |  
 3450|    152|  return type;
 3451|    152|}
g_type_parent:
 3464|      7|{
 3465|      7|  TypeNode *node;
 3466|       |  
 3467|      7|  node = lookup_type_node_I (type);
 3468|       |  
 3469|      7|  return node ? NODE_PARENT_TYPE (node) : 0;
  ------------------
  |  |  228|      7|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
  |  Branch (3469:10): [True: 7, False: 0]
  ------------------
 3470|      7|}
g_type_depth:
 3483|      3|{
 3484|      3|  TypeNode *node;
 3485|       |  
 3486|      3|  node = lookup_type_node_I (type);
 3487|       |  
 3488|      3|  return node ? node->n_supers + 1 : 0;
  ------------------
  |  Branch (3488:10): [True: 3, False: 0]
  ------------------
 3489|      3|}
g_type_is_a:
 3604|    112|{
 3605|    112|  TypeNode *node, *iface_node;
 3606|    112|  gboolean is_a;
 3607|       |
 3608|    112|  if (type == iface_type)
  ------------------
  |  Branch (3608:7): [True: 0, False: 112]
  ------------------
 3609|      0|    return TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3610|       |  
 3611|    112|  node = lookup_type_node_I (type);
 3612|    112|  iface_node = lookup_type_node_I (iface_type);
 3613|    112|  is_a = node && iface_node && type_node_conforms_to_U (node, iface_node, TRUE, TRUE);
  ------------------
  |  |  929|    112|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    112|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                is_a = node && iface_node && type_node_conforms_to_U (node, iface_node, TRUE, TRUE);
  ------------------
  |  |  929|    112|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    112|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  |  Branch (3613:10): [True: 112, False: 0]
  |  Branch (3613:18): [True: 112, False: 0]
  |  Branch (3613:32): [True: 92, False: 20]
  ------------------
 3614|       |  
 3615|    112|  return is_a;
 3616|    112|}
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|    197|{
 4121|    197|  TypeNode *node = lookup_type_node_I (type_id);
 4122|       |  
 4123|    197|  return node ? NODE_FUNDAMENTAL_TYPE (node) : 0;
  ------------------
  |  |  229|    197|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (4123:10): [True: 197, False: 0]
  ------------------
 4124|    197|}
g_type_check_instance_is_a:
 4129|  9.02k|{
 4130|  9.02k|  TypeNode *node, *iface;
 4131|  9.02k|  gboolean check;
 4132|       |  
 4133|  9.02k|  if (!type_instance || !type_instance->g_class)
  ------------------
  |  Branch (4133:7): [True: 0, False: 9.02k]
  |  Branch (4133:25): [True: 0, False: 9.02k]
  ------------------
 4134|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4135|       |
 4136|  9.02k|  iface = lookup_type_node_I (iface_type);
 4137|  9.02k|  if (iface && iface->is_final)
  ------------------
  |  Branch (4137:7): [True: 9.02k, False: 0]
  |  Branch (4137:16): [True: 0, False: 9.02k]
  ------------------
 4138|      0|    return type_instance->g_class->g_type == iface_type;
 4139|       |
 4140|  9.02k|  node = lookup_type_node_I (type_instance->g_class->g_type);
 4141|  9.02k|  check = node && node->is_instantiatable && iface && type_node_conforms_to_U (node, iface, TRUE, FALSE);
  ------------------
  |  |  929|  9.02k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  9.02k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                check = node && node->is_instantiatable && iface && type_node_conforms_to_U (node, iface, TRUE, FALSE);
  ------------------
  |  |  925|  9.02k|#define	FALSE	(0)
  ------------------
  |  Branch (4141:11): [True: 9.02k, False: 0]
  |  Branch (4141:19): [True: 9.02k, False: 0]
  |  Branch (4141:46): [True: 9.02k, False: 0]
  |  Branch (4141:55): [True: 9.02k, False: 0]
  ------------------
 4142|       |  
 4143|  9.02k|  return check;
 4144|  9.02k|}
g_type_check_instance_is_fundamentally_a:
 4149|    877|{
 4150|    877|  TypeNode *node;
 4151|    877|  if (!type_instance || !type_instance->g_class)
  ------------------
  |  Branch (4151:7): [True: 0, False: 877]
  |  Branch (4151:25): [True: 0, False: 877]
  ------------------
 4152|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4153|    877|  node = lookup_type_node_I (type_instance->g_class->g_type);
 4154|    877|  return node && (NODE_FUNDAMENTAL_TYPE(node) == fundamental_type);
  ------------------
  |  |  229|    877|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (4154:10): [True: 877, False: 0]
  |  Branch (4154:18): [True: 877, False: 0]
  ------------------
 4155|    877|}
g_type_check_class_is_a:
 4160|      6|{
 4161|      6|  TypeNode *node, *iface;
 4162|      6|  gboolean check;
 4163|       |  
 4164|      6|  if (!type_class)
  ------------------
  |  Branch (4164:7): [True: 0, False: 6]
  ------------------
 4165|      0|    return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 4166|       |  
 4167|      6|  node = lookup_type_node_I (type_class->g_type);
 4168|      6|  iface = lookup_type_node_I (is_a_type);
 4169|      6|  check = node && node->is_classed && iface && type_node_conforms_to_U (node, iface, FALSE, FALSE);
  ------------------
  |  |  925|      6|#define	FALSE	(0)
  ------------------
                check = node && node->is_classed && iface && type_node_conforms_to_U (node, iface, FALSE, FALSE);
  ------------------
  |  |  925|      6|#define	FALSE	(0)
  ------------------
  |  Branch (4169:11): [True: 6, False: 0]
  |  Branch (4169:19): [True: 6, False: 0]
  |  Branch (4169:39): [True: 6, False: 0]
  |  Branch (4169:48): [True: 6, False: 0]
  ------------------
 4170|       |  
 4171|      6|  return check;
 4172|      6|}
g_type_check_instance:
 4251|    376|{
 4252|       |  /* this function is just here to make the signal system
 4253|       |   * conveniently elaborated on instance checks
 4254|       |   */
 4255|    376|  if (type_instance)
  ------------------
  |  Branch (4255:7): [True: 376, False: 0]
  ------------------
 4256|    376|    {
 4257|    376|      if (type_instance->g_class)
  ------------------
  |  Branch (4257:11): [True: 376, False: 0]
  ------------------
 4258|    376|	{
 4259|    376|	  TypeNode *node = lookup_type_node_I (type_instance->g_class->g_type);
 4260|       |	  
 4261|    376|	  if (node && node->is_instantiatable)
  ------------------
  |  Branch (4261:8): [True: 376, False: 0]
  |  Branch (4261:16): [True: 376, False: 0]
  ------------------
 4262|    376|	    return TRUE;
  ------------------
  |  |  929|    376|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    376|#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|    376|    }
 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|    376|}
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|     92|{
 4326|     92|  return value && type_check_is_value_type_U (value->g_type);
  ------------------
  |  Branch (4326:10): [True: 92, False: 0]
  |  Branch (4326:19): [True: 92, False: 0]
  ------------------
 4327|     92|}
g_type_check_value_holds:
 4332|     91|{
 4333|     91|  return value && type_check_is_value_type_U (value->g_type) && g_type_is_a (value->g_type, type);
  ------------------
  |  |  760|     91|#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
  |  |  ------------------
  |  |  |  Branch (760:27): [True: 0, False: 91]
  |  |  |  Branch (760:41): [True: 91, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (4333:10): [True: 91, False: 0]
  |  Branch (4333:19): [True: 91, False: 0]
  ------------------
 4334|     91|}
g_type_value_table_peek:
 4351|    275|{
 4352|    275|  GTypeValueTable *vtable = NULL;
 4353|    275|  TypeNode *node = lookup_type_node_I (type);
 4354|    275|  gboolean has_refed_data, has_table;
 4355|       |
 4356|    275|  if (node && NODE_REFCOUNT (node) && node->mutatable_check_cache)
  ------------------
  |  |  231|    550|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    275|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    275|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    275|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    275|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    275|    gint gaig_temp;                                                          \
  |  |  |  |  113|    275|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 275]
  |  |  |  |  ------------------
  |  |  |  |  114|    275|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    275|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    275|  }))
  |  |  ------------------
  |  |  |  Branch (231:49): [True: 275, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (4356:7): [True: 275, False: 0]
  |  Branch (4356:39): [True: 275, False: 0]
  ------------------
 4357|    275|    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|      7|{
 4789|      7|  TypeNode *node = lookup_type_node_I (class_gtype);
 4790|       |
 4791|      7|  g_return_val_if_fail (private_size > 0, 0);
  ------------------
  |  |  663|      7|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      7|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      7|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      7|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      7|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      7| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      7|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      7|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      7|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      7|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      7|   else                                         \
  |  |  |  |  |  |  |  | 1240|      7|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      7|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      7|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      7|      { } \
  |  |  666|      7|    else \
  |  |  667|      7|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      7|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      7|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4792|      7|  g_return_val_if_fail (private_size <= 0xffff, 0);
  ------------------
  |  |  663|      7|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      7|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      7|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      7|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      7|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      7| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      7|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      7|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      7|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 7, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      7|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      7|   else                                         \
  |  |  |  |  |  |  |  | 1240|      7|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      7|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      7|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      7|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      7|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      7|      { } \
  |  |  666|      7|    else \
  |  |  667|      7|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  669|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  670|      0|                                  #expr); \
  |  |  671|      0|        return (val); \
  |  |  672|      0|      } \
  |  |  673|      7|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      7|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 7]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4793|       |
 4794|      7|  if (!node || !node->is_classed || !node->is_instantiatable || !node->data)
  ------------------
  |  Branch (4794:7): [True: 0, False: 7]
  |  Branch (4794:16): [True: 0, False: 7]
  |  Branch (4794:37): [True: 0, False: 7]
  |  Branch (4794:65): [True: 0, False: 7]
  ------------------
 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|      7|  if (node->plugin != NULL)
  ------------------
  |  Branch (4801:7): [True: 0, False: 7]
  ------------------
 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|      7|  return private_size;
 4839|      7|}
g_type_class_adjust_private_offset:
 4845|      5|{
 4846|      5|  GType class_gtype = ((GTypeClass *) g_class)->g_type;
 4847|      5|  TypeNode *node = lookup_type_node_I (class_gtype);
 4848|      5|  gssize private_size;
 4849|       |
 4850|      5|  g_return_if_fail (private_size_or_offset != NULL);
  ------------------
  |  |  650|      5|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      5|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      5|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      5|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      5|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      5| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      5|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      5|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      5|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      5|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      5|   else                                         \
  |  |  |  |  |  |  |  | 1240|      5|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      5|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      5|      { } \
  |  |  653|      5|    else \
  |  |  654|      5|      { \
  |  |  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|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      5|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 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|      5|  if (*private_size_or_offset > 0)
  ------------------
  |  Branch (4856:7): [True: 5, False: 0]
  ------------------
 4857|      5|    g_return_if_fail (*private_size_or_offset <= 0xffff);
  ------------------
  |  |  650|      5|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      5|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      5|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      5|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      5|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      5| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      5|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      5|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      5|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      5|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      5|   else                                         \
  |  |  |  |  |  |  |  | 1240|      5|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      5|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      5|      { } \
  |  |  653|      5|    else \
  |  |  654|      5|      { \
  |  |  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|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      5|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4858|      0|  else
 4859|      0|    return;
 4860|       |
 4861|      5|  if (!node || !node->is_classed || !node->is_instantiatable || !node->data)
  ------------------
  |  Branch (4861:7): [True: 0, False: 5]
  |  Branch (4861:16): [True: 0, False: 5]
  |  Branch (4861:37): [True: 0, False: 5]
  |  Branch (4861:65): [True: 0, False: 5]
  ------------------
 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|      5|  if (NODE_PARENT_TYPE (node))
  ------------------
  |  |  228|      5|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 3, False: 2]
  |  |  ------------------
  ------------------
 4870|      3|    {
 4871|      3|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      3|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 4872|      3|      if (node->data->instance.private_size != pnode->data->instance.private_size)
  ------------------
  |  Branch (4872:11): [True: 0, False: 3]
  ------------------
 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|      3|    }
 4879|       |
 4880|      5|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      5|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 4881|       |
 4882|      5|  private_size = ALIGN_STRUCT (node->data->instance.private_size + *private_size_or_offset);
  ------------------
  |  |  130|      5|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      5|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      5|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 4883|      5|  g_assert (private_size <= 0xffff);
  ------------------
  |  |  275|      5|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      5|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      5|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      5|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      5|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      5| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      5|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      5|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      5|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      5|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      5|   else                                         \
  |  |  |  |  |  |  |  | 1240|      5|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      5|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      5|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      5|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      5|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4884|      5|  node->data->instance.private_size = private_size;
 4885|       |
 4886|      5|  *private_size_or_offset = -(gint) node->data->instance.private_size;
 4887|       |
 4888|      5|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      5|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 4889|      5|}
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|    210|{
 5014|    210|  TypeNode *class_node;
 5015|    210|  TypeNode *private_node;
 5016|    210|  TypeNode *parent_node;
 5017|    210|  gsize offset;
 5018|       |
 5019|    210|  g_return_val_if_fail (klass != NULL, NULL);
  ------------------
  |  |  663|    210|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    210|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    210|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    210|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    210|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    210| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    210|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    210|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    210|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 210, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    210|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    210|   else                                         \
  |  |  |  |  |  |  |  | 1240|    210|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    210|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    210|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 210, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    210|      { } \
  |  |  666|    210|    else \
  |  |  667|    210|      { \
  |  |  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|    210|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    210|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 210]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5020|       |
 5021|    210|  class_node = lookup_type_node_I (klass->g_type);
 5022|    210|  if (G_UNLIKELY (!class_node || !class_node->is_classed))
  ------------------
  |  | 1245|    210|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    210|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    210| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    210|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    210|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    630|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 210]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 210]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    210|      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|    210|   else                                         \
  |  |  |  |  |  | 1240|    210|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    210|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    210|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 210]
  |  |  ------------------
  ------------------
 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|    210|  private_node = lookup_type_node_I (private_type);
 5030|    210|  if (G_UNLIKELY (!private_node || !NODE_IS_ANCESTOR (private_node, class_node)))
  ------------------
  |  | 1245|    210|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    210|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    210| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    210|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    210|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|  1.05k|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 210, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 210, False: 0]
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 210]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    210|      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|    210|   else                                         \
  |  |  |  |  |  | 1240|    210|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    210|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    210|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 210]
  |  |  ------------------
  ------------------
 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|    210|  offset = ALIGN_STRUCT (class_node->data->class.class_size);
  ------------------
  |  |  130|    210|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    210|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    210|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 5038|       |
 5039|    210|  if (NODE_PARENT_TYPE (private_node))
  ------------------
  |  |  228|    210|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 210, False: 0]
  |  |  ------------------
  ------------------
 5040|    210|    {
 5041|    210|      parent_node = lookup_type_node_I (NODE_PARENT_TYPE (private_node));
  ------------------
  |  |  228|    210|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 5042|    210|      g_assert (parent_node->data && NODE_REFCOUNT (parent_node) > 0);
  ------------------
  |  |  275|    210|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    210|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    210|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    210|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    210|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    210| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    210|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    210|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|  1.05k|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 210]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 210, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 210, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    210|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    210|   else                                         \
  |  |  |  |  |  |  |  | 1240|    210|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    210|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    210|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 210, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    210|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    210|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    210|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 210]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 5043|       |
 5044|    210|      if (G_UNLIKELY (private_node->data->class.class_private_size == parent_node->data->class.class_private_size))
  ------------------
  |  | 1245|    210|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 1243|    210|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1235|    210| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   62|    210|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1236|    210|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  | 1237|    210|   if (expr)                                    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 210]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|    210|      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|    210|   else                                         \
  |  |  |  |  |  | 1240|    210|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1241|    210|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|    210|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|    210|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1242|    210|})
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (1245:26): [True: 0, False: 210]
  |  |  ------------------
  ------------------
 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|    210|      offset += ALIGN_STRUCT (parent_node->data->class.class_private_size);
  ------------------
  |  |  130|    210|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    210|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|    210|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 5051|    210|    }
 5052|       |
 5053|    210|  return G_STRUCT_MEMBER_P (klass, offset);
  ------------------
  |  |  971|    210|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 5054|    210|}
g_type_ensure:
 5077|      6|{
 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|      6|  if (G_UNLIKELY (type == (GType)-1))
  ------------------
  |  | 1245|      6|#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
  |  |  ------------------
  |  |  |  | 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: 0, False: 6]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1238|      6|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  | 1239|      6|   else                                         \
  |  |  |  |  |  | 1240|      6|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  866|      6|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  865|      6|#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 (1245:26): [True: 0, False: 6]
  |  |  ------------------
  ------------------
 5083|      6|    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|      6|}
gtype.c:lookup_type_node_I:
  369|  27.4k|{
  370|  27.4k|  if (utype > G_TYPE_FUNDAMENTAL_MAX)
  ------------------
  |  |   55|  27.4k|#define	G_TYPE_FUNDAMENTAL_MAX		(255 << G_TYPE_FUNDAMENTAL_SHIFT)
  |  |  ------------------
  |  |  |  |   48|  27.4k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  |  Branch (370:7): [True: 26.1k, False: 1.25k]
  ------------------
  371|  26.1k|    return (TypeNode*) (utype & ~TYPE_ID_MASK);
  ------------------
  |  |  242|  26.1k|#define	TYPE_ID_MASK				((GType) ((1 << G_TYPE_FUNDAMENTAL_SHIFT) - 1))
  |  |  ------------------
  |  |  |  |   48|  26.1k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  ------------------
  ------------------
  372|  1.25k|  else
  373|  1.25k|    return static_fundamental_type_nodes[utype >> G_TYPE_FUNDAMENTAL_SHIFT];
  ------------------
  |  |   48|  1.25k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  ------------------
  374|  27.4k|}
gtype.c:type_iface_add_prerequisite_W:
 1493|      4|{
 1494|      4|  GType prerequisite_type = NODE_TYPE (prerequisite_node);
  ------------------
  |  |  227|      4|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1495|      4|  GType *prerequisites, *dependants;
 1496|      4|  guint n_dependants, i;
 1497|       |  
 1498|      4|  g_assert (NODE_IS_IFACE (iface) &&
  ------------------
  |  |  275|      4|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      4|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     24|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      4|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      4|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1499|      4|	    IFACE_NODE_N_PREREQUISITES (iface) < MAX_N_PREREQUISITES &&
 1500|      4|	    (prerequisite_node->is_instantiatable || NODE_IS_IFACE (prerequisite_node)));
 1501|       |  
 1502|      4|  prerequisites = IFACE_NODE_PREREQUISITES (iface);
  ------------------
  |  |  237|      4|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 1503|      4|  for (i = 0; i < IFACE_NODE_N_PREREQUISITES (iface); i++)
  ------------------
  |  |  236|      4|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (1503:15): [True: 0, False: 4]
  ------------------
 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|      4|  IFACE_NODE_N_PREREQUISITES (iface) += 1;
  ------------------
  |  |  236|      4|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
 1509|      4|  IFACE_NODE_PREREQUISITES (iface) = g_renew (GType,
  ------------------
  |  |  237|      4|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
                IFACE_NODE_PREREQUISITES (iface) = g_renew (GType,
  ------------------
  |  |  346|      4|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|      4|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|      4|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|      4|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|      4|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|      4|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 4]
  |  |  |  |  ------------------
  |  |  |  |  279|      4|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|      4|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 4]
  |  |  |  |  ------------------
  |  |  |  |  281|      4|	           (__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|      4|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|      4|	  else							\
  |  |  |  |  284|      4|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|      4|	  __p;							\
  |  |  |  |  286|      4|	}))
  |  |  ------------------
  ------------------
 1510|      4|					      IFACE_NODE_PREREQUISITES (iface),
 1511|      4|					      IFACE_NODE_N_PREREQUISITES (iface));
 1512|      4|  prerequisites = IFACE_NODE_PREREQUISITES (iface);
  ------------------
  |  |  237|      4|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 1513|      4|  memmove (prerequisites + i + 1, prerequisites + i,
 1514|      4|           sizeof (prerequisites[0]) * (IFACE_NODE_N_PREREQUISITES (iface) - i - 1));
  ------------------
  |  |  236|      4|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
 1515|      4|  prerequisites[i] = prerequisite_type;
 1516|       |  
 1517|       |  /* we want to get notified when prerequisites get added to prerequisite_node */
 1518|      4|  if (NODE_IS_IFACE (prerequisite_node))
  ------------------
  |  |  233|      4|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      4|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      4|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      4|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      4|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 0, False: 4]
  |  |  ------------------
  ------------------
 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|      4|  dependants = iface_node_get_dependants_array_L (iface);
  ------------------
  |  |  240|      4|#define	iface_node_get_dependants_array_L(n)	((GType*) type_get_qdata_L ((n), static_quark_dependants_array))
  ------------------
 1531|      4|  n_dependants = dependants ? dependants[0] : 0;
  ------------------
  |  Branch (1531:18): [True: 0, False: 4]
  ------------------
 1532|      4|  for (i = 1; i <= n_dependants; i++)
  ------------------
  |  Branch (1532:15): [True: 0, False: 4]
  ------------------
 1533|      0|    type_iface_add_prerequisite_W (lookup_type_node_I (dependants[i]), prerequisite_node);
 1534|      4|}
gtype.c:check_type_name_I:
  721|    102|{
  722|    102|  static const gchar extra_chars[] = "-_+";
  723|    102|  const gchar *p = type_name;
  724|    102|  gboolean name_valid;
  725|       |  
  726|    102|  if (!type_name[0] || !type_name[1] || !type_name[2])
  ------------------
  |  Branch (726:7): [True: 0, False: 102]
  |  Branch (726:24): [True: 0, False: 102]
  |  Branch (726:41): [True: 0, False: 102]
  ------------------
  727|      0|    {
  728|      0|      g_critical ("type name '%s' is too short", type_name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  729|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  730|      0|    }
  731|       |  /* check the first letter */
  732|    102|  name_valid = (p[0] >= 'A' && p[0] <= 'Z') || (p[0] >= 'a' && p[0] <= 'z') || p[0] == '_';
  ------------------
  |  Branch (732:17): [True: 102, False: 0]
  |  Branch (732:32): [True: 76, False: 26]
  |  Branch (732:49): [True: 26, False: 0]
  |  Branch (732:64): [True: 26, False: 0]
  |  Branch (732:80): [True: 0, False: 0]
  ------------------
  733|    983|  for (p = type_name + 1; *p; p++)
  ------------------
  |  Branch (733:27): [True: 881, False: 102]
  ------------------
  734|    881|    name_valid &= ((p[0] >= 'A' && p[0] <= 'Z') ||
  ------------------
  |  Branch (734:21): [True: 865, False: 16]
  |  Branch (734:36): [True: 146, False: 719]
  ------------------
  735|    735|		   (p[0] >= 'a' && p[0] <= 'z') ||
  ------------------
  |  Branch (735:7): [True: 719, False: 16]
  |  Branch (735:22): [True: 719, False: 0]
  ------------------
  736|     16|		   (p[0] >= '0' && p[0] <= '9') ||
  ------------------
  |  Branch (736:7): [True: 16, False: 0]
  |  Branch (736:22): [True: 16, False: 0]
  ------------------
  737|      0|		   strchr (extra_chars, p[0]));
  ------------------
  |  Branch (737:6): [True: 0, False: 0]
  ------------------
  738|    102|  if (!name_valid)
  ------------------
  |  Branch (738:7): [True: 0, False: 102]
  ------------------
  739|      0|    {
  740|      0|      g_critical ("type name '%s' contains invalid characters", type_name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  741|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  742|      0|    }
  743|    102|  if (g_type_from_name (type_name))
  ------------------
  |  Branch (743:7): [True: 0, False: 102]
  ------------------
  744|      0|    {
  745|      0|      g_critical ("cannot register existing type '%s'", type_name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  746|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  747|      0|    }
  748|       |  
  749|    102|  return TRUE;
  ------------------
  |  |  929|    102|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    102|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  750|    102|}
gtype.c:type_node_fundamental_new_W:
  522|     42|{
  523|     42|  GTypeFundamentalInfo *finfo;
  524|     42|  TypeNode *node;
  525|       |
  526|     42|  g_assert ((ftype & TYPE_ID_MASK) == 0);
  ------------------
  |  |  275|     42|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     42|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     42|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     42|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     42|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     42| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     42|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     42|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     42|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 42, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     42|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     42|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     42|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     42|   else                                         \
  |  |  |  |  |  |  |  | 1240|     42|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     42|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     42|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     42|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     42|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 42, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     42|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     42|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     42|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 42]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  527|     42|  g_assert (ftype <= G_TYPE_FUNDAMENTAL_MAX);
  ------------------
  |  |  275|     42|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     42|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     42|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     42|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     42|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     42| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     42|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     42|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     42|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 42, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     42|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     42|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     42|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     42|   else                                         \
  |  |  |  |  |  |  |  | 1240|     42|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     42|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     42|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     42|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     42|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 42, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     42|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     42|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     42|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 42]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  528|       |
  529|     42|  if (ftype >> G_TYPE_FUNDAMENTAL_SHIFT == static_fundamental_next)
  ------------------
  |  |   48|     42|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  ------------------
  |  Branch (529:7): [True: 0, False: 42]
  ------------------
  530|      0|    static_fundamental_next++;
  531|       |
  532|     42|  node = type_node_any_new_W (NULL, ftype, name, NULL, type_flags);
  533|       |
  534|     42|  finfo = type_node_fundamental_info_I (node);
  535|     42|  finfo->type_flags = type_flags & TYPE_FUNDAMENTAL_FLAG_MASK;
  ------------------
  |  |  102|     42|#define TYPE_FUNDAMENTAL_FLAG_MASK (G_TYPE_FLAG_CLASSED | \
  |  |  103|     42|				    G_TYPE_FLAG_INSTANTIATABLE | \
  |  |  104|     42|				    G_TYPE_FLAG_DERIVABLE | \
  |  |  105|     42|				    G_TYPE_FLAG_DEEP_DERIVABLE)
  ------------------
  536|       |
  537|     42|  return node;
  538|     42|}
gtype.c:type_node_any_new_W:
  401|    106|{
  402|    106|  guint n_supers;
  403|    106|  GType type;
  404|    106|  TypeNode *node;
  405|    106|  guint i, node_size = 0;
  406|       |
  407|    106|  n_supers = pnode ? pnode->n_supers + 1 : 0;
  ------------------
  |  Branch (407:14): [True: 64, False: 42]
  ------------------
  408|       |  
  409|    106|  if (!pnode)
  ------------------
  |  Branch (409:7): [True: 42, False: 64]
  ------------------
  410|     42|    node_size += SIZEOF_FUNDAMENTAL_INFO;	      /* fundamental type info */
  ------------------
  |  |  116|     42|#define	SIZEOF_FUNDAMENTAL_INFO	   ((gssize) MAX (MAX (sizeof (GTypeFundamentalInfo), \
  |  |  ------------------
  |  |  |  |  933|     84|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (933:21): [Folded, False: 42]
  |  |  |  |  |  Branch (933:23): [Folded, False: 42]
  |  |  |  |  |  Branch (933:36): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|     42|						       sizeof (gpointer)), \
  |  |  118|     42|                                                  sizeof (glong)))
  ------------------
  411|    106|  node_size += SIZEOF_BASE_TYPE_NODE ();	      /* TypeNode structure */
  ------------------
  |  |  222|    106|#define SIZEOF_BASE_TYPE_NODE()			(G_STRUCT_OFFSET (TypeNode, supers))
  |  |  ------------------
  |  |  |  |  964|    106|      ((glong) offsetof (struct_type, member))
  |  |  ------------------
  ------------------
  412|    106|  node_size += (sizeof (GType) * (1 + n_supers + 1)); /* self + ancestors + (0) for ->supers[] */
  413|    106|  node = g_malloc0 (node_size);
  414|    106|  if (!pnode)					      /* offset fundamental types */
  ------------------
  |  Branch (414:7): [True: 42, False: 64]
  ------------------
  415|     42|    {
  416|     42|      node = G_STRUCT_MEMBER_P (node, SIZEOF_FUNDAMENTAL_INFO);
  ------------------
  |  |  971|    168|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  |  |  |  Branch (971:50): [Folded, False: 42]
  |  |  |  Branch (971:50): [Folded, False: 0]
  |  |  |  Branch (971:50): [Folded, False: 42]
  |  |  ------------------
  ------------------
  417|     42|      static_fundamental_type_nodes[ftype >> G_TYPE_FUNDAMENTAL_SHIFT] = node;
  ------------------
  |  |   48|     42|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  ------------------
  418|     42|      type = ftype;
  419|       |
  420|     42|#if ENABLE_VALGRIND
  421|     42|      VALGRIND_MALLOCLIKE_BLOCK (node, node_size - SIZEOF_FUNDAMENTAL_INFO, FALSE, TRUE);
  ------------------
  |  | 6480|     42|    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__MALLOCLIKE_BLOCK,       \
  |  |  ------------------
  |  |  |  |  204|     42|  do { (void) VALGRIND_DO_CLIENT_REQUEST_EXPR(0,                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  414|     42|    __extension__                                                 \
  |  |  |  |  |  |  415|     42|    ({ volatile uintptr_t _zzq_args[6];                           \
  |  |  |  |  |  |  416|     42|    volatile unsigned long int _zzq_result;                       \
  |  |  |  |  |  |  417|     42|    _zzq_args[0] = (uintptr_t)(_zzq_request);                     \
  |  |  |  |  |  |  418|     42|    _zzq_args[1] = (uintptr_t)(_zzq_arg1);                        \
  |  |  |  |  |  |  419|    168|    _zzq_args[2] = (uintptr_t)(_zzq_arg2);                        \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (419:32): [Folded, False: 42]
  |  |  |  |  |  |  |  Branch (419:32): [Folded, False: 0]
  |  |  |  |  |  |  |  Branch (419:32): [Folded, False: 42]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  420|     42|    _zzq_args[3] = (uintptr_t)(_zzq_arg3);                        \
  |  |  |  |  |  |  421|     42|    _zzq_args[4] = (uintptr_t)(_zzq_arg4);                        \
  |  |  |  |  |  |  422|     42|    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
  |  |  |  |  |  |  423|     42|    __asm__ volatile(__SPECIAL_INSTRUCTION_PREAMBLE               \
  |  |  |  |  |  |  424|     42|                     /* %RDX = client_request ( %RAX ) */         \
  |  |  |  |  |  |  425|     42|                     "xchgq %%rbx,%%rbx"                          \
  |  |  |  |  |  |  426|     42|                     : "=d" (_zzq_result)                         \
  |  |  |  |  |  |  427|     42|                     : "a" (&_zzq_args[0]), "0" (_zzq_default)    \
  |  |  |  |  |  |  428|     42|                     : "cc", "memory"                             \
  |  |  |  |  |  |  429|     42|                    );                                            \
  |  |  |  |  |  |  430|     42|    _zzq_result;                                                  \
  |  |  |  |  |  |  431|     42|    })
  |  |  |  |  ------------------
  |  |  |  |  205|     42|                    (_zzq_request), (_zzq_arg1), (_zzq_arg2),           \
  |  |  |  |  206|     42|                    (_zzq_arg3), (_zzq_arg4), (_zzq_arg5)); } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (206:70): [Folded, False: 42]
  |  |  |  |  ------------------
  |  |  ------------------
  |  | 6481|     42|                                    addr, sizeB, rzB, is_zeroed, 0)
  ------------------
  422|     42|#endif
  423|     42|    }
  424|     64|  else
  425|     64|    type = GPOINTER_TO_TYPE (node);
  ------------------
  |  | 2722|     64|#define GPOINTER_TO_TYPE(p) ((GType) (guintptr) (p)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
  426|       |  
  427|    106|  g_assert ((type & TYPE_ID_MASK) == 0);
  ------------------
  |  |  275|    106|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    106|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    106|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    106|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    106|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    106| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    106|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    106|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    106|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 106, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    106|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    106|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    106|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    106|   else                                         \
  |  |  |  |  |  |  |  | 1240|    106|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    106|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    106|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    106|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    106|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 106, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    106|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    106|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    106|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 106]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  428|       |  
  429|    106|  node->n_supers = n_supers;
  430|    106|  if (!pnode)
  ------------------
  |  Branch (430:7): [True: 42, False: 64]
  ------------------
  431|     42|    {
  432|     42|      node->supers[0] = type;
  433|     42|      node->supers[1] = 0;
  434|       |      
  435|     42|      node->is_abstract = (type_flags & G_TYPE_FLAG_ABSTRACT) != 0;
  436|     42|      node->is_classed = (type_flags & G_TYPE_FLAG_CLASSED) != 0;
  437|     42|      node->is_deprecated = (type_flags & G_TYPE_FLAG_DEPRECATED) != 0;
  438|     42|      node->is_instantiatable = (type_flags & G_TYPE_FLAG_INSTANTIATABLE) != 0;
  439|       |      
  440|     42|      if (NODE_IS_IFACE (node))
  ------------------
  |  |  233|     42|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     42|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     42|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     42|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     42|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 2, False: 40]
  |  |  ------------------
  ------------------
  441|      2|	{
  442|      2|          IFACE_NODE_N_PREREQUISITES (node) = 0;
  ------------------
  |  |  236|      2|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  443|      2|	  IFACE_NODE_PREREQUISITES (node) = NULL;
  ------------------
  |  |  237|      2|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
  444|      2|	}
  445|     40|      else
  446|     40|	_g_atomic_array_init (CLASSED_NODE_IFACES_ENTRIES (node));
  ------------------
  |  |  234|     40|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
  447|     42|    }
  448|     64|  else
  449|     64|    {
  450|     64|      node->supers[0] = type;
  451|     64|      memcpy (node->supers + 1, pnode->supers, sizeof (GType) * (1 + pnode->n_supers + 1));
  452|       |      
  453|     64|      node->is_abstract = (type_flags & G_TYPE_FLAG_ABSTRACT) != 0;
  454|     64|      node->is_classed = pnode->is_classed;
  455|     64|      node->is_deprecated = (type_flags & G_TYPE_FLAG_DEPRECATED) != 0;
  456|     64|      node->is_instantiatable = pnode->is_instantiatable;
  457|       |
  458|     64|      node->is_deprecated |= pnode->is_deprecated;
  459|       |
  460|     64|      if (NODE_IS_IFACE (node))
  ------------------
  |  |  233|     64|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     64|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     64|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     64|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     64|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 6, False: 58]
  |  |  ------------------
  ------------------
  461|      6|	{
  462|      6|	  IFACE_NODE_N_PREREQUISITES (node) = 0;
  ------------------
  |  |  236|      6|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  463|      6|	  IFACE_NODE_PREREQUISITES (node) = NULL;
  ------------------
  |  |  237|      6|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
  464|      6|	}
  465|     58|      else
  466|     58|	{
  467|     58|	  guint j;
  468|     58|	  IFaceEntries *entries;
  469|       |
  470|     58|	  entries = _g_atomic_array_copy (CLASSED_NODE_IFACES_ENTRIES (pnode),
  ------------------
  |  |  234|     58|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
  471|     58|					  IFACE_ENTRIES_HEADER_SIZE,
  ------------------
  |  |  268|     58|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  ------------------
  472|     58|					  0);
  473|     58|	  if (entries)
  ------------------
  |  Branch (473:8): [True: 5, False: 53]
  ------------------
  474|      5|	    {
  475|     10|	      for (j = 0; j < IFACE_ENTRIES_N_ENTRIES (entries); j++)
  ------------------
  |  |  269|     10|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|     10|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|     10|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (475:20): [True: 5, False: 5]
  ------------------
  476|      5|		{
  477|      5|		  entries->entry[j].vtable = NULL;
  478|      5|		  entries->entry[j].init_state = UNINITIALIZED;
  479|      5|		}
  480|      5|	      _g_atomic_array_update (CLASSED_NODE_IFACES_ENTRIES (node),
  ------------------
  |  |  234|      5|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
  481|      5|				      entries);
  482|      5|	    }
  483|     58|	}
  484|       |
  485|     64|      i = pnode->n_children++;
  486|     64|      pnode->children = g_renew (GType, pnode->children, pnode->n_children);
  ------------------
  |  |  346|     64|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|     64|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|     64|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|     64|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|     64|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|     64|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 64]
  |  |  |  |  ------------------
  |  |  |  |  279|     64|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|     64|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 64]
  |  |  |  |  ------------------
  |  |  |  |  281|     64|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      0|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (281:14): [True: 0, False: 0]
  |  |  |  |  |  Branch (281:26): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  282|     64|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|     64|	  else							\
  |  |  |  |  284|     64|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|     64|	  __p;							\
  |  |  |  |  286|     64|	}))
  |  |  ------------------
  ------------------
  487|     64|      pnode->children[i] = type;
  488|     64|    }
  489|       |
  490|    106|  TRACE(GOBJECT_TYPE_NEW(name, node->supers[1], type));
  491|       |
  492|    106|  node->plugin = plugin;
  493|    106|  node->n_children = 0;
  494|    106|  node->children = NULL;
  495|    106|  node->data = NULL;
  496|    106|  node->qname = g_quark_from_string (name);
  497|    106|  node->global_gdata = NULL;
  498|    106|  g_hash_table_insert (static_type_nodes_ht,
  499|    106|		       (gpointer) g_quark_to_string (node->qname),
  500|    106|		       GTYPE_TO_POINTER (type));
  ------------------
  |  | 2732|    106|#define GTYPE_TO_POINTER(t) ((gpointer) (guintptr) (t)) GOBJECT_AVAILABLE_MACRO_IN_2_80
  ------------------
  501|       |
  502|    106|  g_atomic_int_inc ((gint *)&type_registration_serial);
  ------------------
  |  |  162|    106|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    106|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|    106|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    106|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|    106|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 106]
  |  |  ------------------
  |  |  165|    106|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|    106|  }))
  ------------------
  503|       |
  504|    106|  return node;
  505|    106|}
gtype.c:type_node_fundamental_info_I:
  509|    208|{
  510|    208|  GType ftype = NODE_FUNDAMENTAL_TYPE (node);
  ------------------
  |  |  229|    208|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  511|       |  
  512|    208|  if (ftype != NODE_TYPE (node))
  ------------------
  |  |  227|    208|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
  |  Branch (512:7): [True: 5, False: 203]
  ------------------
  513|      5|    node = lookup_type_node_I (ftype);
  514|       |  
  515|    208|  return node ? G_STRUCT_MEMBER_P (node, -SIZEOF_FUNDAMENTAL_INFO) : NULL;
  ------------------
  |  |  971|    832|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  |  |  ------------------
  |  |  |  Branch (971:50): [Folded, False: 208]
  |  |  |  Branch (971:50): [Folded, False: 0]
  |  |  |  Branch (971:50): [Folded, False: 208]
  |  |  ------------------
  ------------------
  |  Branch (515:10): [True: 208, False: 0]
  ------------------
  516|    208|}
gtype.c:check_type_info_I:
  877|    102|{
  878|    102|  GTypeFundamentalInfo *finfo = type_node_fundamental_info_I (lookup_type_node_I (ftype));
  879|    102|  gboolean is_interface = ftype == G_TYPE_INTERFACE;
  ------------------
  |  |   78|    102|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  ------------------
  |  |  |  |  227|    102|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  ------------------
  |  |  |  |  |  |   48|    102|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  880|       |  
  881|    102|  g_assert (ftype <= G_TYPE_FUNDAMENTAL_MAX && !(ftype & TYPE_ID_MASK));
  ------------------
  |  |  275|    102|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    102|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    306|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    102|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    102|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  882|       |  
  883|       |  /* check instance members */
  884|    102|  if (!(finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE) &&
  ------------------
  |  Branch (884:7): [True: 44, False: 58]
  ------------------
  885|     44|      (info->instance_size || info->instance_init))
  ------------------
  |  Branch (885:8): [True: 0, False: 44]
  |  Branch (885:31): [True: 0, False: 44]
  ------------------
  886|      0|    {
  887|      0|      if (pnode)
  ------------------
  |  Branch (887:11): [True: 0, False: 0]
  ------------------
  888|      0|	g_critical ("cannot instantiate '%s', derived from non-instantiatable parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  889|      0|		    type_name,
  890|      0|		    NODE_NAME (pnode));
  891|      0|      else
  892|      0|	g_critical ("cannot instantiate '%s' as non-instantiatable fundamental",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  893|      0|		    type_name);
  894|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  895|      0|    }
  896|       |  /* check class & interface members */
  897|    102|  if (!((finfo->type_flags & G_TYPE_FLAG_CLASSED) || is_interface) &&
  ------------------
  |  Branch (897:9): [True: 62, False: 40]
  |  Branch (897:54): [True: 6, False: 34]
  ------------------
  898|     34|      (info->class_init || info->class_finalize || info->class_data ||
  ------------------
  |  Branch (898:8): [True: 0, False: 34]
  |  Branch (898:28): [True: 0, False: 34]
  |  Branch (898:52): [True: 0, False: 34]
  ------------------
  899|     34|       info->class_size || info->base_init || info->base_finalize))
  ------------------
  |  Branch (899:8): [True: 0, False: 34]
  |  Branch (899:28): [True: 0, False: 34]
  |  Branch (899:47): [True: 0, False: 34]
  ------------------
  900|      0|    {
  901|      0|      if (pnode)
  ------------------
  |  Branch (901:11): [True: 0, False: 0]
  ------------------
  902|      0|	g_critical ("cannot create class for '%s', derived from non-classed parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  903|      0|		    type_name,
  904|      0|                    NODE_NAME (pnode));
  905|      0|      else
  906|      0|	g_critical ("cannot create class for '%s' as non-classed fundamental",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  907|      0|		    type_name);
  908|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  909|      0|    }
  910|       |  /* check interface size */
  911|    102|  if (is_interface && info->class_size < sizeof (GTypeInterface))
  ------------------
  |  Branch (911:7): [True: 6, False: 96]
  |  Branch (911:23): [True: 0, False: 6]
  ------------------
  912|      0|    {
  913|      0|      g_critical ("specified interface size for type '%s' is smaller than 'GTypeInterface' size",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  914|      0|		  type_name);
  915|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  916|      0|    }
  917|       |  /* check class size */
  918|    102|  if (finfo->type_flags & G_TYPE_FLAG_CLASSED)
  ------------------
  |  Branch (918:7): [True: 62, False: 40]
  ------------------
  919|     62|    {
  920|     62|      if (info->class_size < sizeof (GTypeClass))
  ------------------
  |  Branch (920:11): [True: 0, False: 62]
  ------------------
  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|     62|      if (pnode && info->class_size < pnode->data->class.class_size)
  ------------------
  |  Branch (926:11): [True: 54, False: 8]
  |  Branch (926:20): [True: 0, False: 54]
  ------------------
  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|     62|    }
  935|       |  /* check instance size */
  936|    102|  if (finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE)
  ------------------
  |  Branch (936:7): [True: 58, False: 44]
  ------------------
  937|     58|    {
  938|     58|      if (info->instance_size < sizeof (GTypeInstance))
  ------------------
  |  Branch (938:11): [True: 0, False: 58]
  ------------------
  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|     58|      if (pnode && info->instance_size < pnode->data->instance.instance_size)
  ------------------
  |  Branch (944:11): [True: 54, False: 4]
  |  Branch (944:20): [True: 0, False: 54]
  ------------------
  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|     58|    }
  953|       |  
  954|    102|  return TRUE;
  ------------------
  |  |  929|    102|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    102|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  955|    102|}
gtype.c:type_data_make_W:
 1073|    104|{
 1074|    104|  TypeData *data;
 1075|    104|  GTypeValueTable *vtable = NULL;
 1076|    104|  guint vtable_size = 0;
 1077|       |  
 1078|    104|  g_assert (node->data == NULL && info != NULL);
  ------------------
  |  |  275|    104|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    104|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    104|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    104|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    104|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    104| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    104|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    104|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    312|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 104, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 104, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    104|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    104|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    104|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    104|   else                                         \
  |  |  |  |  |  |  |  | 1240|    104|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    104|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    104|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    104|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    104|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 104, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    104|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    104|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    104|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 104]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1079|       |  
 1080|    104|  if (!value_table)
  ------------------
  |  Branch (1080:7): [True: 66, False: 38]
  ------------------
 1081|     66|    {
 1082|     66|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     66|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1083|       |      
 1084|     66|      if (pnode)
  ------------------
  |  Branch (1084:11): [True: 62, False: 4]
  ------------------
 1085|     62|	vtable = pnode->data->common.value_table;
 1086|      4|      else
 1087|      4|	{
 1088|      4|          static const GTypeValueTable zero_vtable =
 1089|      4|            { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
 1090|       |	  
 1091|      4|	  value_table = &zero_vtable;
 1092|      4|	}
 1093|     66|    }
 1094|    104|  if (value_table)
  ------------------
  |  Branch (1094:7): [True: 42, False: 62]
  ------------------
 1095|     42|    {
 1096|       |      /* need to setup vtable_size since we have to allocate it with data in one chunk */
 1097|     42|      vtable_size = sizeof (GTypeValueTable);
 1098|     42|      if (value_table->collect_format)
  ------------------
  |  Branch (1098:11): [True: 38, False: 4]
  ------------------
 1099|     38|	vtable_size += strlen (value_table->collect_format);
 1100|     42|      if (value_table->lcopy_format)
  ------------------
  |  Branch (1100:11): [True: 38, False: 4]
  ------------------
 1101|     38|	vtable_size += strlen (value_table->lcopy_format);
 1102|     42|      vtable_size += 2;
 1103|     42|    }
 1104|       |   
 1105|    104|  if (node->is_instantiatable) /* careful, is_instantiatable is also is_classed */
  ------------------
  |  Branch (1105:7): [True: 58, False: 46]
  ------------------
 1106|     58|    {
 1107|     58|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     58|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1108|       |
 1109|     58|      data = g_malloc0 (sizeof (InstanceData) + vtable_size);
 1110|     58|      if (vtable_size)
  ------------------
  |  Branch (1110:11): [True: 4, False: 54]
  ------------------
 1111|      4|	vtable = G_STRUCT_MEMBER_P (data, sizeof (InstanceData));
  ------------------
  |  |  971|      4|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1112|     58|      data->instance.class_size = info->class_size;
 1113|     58|      data->instance.class_init_base = info->base_init;
 1114|     58|      data->instance.class_finalize_base = info->base_finalize;
 1115|     58|      data->instance.class_init = info->class_init;
 1116|     58|      data->instance.class_finalize = info->class_finalize;
 1117|     58|      data->instance.class_data = info->class_data;
 1118|     58|      data->instance.class = NULL;
 1119|     58|      data->instance.init_state = UNINITIALIZED;
 1120|     58|      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|     58|      data->instance.private_size = 0;
 1125|     58|      data->instance.class_private_size = 0;
 1126|     58|      if (pnode)
  ------------------
  |  Branch (1126:11): [True: 54, False: 4]
  ------------------
 1127|     54|        data->instance.class_private_size = pnode->data->instance.class_private_size;
 1128|     58|      data->instance.instance_init = info->instance_init;
 1129|     58|    }
 1130|     46|  else if (node->is_classed) /* only classed */
  ------------------
  |  Branch (1130:12): [True: 4, False: 42]
  ------------------
 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|     42|  else 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: 8, False: 34]
  |  |  ------------------
  ------------------
 1150|      8|    {
 1151|      8|      data = g_malloc0 (sizeof (IFaceData) + vtable_size);
 1152|      8|      if (vtable_size)
  ------------------
  |  Branch (1152:11): [True: 2, False: 6]
  ------------------
 1153|      2|	vtable = G_STRUCT_MEMBER_P (data, sizeof (IFaceData));
  ------------------
  |  |  971|      2|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1154|      8|      data->iface.vtable_size = info->class_size;
 1155|      8|      data->iface.vtable_init_base = info->base_init;
 1156|      8|      data->iface.vtable_finalize_base = info->base_finalize;
 1157|      8|      data->iface.dflt_init = info->class_init;
 1158|      8|      data->iface.dflt_finalize = info->class_finalize;
 1159|      8|      data->iface.dflt_data = info->class_data;
 1160|      8|      data->iface.dflt_vtable = NULL;
 1161|      8|    }
 1162|     34|  else if (NODE_IS_BOXED (node))
  ------------------
  |  |  232|     34|#define	NODE_IS_BOXED(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_BOXED)
  |  |  ------------------
  |  |  |  |  229|     34|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_BOXED(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_BOXED)
  |  |  ------------------
  |  |  |  |  177|     34|#define G_TYPE_BOXED			G_TYPE_MAKE_FUNDAMENTAL (18)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     34|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     34|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (232:31): [True: 4, False: 30]
  |  |  ------------------
  ------------------
 1163|      4|    {
 1164|      4|      data = g_malloc0 (sizeof (BoxedData) + vtable_size);
 1165|      4|      if (vtable_size)
  ------------------
  |  Branch (1165:11): [True: 4, False: 0]
  ------------------
 1166|      4|	vtable = G_STRUCT_MEMBER_P (data, sizeof (BoxedData));
  ------------------
  |  |  971|      4|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1167|      4|    }
 1168|     30|  else
 1169|     30|    {
 1170|     30|      data = g_malloc0 (sizeof (CommonData) + vtable_size);
 1171|     30|      if (vtable_size)
  ------------------
  |  Branch (1171:11): [True: 28, False: 2]
  ------------------
 1172|     28|	vtable = G_STRUCT_MEMBER_P (data, sizeof (CommonData));
  ------------------
  |  |  971|     28|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1173|     30|    }
 1174|       |  
 1175|    104|  node->data = data;
 1176|       |  
 1177|    104|  if (vtable_size)
  ------------------
  |  Branch (1177:7): [True: 42, False: 62]
  ------------------
 1178|     42|    {
 1179|     42|      gchar *p;
 1180|       |      
 1181|       |      /* we allocate the vtable and its strings together with the type data, so
 1182|       |       * children can take over their parent's vtable pointer, and we don't
 1183|       |       * need to worry freeing it or not when the child data is destroyed
 1184|       |       */
 1185|     42|      *vtable = *value_table;
 1186|     42|      p = G_STRUCT_MEMBER_P (vtable, sizeof (*vtable));
  ------------------
  |  |  971|     42|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 1187|     42|      p[0] = 0;
 1188|     42|      vtable->collect_format = p;
 1189|     42|      if (value_table->collect_format)
  ------------------
  |  Branch (1189:11): [True: 38, False: 4]
  ------------------
 1190|     38|	{
 1191|     38|	  strcat (p, value_table->collect_format);
 1192|     38|	  p += strlen (value_table->collect_format);
 1193|     38|	}
 1194|     42|      p++;
 1195|     42|      p[0] = 0;
 1196|     42|      vtable->lcopy_format = p;
 1197|     42|      if (value_table->lcopy_format)
  ------------------
  |  Branch (1197:11): [True: 38, False: 4]
  ------------------
 1198|     38|	strcat  (p, value_table->lcopy_format);
 1199|     42|    }
 1200|    104|  node->data->common.value_table = vtable;
 1201|    104|  node->mutatable_check_cache = (node->data->common.value_table->value_init != NULL &&
  ------------------
  |  Branch (1201:34): [True: 94, False: 10]
  ------------------
 1202|     94|				 !((G_TYPE_FLAG_VALUE_ABSTRACT | G_TYPE_FLAG_ABSTRACT) &
  ------------------
  |  Branch (1202:6): [True: 88, False: 6]
  ------------------
 1203|     94|				   GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags))));
  ------------------
  |  |  104|     94|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 1204|       |  
 1205|    104|  g_assert (node->data->common.value_table != NULL); /* paranoid */
  ------------------
  |  |  275|    104|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    104|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|    104|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|    104|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    104|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    104| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    104|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    104|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    104|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 104, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    104|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    104|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    104|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    104|   else                                         \
  |  |  |  |  |  |  |  | 1240|    104|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    104|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    104|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    104|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    104|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 104, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|    104|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|    104|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    104|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 104]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1206|       |
 1207|    104|  g_atomic_int_set ((int *) &node->ref_count, 1);
  ------------------
  |  |  118|    104|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    104|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|    104|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    104|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|    104|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|    104|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 104]
  |  |  ------------------
  |  |  122|    104|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|    104|  }))
  ------------------
 1208|    104|}
gtype.c:check_value_table_I:
  813|    102|{
  814|    102|  if (!value_table)
  ------------------
  |  Branch (814:7): [True: 64, False: 38]
  ------------------
  815|     64|    return FALSE;
  ------------------
  |  |  925|     64|#define	FALSE	(0)
  ------------------
  816|     38|  else if (value_table->value_init == NULL)
  ------------------
  |  Branch (816:12): [True: 0, False: 38]
  ------------------
  817|      0|    {
  818|      0|      if (value_table->value_free || value_table->value_copy ||
  ------------------
  |  Branch (818:11): [True: 0, False: 0]
  |  Branch (818:38): [True: 0, False: 0]
  ------------------
  819|      0|	  value_table->value_peek_pointer ||
  ------------------
  |  Branch (819:4): [True: 0, False: 0]
  ------------------
  820|      0|	  value_table->collect_format || value_table->collect_value ||
  ------------------
  |  Branch (820:4): [True: 0, False: 0]
  |  Branch (820:35): [True: 0, False: 0]
  ------------------
  821|      0|	  value_table->lcopy_format || value_table->lcopy_value)
  ------------------
  |  Branch (821:4): [True: 0, False: 0]
  |  Branch (821:33): [True: 0, False: 0]
  ------------------
  822|      0|	g_critical ("cannot handle uninitializable values of type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  823|      0|		    type_name);
  824|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  825|      0|    }
  826|     38|  else /* value_table->value_init != NULL */
  827|     38|    {
  828|     38|      if (!value_table->value_free)
  ------------------
  |  Branch (828:11): [True: 28, False: 10]
  ------------------
  829|     28|	{
  830|       |	  /* +++ optional +++
  831|       |	   * g_critical ("missing 'value_free()' for type '%s'", type_name);
  832|       |	   * return FALSE;
  833|       |	   */
  834|     28|	}
  835|     38|      if (!value_table->value_copy)
  ------------------
  |  Branch (835:11): [True: 0, False: 38]
  ------------------
  836|      0|	{
  837|      0|	  g_critical ("missing 'value_copy()' for type '%s'", type_name);
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  838|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  839|      0|	}
  840|     38|      if ((value_table->collect_format || value_table->collect_value) &&
  ------------------
  |  Branch (840:12): [True: 38, False: 0]
  |  Branch (840:43): [True: 0, False: 0]
  ------------------
  841|     38|	  (!value_table->collect_format || !value_table->collect_value))
  ------------------
  |  Branch (841:5): [True: 0, False: 38]
  |  Branch (841:37): [True: 0, False: 38]
  ------------------
  842|      0|	{
  843|      0|	  g_critical ("one of 'collect_format' and 'collect_value()' is unspecified for type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  844|      0|		      type_name);
  845|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  846|      0|	}
  847|     38|      if (value_table->collect_format && !check_collect_format_I (value_table->collect_format))
  ------------------
  |  Branch (847:11): [True: 38, False: 0]
  |  Branch (847:42): [True: 0, False: 38]
  ------------------
  848|      0|	{
  849|      0|	  g_critical ("the '%s' specification for type '%s' is too long or invalid",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  850|      0|		      "collect_format",
  851|      0|		      type_name);
  852|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  853|      0|	}
  854|     38|      if ((value_table->lcopy_format || value_table->lcopy_value) &&
  ------------------
  |  Branch (854:12): [True: 38, False: 0]
  |  Branch (854:41): [True: 0, False: 0]
  ------------------
  855|     38|	  (!value_table->lcopy_format || !value_table->lcopy_value))
  ------------------
  |  Branch (855:5): [True: 0, False: 38]
  |  Branch (855:35): [True: 0, False: 38]
  ------------------
  856|      0|	{
  857|      0|	  g_critical ("one of 'lcopy_format' and 'lcopy_value()' is unspecified for type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  858|      0|		      type_name);
  859|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  860|      0|	}
  861|     38|      if (value_table->lcopy_format && !check_collect_format_I (value_table->lcopy_format))
  ------------------
  |  Branch (861:11): [True: 38, False: 0]
  |  Branch (861:40): [True: 0, False: 38]
  ------------------
  862|      0|	{
  863|      0|	  g_critical ("the '%s' specification for type '%s' is too long or invalid",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  864|      0|		      "lcopy_format",
  865|      0|		      type_name);
  866|      0|	  return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  867|      0|	}
  868|     38|    }
  869|     38|  return TRUE;
  ------------------
  |  |  929|     38|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     38|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  870|    102|}
gtype.c:check_collect_format_I:
  798|     76|{
  799|     76|  const gchar *p = collect_format;
  800|     76|  gchar valid_format[] = { G_VALUE_COLLECT_INT, G_VALUE_COLLECT_LONG,
  801|     76|			   G_VALUE_COLLECT_INT64, G_VALUE_COLLECT_DOUBLE,
  802|     76|			   G_VALUE_COLLECT_POINTER, 0 };
  803|       |  
  804|    152|  while (*p)
  ------------------
  |  Branch (804:10): [True: 76, False: 76]
  ------------------
  805|     76|    if (!strchr (valid_format, *p++))
  ------------------
  |  Branch (805:9): [True: 0, False: 76]
  ------------------
  806|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  807|     76|  return p - collect_format <= G_VALUE_COLLECT_FORMAT_MAX_LENGTH;
  ------------------
  |  |  276|     76|#define	G_VALUE_COLLECT_FORMAT_MAX_LENGTH	(8)
  ------------------
  808|     76|}
gtype.c:check_derivation_I:
  755|     64|{
  756|     64|  TypeNode *pnode;
  757|     64|  GTypeFundamentalInfo* finfo;
  758|       |  
  759|     64|  pnode = lookup_type_node_I (parent_type);
  760|     64|  if (!pnode)
  ------------------
  |  Branch (760:7): [True: 0, False: 64]
  ------------------
  761|      0|    {
  762|      0|      g_critical ("cannot derive type '%s' from invalid parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  763|      0|		  type_name,
  764|      0|		  type_descriptive_name_I (parent_type));
  765|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  766|      0|    }
  767|     64|  if (pnode->is_final)
  ------------------
  |  Branch (767:7): [True: 0, False: 64]
  ------------------
  768|      0|    {
  769|      0|      g_critical ("cannot derive '%s' from final parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  770|      0|                  type_name,
  771|      0|                  NODE_NAME (pnode));
  772|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  773|      0|    }
  774|     64|  finfo = type_node_fundamental_info_I (pnode);
  775|       |  /* ensure flat derivability */
  776|     64|  if (!(finfo->type_flags & G_TYPE_FLAG_DERIVABLE))
  ------------------
  |  Branch (776:7): [True: 0, False: 64]
  ------------------
  777|      0|    {
  778|      0|      g_critical ("cannot derive '%s' from non-derivable parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  779|      0|		  type_name,
  780|      0|		  NODE_NAME (pnode));
  781|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  782|      0|    }
  783|       |  /* ensure deep derivability */
  784|     64|  if (parent_type != NODE_FUNDAMENTAL_TYPE (pnode) &&
  ------------------
  |  |  229|    128|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  |  Branch (784:7): [True: 5, False: 59]
  ------------------
  785|      5|      !(finfo->type_flags & G_TYPE_FLAG_DEEP_DERIVABLE))
  ------------------
  |  Branch (785:7): [True: 0, False: 5]
  ------------------
  786|      0|    {
  787|      0|      g_critical ("cannot derive '%s' from non-fundamental parent type '%s'",
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
  788|      0|		  type_name,
  789|      0|		  NODE_NAME (pnode));
  790|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  791|      0|    }
  792|       |  
  793|     64|  return TRUE;
  ------------------
  |  |  929|     64|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     64|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  794|     64|}
gtype.c:type_data_ref_Wm:
 1212|     64|{
 1213|     64|  if (!node->data)
  ------------------
  |  Branch (1213:7): [True: 0, False: 64]
  ------------------
 1214|      0|    {
 1215|      0|      TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      0|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1216|      0|      GTypeInfo tmp_info;
 1217|      0|      GTypeValueTable tmp_value_table;
 1218|       |      
 1219|      0|      g_assert (node->plugin != NULL);
  ------------------
  |  |  275|      0|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      0|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      0|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      0|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      0| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      0|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      0|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      0|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      0|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      0|   else                                         \
  |  |  |  |  |  |  |  | 1240|      0|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      0|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      0|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      0|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      0|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1220|       |      
 1221|      0|      if (pnode)
  ------------------
  |  Branch (1221:11): [True: 0, False: 0]
  ------------------
 1222|      0|	{
 1223|      0|	  type_data_ref_Wm (pnode);
 1224|      0|	  if (node->data)
  ------------------
  |  Branch (1224:8): [True: 0, False: 0]
  ------------------
 1225|      0|	    INVALID_RECURSION ("g_type_plugin_*", node->plugin, NODE_NAME (node));
  ------------------
  |  |   88|      0|#define	INVALID_RECURSION(func, arg, type_name) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |   89|      0|    static const gchar _action[] = " invalidly modified type ";  \
  |  |   90|      0|    gpointer _arg = (gpointer) (arg); const gchar *_tname = (type_name), *_fname = (func); \
  |  |   91|      0|    if (_arg) \
  |  |  ------------------
  |  |  |  Branch (91:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   92|      0|      g_error ("%s(%p)%s'%s'", _fname, _arg, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   93|      0|    else \
  |  |   94|      0|      g_error ("%s()%s'%s'", _fname, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   95|      0|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1226|      0|	}
 1227|       |      
 1228|      0|      memset (&tmp_info, 0, sizeof (tmp_info));
 1229|      0|      memset (&tmp_value_table, 0, sizeof (tmp_value_table));
 1230|       |      
 1231|      0|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      0|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 1232|      0|      g_type_plugin_use (node->plugin);
 1233|      0|      g_type_plugin_complete_type_info (node->plugin, NODE_TYPE (node), &tmp_info, &tmp_value_table);
  ------------------
  |  |  227|      0|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1234|      0|      G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      0|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 1235|      0|      if (node->data)
  ------------------
  |  Branch (1235:11): [True: 0, False: 0]
  ------------------
 1236|      0|	INVALID_RECURSION ("g_type_plugin_*", node->plugin, NODE_NAME (node));
  ------------------
  |  |   88|      0|#define	INVALID_RECURSION(func, arg, type_name) G_STMT_START{ \
  |  |  ------------------
  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  ------------------
  |  |   89|      0|    static const gchar _action[] = " invalidly modified type ";  \
  |  |   90|      0|    gpointer _arg = (gpointer) (arg); const gchar *_tname = (type_name), *_fname = (func); \
  |  |   91|      0|    if (_arg) \
  |  |  ------------------
  |  |  |  Branch (91:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   92|      0|      g_error ("%s(%p)%s'%s'", _fname, _arg, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   93|      0|    else \
  |  |   94|      0|      g_error ("%s()%s'%s'", _fname, _action, _tname); \
  |  |  ------------------
  |  |  |  |  350|      0|#define g_error(...)  G_STMT_START {                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  985|      0|#define G_STMT_START  do
  |  |  |  |  ------------------
  |  |  |  |  351|      0|                        g_log (G_LOG_DOMAIN,         \
  |  |  |  |  352|      0|                               G_LOG_LEVEL_ERROR,    \
  |  |  |  |  353|      0|                               __VA_ARGS__);         \
  |  |  |  |  354|      0|                        for (;;) ;                   \
  |  |  |  |  355|      0|                      } G_STMT_END
  |  |  |  |  ------------------
  |  |  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   95|      0|}G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      0|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1237|       |      
 1238|      0|      check_type_info_I (pnode, NODE_FUNDAMENTAL_TYPE (node), NODE_NAME (node), &tmp_info);
  ------------------
  |  |  229|      0|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
                    check_type_info_I (pnode, NODE_FUNDAMENTAL_TYPE (node), NODE_NAME (node), &tmp_info);
  ------------------
  |  |  230|      0|#define NODE_NAME(node)				(g_quark_to_string (node->qname))
  ------------------
 1239|      0|      type_data_make_W (node, &tmp_info,
 1240|      0|			check_value_table_I (NODE_NAME (node),
  ------------------
  |  |  230|      0|#define NODE_NAME(node)				(g_quark_to_string (node->qname))
  ------------------
  |  Branch (1240:4): [True: 0, False: 0]
  ------------------
 1241|      0|					     &tmp_value_table) ? &tmp_value_table : NULL);
 1242|      0|    }
 1243|     64|  else
 1244|     64|    {
 1245|     64|      g_assert (NODE_REFCOUNT (node) > 0);
  ------------------
  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    192|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 64]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     64|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1246|       |      
 1247|     64|      g_atomic_int_inc ((int *) &node->ref_count);
  ------------------
  |  |  162|     64|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  163|     64|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     64|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  164|     64|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (164:13): [Folded, False: 64]
  |  |  ------------------
  |  |  165|     64|    (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST);               \
  |  |  166|     64|  }))
  ------------------
 1248|     64|    }
 1249|     64|}
gtype.c:type_node_new_W:
  545|     64|{
  546|     64|  g_assert (pnode);
  ------------------
  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     64|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  547|     64|  g_assert (pnode->n_supers < MAX_N_SUPERS);
  ------------------
  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     64|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  548|     64|  g_assert (pnode->n_children < MAX_N_CHILDREN);
  ------------------
  |  |  275|     64|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     64|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     64|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     64|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     64|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     64| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     64|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     64|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     64|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 64, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     64|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     64|   else                                         \
  |  |  |  |  |  |  |  | 1240|     64|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     64|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     64|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     64|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     64|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 64, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     64|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     64|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     64|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 64]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  549|       |  
  550|     64|  return type_node_any_new_W (pnode, NODE_FUNDAMENTAL_TYPE (pnode), name, plugin, 0);
  ------------------
  |  |  229|     64|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  ------------------
  551|     64|}
gtype.c:check_add_interface_L:
  976|      4|{
  977|      4|  TypeNode *node = lookup_type_node_I (instance_type);
  978|      4|  TypeNode *iface = lookup_type_node_I (iface_type);
  979|      4|  IFaceEntry *entry;
  980|      4|  TypeNode *tnode;
  981|      4|  GType *prerequisites;
  982|      4|  guint i;
  983|       |
  984|       |  
  985|      4|  if (!node || !node->is_instantiatable)
  ------------------
  |  Branch (985:7): [True: 0, False: 4]
  |  Branch (985:16): [True: 0, False: 4]
  ------------------
  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|      4|  if (!iface || !NODE_IS_IFACE (iface))
  ------------------
  |  |  233|      4|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      4|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      4|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      4|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      4|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (991:7): [True: 0, False: 4]
  |  Branch (991:17): [True: 0, False: 4]
  ------------------
  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|      4|  if (node->data && node->data->class.class)
  ------------------
  |  Branch (998:7): [True: 4, False: 0]
  |  Branch (998:21): [True: 0, False: 4]
  ------------------
  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|      4|  tnode = lookup_type_node_I (NODE_PARENT_TYPE (iface));
  ------------------
  |  |  228|      4|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 1005|      4|  if (NODE_PARENT_TYPE (tnode) && !type_lookup_iface_entry_L (node, tnode))
  ------------------
  |  |  228|      8|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  |  |  ------------------
  |  |  |  Branch (228:34): [True: 0, False: 4]
  |  |  ------------------
  ------------------
  |  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|      4|  entry = type_lookup_iface_entry_L (node, iface);
 1016|      4|  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: 4]
  |  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|      4|  tnode = find_conforming_child_type_L (node, iface);  /* tnode is_a node */
 1028|      4|  if (tnode)
  ------------------
  |  Branch (1028:7): [True: 0, False: 4]
  ------------------
 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|      4|  prerequisites = IFACE_NODE_PREREQUISITES (iface);
  ------------------
  |  |  237|      4|#define	IFACE_NODE_PREREQUISITES(node)		((node)->prerequisites)
  ------------------
 1037|      8|  for (i = 0; i < IFACE_NODE_N_PREREQUISITES (iface); i++)
  ------------------
  |  |  236|      8|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  ------------------
  |  Branch (1037:15): [True: 4, False: 4]
  ------------------
 1038|      4|    {
 1039|      4|      tnode = lookup_type_node_I (prerequisites[i]);
 1040|      4|      if (!type_node_is_a_L (node, tnode))
  ------------------
  |  Branch (1040:11): [True: 0, False: 4]
  ------------------
 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|      4|    }
 1049|      4|  return TRUE;
  ------------------
  |  |  929|      4|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      4|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1050|      4|}
gtype.c:type_lookup_iface_entry_L:
  597|     21|{
  598|     21|  if (!NODE_IS_IFACE (iface_node))
  ------------------
  |  |  233|     21|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     21|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     21|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     21|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     21|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (598:7): [True: 0, False: 21]
  ------------------
  599|      0|    return NULL;
  600|       |
  601|     21|  return lookup_iface_entry_I (CLASSED_NODE_IFACES_ENTRIES_LOCKED (node),
  ------------------
  |  |  235|     21|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|     21|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
  602|     21|			       iface_node);
  603|     21|}
gtype.c:lookup_iface_entry_I:
  556|  4.56k|{
  557|  4.56k|  guint8 *offsets;
  558|  4.56k|  gsize offset_index;
  559|  4.56k|  IFaceEntry *check;
  560|  4.56k|  gsize index;
  561|  4.56k|  IFaceEntry *entry;
  562|       |
  563|  4.56k|  if (entries == NULL)
  ------------------
  |  Branch (563:7): [True: 12, False: 4.54k]
  ------------------
  564|     12|    return NULL;
  565|       |
  566|  4.56k|  G_ATOMIC_ARRAY_DO_TRANSACTION
  ------------------
  |  |   55|  4.54k|#define G_ATOMIC_ARRAY_DO_TRANSACTION(_array, _type, _C_) G_STMT_START {	\
  |  |  ------------------
  |  |  |  |  985|  4.54k|#define G_STMT_START  do
  |  |  ------------------
  |  |   56|  4.54k|    gpointer *_datap  = &(_array)->data;				\
  |  |   57|  4.54k|    _type *transaction_data, *__check;						\
  |  |   58|  4.54k|										\
  |  |   59|  4.54k|    __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  4.54k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  4.54k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  4.54k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  4.54k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  4.54k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  4.54k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  4.54k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  4.54k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  4.54k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  4.54k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  4.54k|  }))
  |  |  ------------------
  |  |   60|  4.54k|    do {									\
  |  |   61|  4.54k|      transaction_data = __check;						\
  |  |   62|  45.4k|      {_C_;}									\
  |  |  ------------------
  |  |  |  Branch (62:8): [True: 4.54k, False: 2]
  |  |  |  Branch (62:8): [True: 4.54k, False: 0]
  |  |  |  Branch (62:8): [True: 4.54k, False: 0]
  |  |  |  Branch (62:8): [True: 4.54k, False: 1]
  |  |  |  Branch (62:8): [True: 4.54k, False: 0]
  |  |  ------------------
  |  |   63|  4.54k|      __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  4.54k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  4.54k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  4.54k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  4.54k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  4.54k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  4.54k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  4.54k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  4.54k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  4.54k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  4.54k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  4.54k|  }))
  |  |  ------------------
  |  |   64|  4.54k|    } while (transaction_data != __check);					\
  |  |  ------------------
  |  |  |  Branch (64:14): [True: 0, False: 4.54k]
  |  |  ------------------
  |  |   65|  4.56k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  4.56k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4.54k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  567|  4.54k|    (&iface_node->_prot.offsets, guint8,
  568|       |
  569|  4.54k|     entry = NULL;
  570|  4.54k|     offsets = transaction_data;
  571|  4.54k|     offset_index = entries->offset_index;
  572|  4.54k|     if (offsets != NULL &&
  573|  4.54k|	 offset_index < G_ATOMIC_ARRAY_DATA_SIZE(offsets))
  574|  4.54k|       {
  575|  4.54k|	 index = offsets[offset_index];
  576|  4.54k|	 if (index > 0)
  577|  4.54k|	   {
  578|       |	     /* zero means unset, subtract one to get real index */
  579|  4.54k|	     index -= 1;
  580|       |
  581|  4.54k|	     if (index < IFACE_ENTRIES_N_ENTRIES (entries))
  582|  4.54k|	       {
  583|  4.54k|		 check = (IFaceEntry *)&entries->entry[index];
  584|  4.54k|		 if (check->iface_type == NODE_TYPE (iface_node))
  585|  4.54k|		   entry = check;
  586|  4.54k|	       }
  587|  4.54k|	   }
  588|  4.54k|       }
  589|  4.54k|     );
  590|       |
  591|  4.54k| return entry;
  592|  4.56k|}
gtype.c:type_iface_peek_holder_L:
 1735|     10|{
 1736|     10|  IFaceHolder *iholder;
 1737|       |  
 1738|     10|  g_assert (NODE_IS_IFACE (iface));
  ------------------
  |  |  275|     10|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     10|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     10|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     10|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     10|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     10| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     10|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     10|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     10|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 10, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     10|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     10|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     10|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     10|   else                                         \
  |  |  |  |  |  |  |  | 1240|     10|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     10|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     10|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     10|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     10|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 10, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     10|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     10|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     10|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 10]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1739|       |  
 1740|     10|  iholder = iface_node_get_holders_L (iface);
  ------------------
  |  |  238|     10|#define	iface_node_get_holders_L(node)		((IFaceHolder*) type_get_qdata_L ((node), static_quark_iface_holder))
  ------------------
 1741|     14|  while (iholder && iholder->instance_type != instance_type)
  ------------------
  |  Branch (1741:10): [True: 10, False: 4]
  |  Branch (1741:21): [True: 4, False: 6]
  ------------------
 1742|      4|    iholder = iholder->next;
 1743|     10|  return iholder;
 1744|     10|}
gtype.c:find_conforming_child_type_L:
  960|      4|{
  961|      4|  TypeNode *node = NULL;
  962|      4|  guint i;
  963|       |  
  964|      4|  if (type_lookup_iface_entry_L (pnode, iface))
  ------------------
  |  Branch (964:7): [True: 0, False: 4]
  ------------------
  965|      0|    return pnode;
  966|       |  
  967|      4|  for (i = 0; i < pnode->n_children && !node; i++)
  ------------------
  |  Branch (967:15): [True: 0, False: 4]
  |  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|      4|  return node;
  971|      4|}
gtype.c:check_interface_info_I:
 1056|      4|{
 1057|      4|  if ((info->interface_finalize || info->interface_data) && !info->interface_init)
  ------------------
  |  Branch (1057:8): [True: 0, False: 4]
  |  Branch (1057:36): [True: 0, False: 4]
  |  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|      4|  return TRUE;
  ------------------
  |  |  929|      4|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      4|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1066|      4|}
gtype.c:type_add_interface_Wm:
 1454|      4|{
 1455|      4|  IFaceHolder *iholder = g_new0 (IFaceHolder, 1);
  ------------------
  |  |  332|      4|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|      4|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|      4|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|      4|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|      4|	  gpointer __p;						\
  |  |  |  |  264|      4|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 4]
  |  |  |  |  ------------------
  |  |  |  |  265|      4|	    __p = g_##func (__n);				\
  |  |  |  |  266|      4|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|      4|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|      4|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      4|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 4]
  |  |  |  |  |  Branch (267:26): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|      4|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|      4|	  else							\
  |  |  |  |  270|      4|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|      4|	  __p;							\
  |  |  |  |  272|      4|	}))
  |  |  ------------------
  ------------------
 1456|      4|  IFaceEntry *entry;
 1457|      4|  guint i;
 1458|       |
 1459|      4|  g_assert (node->is_instantiatable && NODE_IS_IFACE (iface) && ((info && !plugin) || (!info && plugin)));
  ------------------
  |  |  275|      4|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      4|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     32|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      4|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      4|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1460|       |  
 1461|      4|  iholder->next = iface_node_get_holders_L (iface);
  ------------------
  |  |  238|      4|#define	iface_node_get_holders_L(node)		((IFaceHolder*) type_get_qdata_L ((node), static_quark_iface_holder))
  ------------------
 1462|      4|  iface_node_set_holders_W (iface, iholder);
  ------------------
  |  |  239|      4|#define	iface_node_set_holders_W(node, holders)	(type_set_qdata_W ((node), static_quark_iface_holder, (holders)))
  ------------------
 1463|      4|  iholder->instance_type = NODE_TYPE (node);
  ------------------
  |  |  227|      4|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 1464|      4|  iholder->info = info ? g_memdup2 (info, sizeof (*info)) : NULL;
  ------------------
  |  Branch (1464:19): [True: 4, False: 0]
  ------------------
 1465|      4|  iholder->plugin = plugin;
 1466|       |
 1467|       |  /* create an iface entry for this type */
 1468|      4|  type_node_add_iface_entry_W (node, NODE_TYPE (iface), NULL);
  ------------------
  |  |  227|      4|#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|      4|  if (node->data)
  ------------------
  |  Branch (1473:7): [True: 4, False: 0]
  ------------------
 1474|      4|    {
 1475|      4|      InitState class_state = g_atomic_int_get (&node->data->class.init_state);
  ------------------
  |  |  110|      4|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  111|      4|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|      4|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  112|      4|    gint gaig_temp;                                                          \
  |  |  113|      4|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  ------------------
  |  |  |  Branch (113:13): [Folded, False: 4]
  |  |  ------------------
  |  |  114|      4|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  115|      4|    (gint) gaig_temp;                                                        \
  |  |  116|      4|  }))
  ------------------
 1476|       |      
 1477|      4|      if (class_state >= BASE_IFACE_INIT)
  ------------------
  |  Branch (1477:11): [True: 0, False: 4]
  ------------------
 1478|      0|        type_iface_vtable_base_init_Wm (iface, node);
 1479|       |      
 1480|      4|      if (class_state >= IFACE_INIT)
  ------------------
  |  Branch (1480:11): [True: 0, False: 4]
  ------------------
 1481|      0|        type_iface_vtable_iface_init_Wm (iface, node);
 1482|      4|    }
 1483|       |  
 1484|       |  /* create iface entries for children of this type */
 1485|      4|  entry = type_lookup_iface_entry_L (node, iface);
 1486|      4|  for (i = 0; i < node->n_children; i++)
  ------------------
  |  Branch (1486:15): [True: 0, False: 4]
  ------------------
 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|      4|}
gtype.c:type_node_add_iface_entry_W:
 1354|      4|{
 1355|      4|  IFaceEntries *entries;
 1356|      4|  IFaceEntry *entry;
 1357|      4|  TypeNode *iface_node;
 1358|      4|  guint i, j;
 1359|      4|  guint num_entries;
 1360|       |
 1361|      4|  g_assert (node->is_instantiatable);
  ------------------
  |  |  275|      4|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      4|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      4|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      4|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1362|       |
 1363|      4|  entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node);
  ------------------
  |  |  235|      4|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|      4|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
 1364|      4|  if (entries != NULL)
  ------------------
  |  Branch (1364:7): [True: 1, False: 3]
  ------------------
 1365|      1|    {
 1366|      1|      num_entries = IFACE_ENTRIES_N_ENTRIES (entries);
  ------------------
  |  |  269|      1|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      1|#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|      1|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
 1367|       |
 1368|      1|      g_assert (num_entries < MAX_N_INTERFACES);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1369|       |
 1370|      2|      for (i = 0; i < num_entries; i++)
  ------------------
  |  Branch (1370:19): [True: 1, False: 1]
  ------------------
 1371|      1|	{
 1372|      1|	  entry = &entries->entry[i];
 1373|      1|	  if (entry->iface_type == iface_type)
  ------------------
  |  Branch (1373:8): [True: 0, False: 1]
  ------------------
 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|      1|	}
 1394|      1|    }
 1395|       |
 1396|      4|  entries = _g_atomic_array_copy (CLASSED_NODE_IFACES_ENTRIES (node),
  ------------------
  |  |  234|      4|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
 1397|      4|				  IFACE_ENTRIES_HEADER_SIZE,
  ------------------
  |  |  268|      4|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  ------------------
 1398|      4|				  sizeof (IFaceEntry));
 1399|      4|  num_entries = 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))
  |  |  ------------------
  ------------------
 1400|      4|  i = num_entries - 1;
 1401|      4|  if (i == 0)
  ------------------
  |  Branch (1401:7): [True: 3, False: 1]
  ------------------
 1402|      3|    entries->offset_index = 0;
 1403|      4|  entries->entry[i].iface_type = iface_type;
 1404|      4|  entries->entry[i].vtable = NULL;
 1405|      4|  entries->entry[i].init_state = UNINITIALIZED;
 1406|       |
 1407|      4|  if (parent_entry)
  ------------------
  |  Branch (1407:7): [True: 0, False: 4]
  ------------------
 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|      4|  iface_node = lookup_type_node_I (iface_type);
 1418|       |
 1419|      4|  if (iface_node_has_available_offset_L (iface_node,
  ------------------
  |  Branch (1419:7): [True: 4, False: 0]
  ------------------
 1420|      4|					 entries->offset_index,
 1421|      4|					 i))
 1422|      4|    {
 1423|      4|      iface_node_set_offset_L (iface_node,
 1424|      4|			       entries->offset_index, i);
 1425|      4|    }
 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|      4|  _g_atomic_array_update (CLASSED_NODE_IFACES_ENTRIES (node), entries);
  ------------------
  |  |  234|      4|#define	CLASSED_NODE_IFACES_ENTRIES(node)	(&(node)->_prot.iface_entries)
  ------------------
 1441|       |
 1442|      4|  if (parent_entry)
  ------------------
  |  Branch (1442:7): [True: 0, False: 4]
  ------------------
 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|      4|}
gtype.c:iface_node_has_available_offset_L:
 1270|      4|{
 1271|      4|  guint8 *offsets;
 1272|       |
 1273|      4|  offsets = G_ATOMIC_ARRAY_GET_LOCKED (&iface_node->_prot.offsets, guint8);
  ------------------
  |  |   53|      4|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  ------------------
 1274|      4|  if (offsets == NULL)
  ------------------
  |  Branch (1274:7): [True: 4, False: 0]
  ------------------
 1275|      4|    return TRUE;
  ------------------
  |  |  929|      4|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      4|#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|      4|{
 1322|      4|  guint8 *offsets, *old_offsets;
 1323|      4|  gsize new_size, old_size;
 1324|      4|  gsize i;
 1325|       |
 1326|      4|  old_offsets = G_ATOMIC_ARRAY_GET_LOCKED (&iface_node->_prot.offsets, guint8);
  ------------------
  |  |   53|      4|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  ------------------
 1327|      4|  if (old_offsets == NULL)
  ------------------
  |  Branch (1327:7): [True: 4, False: 0]
  ------------------
 1328|      4|    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|      4|  new_size = MAX (old_size, offset + 1);
  ------------------
  |  |  933|      4|#define MAX(a, b)  (((a) > (b)) ? (a) : (b))
  |  |  ------------------
  |  |  |  Branch (933:21): [True: 0, False: 4]
  |  |  ------------------
  ------------------
 1337|       |
 1338|      4|  offsets = _g_atomic_array_copy (&iface_node->_prot.offsets,
 1339|      4|				  0, new_size - old_size);
 1340|       |
 1341|       |  /* Mark new area as unused */
 1342|      8|  for (i = old_size; i < new_size; i++)
  ------------------
  |  Branch (1342:22): [True: 4, False: 4]
  ------------------
 1343|      4|    offsets[i] = 0;
 1344|       |
 1345|      4|  offsets[offset] = index + 1;
 1346|       |
 1347|      4|  _g_atomic_array_update (&iface_node->_prot.offsets, offsets);
 1348|      4|}
gtype.c:type_iface_vtable_base_init_Wm:
 2078|      7|{
 2079|      7|  IFaceEntry *entry;
 2080|      7|  IFaceHolder *iholder;
 2081|      7|  GTypeInterface *vtable = NULL;
 2082|      7|  TypeNode *pnode;
 2083|       |  
 2084|       |  /* type_iface_retrieve_holder_info_Wm() doesn't modify write lock for returning NULL */
 2085|      7|  iholder = type_iface_retrieve_holder_info_Wm (iface, NODE_TYPE (node), TRUE);
  ------------------
  |  |  227|      7|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
                iholder = type_iface_retrieve_holder_info_Wm (iface, NODE_TYPE (node), TRUE);
  ------------------
  |  |  929|      7|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      7|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2086|      7|  if (!iholder)
  ------------------
  |  Branch (2086:7): [True: 4, False: 3]
  ------------------
 2087|      4|    return FALSE;	/* we don't modify write lock upon FALSE */
  ------------------
  |  |  925|      4|#define	FALSE	(0)
  ------------------
 2088|       |
 2089|      3|  type_iface_ensure_dflt_vtable_Wm (iface);
 2090|       |
 2091|      3|  entry = type_lookup_iface_entry_L (node, iface);
 2092|       |
 2093|      3|  g_assert (iface->data && entry && entry->vtable == NULL && iholder && iholder->info);
  ------------------
  |  |  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|     27|   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: 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2094|       |  
 2095|      3|  entry->init_state = IFACE_INIT;
 2096|       |
 2097|      3|  pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|      3|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 2098|      3|  if (pnode)	/* want to copy over parent iface contents */
  ------------------
  |  Branch (2098:7): [True: 3, False: 0]
  ------------------
 2099|      3|    {
 2100|      3|      IFaceEntry *pentry = type_lookup_iface_entry_L (pnode, iface);
 2101|       |      
 2102|      3|      if (pentry)
  ------------------
  |  Branch (2102:11): [True: 0, False: 3]
  ------------------
 2103|      0|	vtable = g_memdup2 (pentry->vtable, iface->data->iface.vtable_size);
 2104|      3|    }
 2105|      3|  if (!vtable)
  ------------------
  |  Branch (2105:7): [True: 3, False: 0]
  ------------------
 2106|      3|    vtable = g_memdup2 (iface->data->iface.dflt_vtable, iface->data->iface.vtable_size);
 2107|      3|  entry->vtable = vtable;
 2108|      3|  vtable->g_type = NODE_TYPE (iface);
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2109|      3|  vtable->g_instance_type = NODE_TYPE (node);
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2110|       |  
 2111|      3|  if (iface->data->iface.vtable_init_base)
  ------------------
  |  Branch (2111:7): [True: 0, False: 3]
  ------------------
 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|      3|  return TRUE;	/* initialized the vtable */
  ------------------
  |  |  929|      3|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      3|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 2118|      3|}
gtype.c:type_iface_retrieve_holder_info_Wm:
 1750|      7|{
 1751|      7|  IFaceHolder *iholder = type_iface_peek_holder_L (iface, instance_type);
 1752|       |  
 1753|      7|  if (iholder && !iholder->info && need_info)
  ------------------
  |  Branch (1753:7): [True: 3, False: 4]
  |  Branch (1753:18): [True: 0, False: 3]
  |  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|      7|  return iholder;	/* we don't modify write lock upon returning NULL */
 1777|      7|}
gtype.c:type_iface_vtable_iface_init_Wm:
 2129|      3|{
 2130|      3|  IFaceEntry *entry = type_lookup_iface_entry_L (node, iface);
 2131|      3|  IFaceHolder *iholder = type_iface_peek_holder_L (iface, NODE_TYPE (node));
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2132|      3|  GTypeInterface *vtable = NULL;
 2133|      3|  guint i;
 2134|       |  
 2135|       |  /* iholder->info should have been filled in by type_iface_vtable_base_init_Wm() */
 2136|      3|  g_assert (iface->data && entry && iholder && iholder->info);
  ------------------
  |  |  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|     21|   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]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2137|      3|  g_assert (entry->init_state == IFACE_INIT); /* assert prior base_init() */
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2138|       |  
 2139|      3|  entry->init_state = INITIALIZED;
 2140|       |      
 2141|      3|  vtable = entry->vtable;
 2142|       |
 2143|      3|  if (iholder->info->interface_init)
  ------------------
  |  Branch (2143:7): [True: 3, False: 0]
  ------------------
 2144|      3|    {
 2145|      3|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      3|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2146|      3|      if (iholder->info->interface_init)
  ------------------
  |  Branch (2146:11): [True: 3, False: 0]
  ------------------
 2147|      3|	iholder->info->interface_init (vtable, iholder->info->interface_data);
 2148|      3|      G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      3|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2149|      3|    }
 2150|       |  
 2151|      6|  for (i = 0; i < static_n_iface_check_funcs; i++)
  ------------------
  |  Branch (2151:15): [True: 3, False: 3]
  ------------------
 2152|      3|    {
 2153|      3|      GTypeInterfaceCheckFunc check_func = static_iface_check_funcs[i].check_func;
 2154|      3|      gpointer check_data = static_iface_check_funcs[i].check_data;
 2155|       |
 2156|      3|      G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      3|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2157|      3|      check_func (check_data, (gpointer)vtable);
 2158|      3|      G_WRITE_LOCK (&type_rw_lock);      
  ------------------
  |  |   85|      3|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2159|      3|    }
 2160|      3|}
gtype.c:type_data_ref_U:
 1253|    285|{
 1254|    285|  guint current;
 1255|       |
 1256|    285|  do {
 1257|    285|    current = NODE_REFCOUNT (node);
  ------------------
  |  |  231|    285|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    285|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    285|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    285|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    285|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    285|    gint gaig_temp;                                                          \
  |  |  |  |  113|    285|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 285]
  |  |  |  |  ------------------
  |  |  |  |  114|    285|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    285|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    285|  }))
  |  |  ------------------
  ------------------
 1258|       |
 1259|    285|    if (current < 1)
  ------------------
  |  Branch (1259:9): [True: 0, False: 285]
  ------------------
 1260|      0|      return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 1261|    285|  } while (!g_atomic_int_compare_and_exchange ((int *) &node->ref_count, current, current + 1));
  ------------------
  |  |  185|    285|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    285|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|    285|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|    285|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    285|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|    285|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 285]
  |  |  ------------------
  |  |  189|    285|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|    285|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|    285|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    285|#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: 285, False: 0]
  |  |  ------------------
  |  |  190|    285|  }))
  ------------------
  |  Branch (1261:12): [True: 0, False: 285]
  ------------------
 1262|       |
 1263|    285|  return TRUE;
  ------------------
  |  |  929|    285|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    285|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 1264|    285|}
gtype.c:type_class_init_Wm:
 2200|     49|{
 2201|     49|  GSList *slist, *init_slist = NULL;
 2202|     49|  GTypeClass *class;
 2203|     49|  IFaceEntries *entries;
 2204|     49|  IFaceEntry *entry;
 2205|     49|  TypeNode *bnode, *pnode;
 2206|     49|  guint i;
 2207|       |  
 2208|       |  /* Accessing data->class will work for instantiatable types
 2209|       |   * too because ClassData is a subset of InstanceData
 2210|       |   */
 2211|     49|  g_assert (node->is_classed && node->data &&
  ------------------
  |  |  275|     49|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     49|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|     49|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|     49|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     49|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     49| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     49|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    539|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [Folded, False: 49]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 49, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     49|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     49|   else                                         \
  |  |  |  |  |  |  |  | 1240|     49|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     49|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     49|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     49|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     49|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 49, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|     49|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|     49|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     49|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 49]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2212|     49|	    node->data->class.class_size &&
 2213|     49|	    !node->data->class.class &&
 2214|     49|	    g_atomic_int_get (&node->data->class.init_state) == UNINITIALIZED);
 2215|     49|  if (node->data->class.class_private_size)
  ------------------
  |  Branch (2215:7): [True: 3, False: 46]
  ------------------
 2216|      3|    class = g_malloc0 (ALIGN_STRUCT (node->data->class.class_size) + node->data->class.class_private_size);
  ------------------
  |  |  130|      3|      ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      3|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  |  |                     ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
  |  |  ------------------
  |  |  |  |  128|      3|#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
  |  |  ------------------
  ------------------
 2217|     46|  else
 2218|     46|    class = g_malloc0 (node->data->class.class_size);
 2219|     49|  node->data->class.class = class;
 2220|     49|  g_atomic_int_set (&node->data->class.init_state, BASE_CLASS_INIT);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2221|       |  
 2222|     49|  if (pclass)
  ------------------
  |  Branch (2222:7): [True: 46, False: 3]
  ------------------
 2223|     46|    {
 2224|     46|      pnode = lookup_type_node_I (pclass->g_type);
 2225|       |
 2226|     46|      memcpy (class, pclass, pnode->data->class.class_size);
 2227|     46|      memcpy (G_STRUCT_MEMBER_P (class, ALIGN_STRUCT (node->data->class.class_size)), G_STRUCT_MEMBER_P (pclass, ALIGN_STRUCT (pnode->data->class.class_size)), pnode->data->class.class_private_size);
  ------------------
  |  |  971|     46|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
                    memcpy (G_STRUCT_MEMBER_P (class, ALIGN_STRUCT (node->data->class.class_size)), G_STRUCT_MEMBER_P (pclass, ALIGN_STRUCT (pnode->data->class.class_size)), pnode->data->class.class_private_size);
  ------------------
  |  |  971|     46|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2228|       |
 2229|     46|      if (node->is_instantiatable)
  ------------------
  |  Branch (2229:11): [True: 46, False: 0]
  ------------------
 2230|     46|	{
 2231|       |	  /* We need to initialize the private_size here rather than in
 2232|       |	   * type_data_make_W() since the class init for the parent
 2233|       |	   * class may have changed pnode->data->instance.private_size.
 2234|       |	   */
 2235|     46|	  node->data->instance.private_size = pnode->data->instance.private_size;
 2236|     46|	}
 2237|     46|    }
 2238|     49|  class->g_type = NODE_TYPE (node);
  ------------------
  |  |  227|     49|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2239|       |  
 2240|     49|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     49|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2241|       |  
 2242|       |  /* stack all base class initialization functions, so we
 2243|       |   * call them in ascending order.
 2244|       |   */
 2245|    148|  for (bnode = node; bnode; bnode = lookup_type_node_I (NODE_PARENT_TYPE (bnode)))
  ------------------
  |  |  228|     99|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
  |  Branch (2245:22): [True: 99, False: 49]
  ------------------
 2246|     99|    if (bnode->data->class.class_init_base)
  ------------------
  |  Branch (2246:9): [True: 49, False: 50]
  ------------------
 2247|     49|      init_slist = g_slist_prepend (init_slist, (gpointer) bnode->data->class.class_init_base);
 2248|     98|  for (slist = init_slist; slist; slist = slist->next)
  ------------------
  |  Branch (2248:28): [True: 49, False: 49]
  ------------------
 2249|     49|    {
 2250|     49|      GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data;
 2251|       |      
 2252|     49|      class_init_base (class);
 2253|     49|    }
 2254|     49|  g_slist_free (init_slist);
 2255|       |  
 2256|     49|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     49|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2257|       |
 2258|     49|  g_atomic_int_set (&node->data->class.init_state, BASE_IFACE_INIT);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2259|       |  
 2260|       |  /* Before we initialize the class, base initialize all interfaces, either
 2261|       |   * from parent, or through our holder info
 2262|       |   */
 2263|     49|  pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
  ------------------
  |  |  228|     49|#define NODE_PARENT_TYPE(node)			(node->supers[1])
  ------------------
 2264|       |
 2265|     49|  i = 0;
 2266|     56|  while ((entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node)) != NULL &&
  ------------------
  |  |  235|     56|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|     56|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
  |  Branch (2266:10): [True: 13, False: 43]
  ------------------
 2267|     13|	  i < IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|     13|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|     13|#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|     13|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2267:4): [True: 7, False: 6]
  ------------------
 2268|      7|    {
 2269|      7|      entry = &entries->entry[i];
 2270|      7|      while (i < IFACE_ENTRIES_N_ENTRIES (entries) &&
  ------------------
  |  |  269|     14|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      7|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      7|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2270:14): [True: 7, False: 0]
  ------------------
 2271|      7|	     entry->init_state == IFACE_INIT)
  ------------------
  |  Branch (2271:7): [True: 0, False: 7]
  ------------------
 2272|      0|	{
 2273|      0|	  entry++;
 2274|      0|	  i++;
 2275|      0|	}
 2276|       |
 2277|      7|      if (i == IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|      7|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      7|#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
  |  |  ------------------
  |  |               #define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |  268|      7|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2277:11): [True: 0, False: 7]
  ------------------
 2278|      0|	break;
 2279|       |
 2280|      7|      if (!type_iface_vtable_base_init_Wm (lookup_type_node_I (entry->iface_type), node))
  ------------------
  |  Branch (2280:11): [True: 4, False: 3]
  ------------------
 2281|      4|	{
 2282|      4|	  guint j;
 2283|      4|	  IFaceEntries *pentries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (pnode);
  ------------------
  |  |  235|      4|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|      4|#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|      4|	  g_assert (pnode != NULL);
  ------------------
  |  |  275|      4|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      4|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      4|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      4|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2289|       |
 2290|      4|	  if (pentries)
  ------------------
  |  Branch (2290:8): [True: 4, False: 0]
  ------------------
 2291|      4|	    for (j = 0; j < IFACE_ENTRIES_N_ENTRIES (pentries); j++)
  ------------------
  |  |  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 (2291:18): [True: 4, False: 0]
  ------------------
 2292|      4|	      {
 2293|      4|		IFaceEntry *pentry = &pentries->entry[j];
 2294|       |
 2295|      4|		if (pentry->iface_type == entry->iface_type)
  ------------------
  |  Branch (2295:7): [True: 4, False: 0]
  ------------------
 2296|      4|		  {
 2297|      4|		    entry->vtable = pentry->vtable;
 2298|      4|		    entry->init_state = INITIALIZED;
 2299|      4|		    break;
 2300|      4|		  }
 2301|      4|	      }
 2302|      4|	  g_assert (entry->vtable != NULL);
  ------------------
  |  |  275|      4|#define g_assert(expr)                  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  276|      4|                                             if G_LIKELY (expr) ; else \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:25): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  277|      4|                                               g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  278|      0|                                                                         #expr); \
  |  |  279|      4|                                        } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2303|      4|	}
 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|      7|      i++;
 2312|      7|    }
 2313|       |  
 2314|     49|  g_atomic_int_set (&node->data->class.init_state, CLASS_INIT);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2315|       |  
 2316|     49|  G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|     49|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2317|       |
 2318|     49|  if (node->data->class.class_init)
  ------------------
  |  Branch (2318:7): [True: 49, False: 0]
  ------------------
 2319|     49|    node->data->class.class_init (class, (gpointer) node->data->class.class_data);
 2320|       |  
 2321|     49|  G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|     49|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2322|       |  
 2323|     49|  g_atomic_int_set (&node->data->class.init_state, IFACE_INIT);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2324|       |  
 2325|       |  /* finish initializing the interfaces through our holder info.
 2326|       |   * inherited interfaces are already init_state == INITIALIZED, because
 2327|       |   * they either got setup in the above base_init loop, or during
 2328|       |   * class_init from within type_add_interface_Wm() for this or
 2329|       |   * an ancestor type.
 2330|       |   */
 2331|     49|  i = 0;
 2332|     52|  while ((entries = CLASSED_NODE_IFACES_ENTRIES_LOCKED (node)) != NULL)
  ------------------
  |  |  235|     52|#define	CLASSED_NODE_IFACES_ENTRIES_LOCKED(node)(G_ATOMIC_ARRAY_GET_LOCKED(CLASSED_NODE_IFACES_ENTRIES((node)), IFaceEntries))
  |  |  ------------------
  |  |  |  |   53|     52|#define  G_ATOMIC_ARRAY_GET_LOCKED(_array, _type) ((_type *)((_array)->data))
  |  |  ------------------
  ------------------
  |  Branch (2332:10): [True: 9, False: 43]
  ------------------
 2333|      9|    {
 2334|      9|      entry = &entries->entry[i];
 2335|     13|      while (i < IFACE_ENTRIES_N_ENTRIES (entries) &&
  ------------------
  |  |  269|     26|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|     13|#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|     13|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2335:14): [True: 7, False: 6]
  ------------------
 2336|      7|	     entry->init_state == INITIALIZED)
  ------------------
  |  Branch (2336:7): [True: 4, False: 3]
  ------------------
 2337|      4|	{
 2338|      4|	  entry++;
 2339|      4|	  i++;
 2340|      4|	}
 2341|       |
 2342|      9|      if (i == IFACE_ENTRIES_N_ENTRIES (entries))
  ------------------
  |  |  269|      9|#define IFACE_ENTRIES_N_ENTRIES(_entries) ( (G_ATOMIC_ARRAY_DATA_SIZE((_entries)) - IFACE_ENTRIES_HEADER_SIZE) / sizeof(IFaceEntry) )
  |  |  ------------------
  |  |  |  |   39|      9|#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|      9|#define IFACE_ENTRIES_HEADER_SIZE (sizeof(IFaceEntries) - sizeof(IFaceEntry))
  |  |  ------------------
  ------------------
  |  Branch (2342:11): [True: 6, False: 3]
  ------------------
 2343|      6|	break;
 2344|       |
 2345|      3|      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|      3|      i++;
 2352|      3|    }
 2353|       |  
 2354|       |  g_atomic_int_set (&node->data->class.init_state, INITIALIZED);
  ------------------
  |  |  118|     49|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|     49|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  119|     49|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|     49|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  120|     49|    gint gais_temp = (gint) (newval);                                        \
  |  |  121|     49|    (void) (0 ? *(atomic) ^ (newval) : 1);                                   \
  |  |  ------------------
  |  |  |  Branch (121:13): [Folded, False: 49]
  |  |  ------------------
  |  |  122|     49|    __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST);         \
  |  |  123|     49|  }))
  ------------------
 2355|     49|}
gtype.c:type_data_unref_U:
 2509|    284|{
 2510|    284|  guint current;
 2511|       |
 2512|    284|  do {
 2513|    284|    current = NODE_REFCOUNT (node);
  ------------------
  |  |  231|    284|#define NODE_REFCOUNT(node)                     ((guint) g_atomic_int_get ((int *) &(node)->ref_count))
  |  |  ------------------
  |  |  |  |  110|    284|  (G_GNUC_EXTENSION ({                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    284|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  111|    284|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|    284|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  112|    284|    gint gaig_temp;                                                          \
  |  |  |  |  113|    284|    (void) (0 ? *(atomic) ^ *(atomic) : 1);                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (113:13): [Folded, False: 284]
  |  |  |  |  ------------------
  |  |  |  |  114|    284|    __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST);          \
  |  |  |  |  115|    284|    (gint) gaig_temp;                                                        \
  |  |  |  |  116|    284|  }))
  |  |  ------------------
  ------------------
 2514|       |
 2515|    284|    if (current <= 1)
  ------------------
  |  Branch (2515:9): [True: 0, False: 284]
  ------------------
 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|    284|  } while (!g_atomic_int_compare_and_exchange ((int *) &node->ref_count, current, current - 1));
  ------------------
  |  |  185|    284|  (G_GNUC_EXTENSION ({                                                       \
  |  |  ------------------
  |  |  |  |   62|    284|#define G_GNUC_EXTENSION __extension__
  |  |  ------------------
  |  |  186|    284|    gint gaicae_oldval = (oldval);                                           \
  |  |  187|    284|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint));                     \
  |  |  ------------------
  |  |  |  |  871|    284|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  ------------------
  |  |  188|    284|    (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1);                        \
  |  |  ------------------
  |  |  |  Branch (188:13): [Folded, False: 284]
  |  |  ------------------
  |  |  189|    284|    __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  925|    284|#define	FALSE	(0)
  |  |  ------------------
  |  |                   __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
  |  |  ------------------
  |  |  |  |  929|    284|#define	TRUE	(!FALSE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|    284|#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: 284, False: 0]
  |  |  ------------------
  |  |  190|    284|  }))
  ------------------
  |  Branch (2541:12): [True: 0, False: 284]
  ------------------
 2542|    284|}
gtype.c:type_lookup_iface_vtable_I:
  610|  4.54k|{
  611|  4.54k|  IFaceEntry *entry;
  612|  4.54k|  gboolean res;
  613|       |
  614|  4.54k|  if (!NODE_IS_IFACE (iface_node))
  ------------------
  |  |  233|  4.54k|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|  4.54k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|  4.54k|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|  4.54k|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|  4.54k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (614:7): [True: 0, False: 4.54k]
  ------------------
  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|  4.54k|  G_ATOMIC_ARRAY_DO_TRANSACTION
  ------------------
  |  |   55|  4.54k|#define G_ATOMIC_ARRAY_DO_TRANSACTION(_array, _type, _C_) G_STMT_START {	\
  |  |  ------------------
  |  |  |  |  985|  4.54k|#define G_STMT_START  do
  |  |  ------------------
  |  |   56|  4.54k|    gpointer *_datap  = &(_array)->data;				\
  |  |   57|  4.54k|    _type *transaction_data, *__check;						\
  |  |   58|  4.54k|										\
  |  |   59|  4.54k|    __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  4.54k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  4.54k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  4.54k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  4.54k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  4.54k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  4.54k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  4.54k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  4.54k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  4.54k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  4.54k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  4.54k|  }))
  |  |  ------------------
  |  |   60|  4.54k|    do {									\
  |  |   61|  4.54k|      transaction_data = __check;						\
  |  |   62|  10.6k|      {_C_;}									\
  |  |  ------------------
  |  |  |  Branch (62:8): [True: 2.03k, False: 0]
  |  |  |  Branch (62:8): [True: 2.03k, False: 2.50k]
  |  |  ------------------
  |  |   63|  4.54k|      __check = g_atomic_pointer_get (_datap);					\
  |  |  ------------------
  |  |  |  |  127|  4.54k|  (G_GNUC_EXTENSION ({                                                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  4.54k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  128|  4.54k|    G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer));               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  871|  4.54k|#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
  |  |  |  |  ------------------
  |  |  |  |  129|  4.54k|    glib_typeof (*(atomic)) gapg_temp_newval;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  4.54k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  130|  4.54k|    glib_typeof ((atomic)) gapg_temp_atomic = (atomic);                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  4.54k|#define glib_typeof(t) __typeof__ (t)
  |  |  |  |  ------------------
  |  |  |  |  131|  4.54k|    __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \
  |  |  |  |  132|  4.54k|    gapg_temp_newval;                                                      \
  |  |  |  |  133|  4.54k|  }))
  |  |  ------------------
  |  |   64|  4.54k|    } while (transaction_data != __check);					\
  |  |  ------------------
  |  |  |  Branch (64:14): [True: 0, False: 4.54k]
  |  |  ------------------
  |  |   65|  4.54k|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|  4.54k|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4.54k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  622|  4.54k|    (CLASSED_NODE_IFACES_ENTRIES (node), IFaceEntries,
  623|       |
  624|  4.54k|     entry = lookup_iface_entry_I (transaction_data, iface_node);
  625|  4.54k|     res = entry != NULL;
  626|  4.54k|     if (vtable_ptr)
  627|  4.54k|       {
  628|  4.54k|	 if (entry)
  629|  4.54k|	   *vtable_ptr = entry->vtable;
  630|  4.54k|	 else
  631|  4.54k|	   *vtable_ptr = NULL;
  632|  4.54k|       }
  633|  4.54k|     );
  634|       |
  635|  4.54k|  return res;
  636|  4.54k|}
gtype.c:type_iface_ensure_dflt_vtable_Wm:
 2044|      3|{
 2045|      3|  g_assert (iface->data);
  ------------------
  |  |  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]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2046|       |
 2047|      3|  if (!iface->data->iface.dflt_vtable)
  ------------------
  |  Branch (2047:7): [True: 3, False: 0]
  ------------------
 2048|      3|    {
 2049|      3|      GTypeInterface *vtable = g_malloc0 (iface->data->iface.vtable_size);
 2050|      3|      iface->data->iface.dflt_vtable = vtable;
 2051|      3|      vtable->g_type = NODE_TYPE (iface);
  ------------------
  |  |  227|      3|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
 2052|      3|      vtable->g_instance_type = 0;
 2053|      3|      if (iface->data->iface.vtable_init_base ||
  ------------------
  |  Branch (2053:11): [True: 0, False: 3]
  ------------------
 2054|      3|          iface->data->iface.dflt_init)
  ------------------
  |  Branch (2054:11): [True: 3, False: 0]
  ------------------
 2055|      3|        {
 2056|      3|          G_WRITE_UNLOCK (&type_rw_lock);
  ------------------
  |  |   86|      3|#define G_WRITE_UNLOCK(rw_lock) g_rw_lock_writer_unlock (rw_lock)
  ------------------
 2057|      3|          if (iface->data->iface.vtable_init_base)
  ------------------
  |  Branch (2057:15): [True: 0, False: 3]
  ------------------
 2058|      0|            iface->data->iface.vtable_init_base (vtable);
 2059|      3|          if (iface->data->iface.dflt_init)
  ------------------
  |  Branch (2059:15): [True: 3, False: 0]
  ------------------
 2060|      3|            iface->data->iface.dflt_init (vtable, (gpointer) iface->data->iface.dflt_data);
 2061|      3|          G_WRITE_LOCK (&type_rw_lock);
  ------------------
  |  |   85|      3|#define G_WRITE_LOCK(rw_lock)   g_rw_lock_writer_lock (rw_lock)
  ------------------
 2062|      3|        }
 2063|      3|    }
 2064|      3|}
gtype.c:type_node_is_a_L:
 3576|      4|{
 3577|      4|  return type_node_check_conformities_UorL (node, iface_node, TRUE, TRUE, TRUE);
  ------------------
  |  |  929|      4|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      4|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                return type_node_check_conformities_UorL (node, iface_node, TRUE, TRUE, TRUE);
  ------------------
  |  |  929|      4|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      4|#define	FALSE	(0)
  |  |  ------------------
  ------------------
                return type_node_check_conformities_UorL (node, iface_node, TRUE, TRUE, TRUE);
  ------------------
  |  |  929|      4|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      4|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3578|      4|}
gtype.c:type_node_check_conformities_UorL:
 3537|  9.14k|{
 3538|  9.14k|  gboolean match;
 3539|       |
 3540|  9.14k|  if (/* support_inheritance && */
 3541|  9.14k|      NODE_IS_ANCESTOR (iface_node, node))
  ------------------
  |  |  245|  9.14k|        ((ancestor)->n_supers <= (node)->n_supers &&                                        \
  |  |  ------------------
  |  |  |  Branch (245:10): [True: 9.13k, False: 4]
  |  |  ------------------
  |  |  246|  9.14k|	 (node)->supers[(node)->n_supers - (ancestor)->n_supers] == NODE_TYPE (ancestor))
  |  |  ------------------
  |  |  |  |  227|  9.13k|#define NODE_TYPE(node)				(node->supers[0])
  |  |  ------------------
  |  |  |  Branch (246:3): [True: 6.62k, False: 2.51k]
  |  |  ------------------
  ------------------
 3542|  6.62k|    return TRUE;
  ------------------
  |  |  929|  6.62k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  6.62k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3543|       |
 3544|  2.52k|  support_interfaces = support_interfaces && node->is_instantiatable && NODE_IS_IFACE (iface_node);
  ------------------
  |  |  233|  5.03k|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|  2.51k|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|  2.51k|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|  2.51k|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|  2.51k|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 2.50k, False: 12]
  |  |  ------------------
  ------------------
  |  Branch (3544:24): [True: 2.52k, False: 0]
  |  Branch (3544:46): [True: 2.51k, False: 4]
  ------------------
 3545|  2.52k|  support_prerequisites = support_prerequisites && NODE_IS_IFACE (node);
  ------------------
  |  |  233|  2.54k|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|     20|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|     20|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|     20|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|     20|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 4, False: 16]
  |  |  ------------------
  ------------------
  |  Branch (3545:27): [True: 20, False: 2.50k]
  ------------------
 3546|  2.52k|  match = FALSE;
  ------------------
  |  |  925|  2.52k|#define	FALSE	(0)
  ------------------
 3547|  2.52k|  if (support_interfaces)
  ------------------
  |  Branch (3547:7): [True: 2.50k, False: 16]
  ------------------
 3548|  2.50k|    {
 3549|  2.50k|      if (have_lock)
  ------------------
  |  Branch (3549:11): [True: 0, False: 2.50k]
  ------------------
 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|  2.50k|      else
 3555|  2.50k|	{
 3556|  2.50k|	  if (type_lookup_iface_vtable_I (node, iface_node, NULL))
  ------------------
  |  Branch (3556:8): [True: 2.50k, False: 4]
  ------------------
 3557|  2.50k|	    match = TRUE;
  ------------------
  |  |  929|  2.50k|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|  2.50k|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3558|  2.50k|	}
 3559|  2.50k|    }
 3560|  2.52k|  if (!match &&
  ------------------
  |  Branch (3560:7): [True: 20, False: 2.50k]
  ------------------
 3561|     20|      support_prerequisites)
  ------------------
  |  Branch (3561:7): [True: 4, False: 16]
  ------------------
 3562|      4|    {
 3563|      4|      if (!have_lock)
  ------------------
  |  Branch (3563:11): [True: 4, False: 0]
  ------------------
 3564|      4|	G_READ_LOCK (&type_rw_lock);
  ------------------
  |  |   83|      4|#define G_READ_LOCK(rw_lock)    g_rw_lock_reader_lock (rw_lock)
  ------------------
 3565|      4|      if (support_prerequisites && type_lookup_prerequisite_L (node, NODE_TYPE (iface_node)))
  ------------------
  |  |  227|      4|#define NODE_TYPE(node)				(node->supers[0])
  ------------------
  |  Branch (3565:11): [True: 4, False: 0]
  |  Branch (3565:36): [True: 0, False: 4]
  ------------------
 3566|      0|	match = TRUE;
  ------------------
  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3567|      4|      if (!have_lock)
  ------------------
  |  Branch (3567:11): [True: 4, False: 0]
  ------------------
 3568|      4|	G_READ_UNLOCK (&type_rw_lock);
  ------------------
  |  |   84|      4|#define G_READ_UNLOCK(rw_lock)  g_rw_lock_reader_unlock (rw_lock)
  ------------------
 3569|      4|    }
 3570|  2.52k|  return match;
 3571|  9.14k|}
gtype.c:type_lookup_prerequisite_L:
  641|      4|{
  642|      4|  if (NODE_IS_IFACE (iface) && IFACE_NODE_N_PREREQUISITES (iface))
  ------------------
  |  |  233|      8|#define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |  229|      4|#define NODE_FUNDAMENTAL_TYPE(node)		(node->supers[node->n_supers])
  |  |  ------------------
  |  |               #define	NODE_IS_IFACE(node)			(NODE_FUNDAMENTAL_TYPE (node) == G_TYPE_INTERFACE)
  |  |  ------------------
  |  |  |  |   78|      4|#define G_TYPE_INTERFACE		G_TYPE_MAKE_FUNDAMENTAL (2)
  |  |  |  |  ------------------
  |  |  |  |  |  |  227|      4|#define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   48|      4|#define G_TYPE_FUNDAMENTAL_SHIFT        (2)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (233:31): [True: 4, False: 0]
  |  |  ------------------
  ------------------
                if (NODE_IS_IFACE (iface) && IFACE_NODE_N_PREREQUISITES (iface))
  ------------------
  |  |  236|      4|#define	IFACE_NODE_N_PREREQUISITES(node)	((node)->n_prerequisites)
  |  |  ------------------
  |  |  |  Branch (236:42): [True: 0, False: 4]
  |  |  ------------------
  ------------------
  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|      4|  return FALSE;
  ------------------
  |  |  925|      4|#define	FALSE	(0)
  ------------------
  667|      4|}
gtype.c:type_node_conforms_to_U:
 3585|  9.13k|{
 3586|  9.13k|  return type_node_check_conformities_UorL (node, iface_node, support_interfaces, support_prerequisites, FALSE);
  ------------------
  |  |  925|  9.13k|#define	FALSE	(0)
  ------------------
 3587|  9.13k|}
gtype.c:type_get_qdata_L:
 3732|    219|{
 3733|    219|  GData *gdata = node->global_gdata;
 3734|       |  
 3735|    219|  if (quark && gdata && gdata->n_qdatas)
  ------------------
  |  Branch (3735:7): [True: 219, False: 0]
  |  Branch (3735:16): [True: 117, False: 102]
  |  Branch (3735:25): [True: 117, False: 0]
  ------------------
 3736|    117|    {
 3737|    117|      QData *qdatas = gdata->qdatas - 1;
 3738|    117|      guint n_qdatas = gdata->n_qdatas;
 3739|       |      
 3740|    117|      do
 3741|    127|	{
 3742|    127|	  guint i;
 3743|    127|	  QData *check;
 3744|       |	  
 3745|    127|	  i = (n_qdatas + 1) / 2;
 3746|    127|	  check = qdatas + i;
 3747|    127|	  if (quark == check->quark)
  ------------------
  |  Branch (3747:8): [True: 105, False: 22]
  ------------------
 3748|    105|	    return check->data;
 3749|     22|	  else if (quark > check->quark)
  ------------------
  |  Branch (3749:13): [True: 22, False: 0]
  ------------------
 3750|     22|	    {
 3751|     22|	      n_qdatas -= i;
 3752|     22|	      qdatas = check;
 3753|     22|	    }
 3754|      0|	  else /* if (quark < check->quark) */
 3755|      0|	    n_qdatas = i - 1;
 3756|    127|	}
 3757|    117|      while (n_qdatas);
  ------------------
  |  Branch (3757:14): [True: 10, False: 12]
  ------------------
 3758|    117|    }
 3759|    114|  return NULL;
 3760|    219|}
gtype.c:type_set_qdata_W:
 3802|    106|{
 3803|    106|  GData *gdata;
 3804|    106|  QData *qdata;
 3805|    106|  guint i;
 3806|       |  
 3807|       |  /* setup qdata list if necessary */
 3808|    106|  if (!node->global_gdata)
  ------------------
  |  Branch (3808:7): [True: 102, False: 4]
  ------------------
 3809|    102|    node->global_gdata = g_new0 (GData, 1);
  ------------------
  |  |  332|    102|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|    102|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|    102|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|    102|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|    102|	  gpointer __p;						\
  |  |  |  |  264|    102|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 102]
  |  |  |  |  ------------------
  |  |  |  |  265|    102|	    __p = g_##func (__n);				\
  |  |  |  |  266|    102|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|    102|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|    102|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|    102|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 102]
  |  |  |  |  |  Branch (267:26): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|    102|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|    102|	  else							\
  |  |  |  |  270|    102|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|    102|	  __p;							\
  |  |  |  |  272|    102|	}))
  |  |  ------------------
  ------------------
 3810|    106|  gdata = node->global_gdata;
 3811|       |  
 3812|       |  /* try resetting old data */
 3813|    106|  qdata = gdata->qdatas;
 3814|    110|  for (i = 0; i < gdata->n_qdatas; i++)
  ------------------
  |  Branch (3814:15): [True: 4, False: 106]
  ------------------
 3815|      4|    if (qdata[i].quark == quark)
  ------------------
  |  Branch (3815:9): [True: 0, False: 4]
  ------------------
 3816|      0|      {
 3817|      0|	qdata[i].data = data;
 3818|      0|	return;
 3819|      0|      }
 3820|       |  
 3821|       |  /* add new entry */
 3822|    106|  gdata->n_qdatas++;
 3823|    106|  gdata->qdatas = g_renew (QData, gdata->qdatas, gdata->n_qdatas);
  ------------------
  |  |  346|    106|#define g_renew(struct_type, mem, n_structs)		_G_RENEW (struct_type, mem, n_structs, realloc)
  |  |  ------------------
  |  |  |  |  274|    106|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    106|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  275|    106|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  276|    106|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  277|    106|	  gpointer __p = (gpointer) (mem);			\
  |  |  |  |  278|    106|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (278:8): [True: 0, False: 106]
  |  |  |  |  ------------------
  |  |  |  |  279|    106|	    __p = g_##func (__p, __n);				\
  |  |  |  |  280|    106|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (280:13): [True: 0, False: 106]
  |  |  |  |  ------------------
  |  |  |  |  281|    106|	           (__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|    106|	    __p = g_##func (__p, __n * __s);			\
  |  |  |  |  283|    106|	  else							\
  |  |  |  |  284|    106|	    __p = g_##func##_n (__p, __n, __s);			\
  |  |  |  |  285|    106|	  __p;							\
  |  |  |  |  286|    106|	}))
  |  |  ------------------
  ------------------
 3824|    106|  qdata = gdata->qdatas;
 3825|    110|  for (i = 0; i < gdata->n_qdatas - 1; i++)
  ------------------
  |  Branch (3825:15): [True: 4, False: 106]
  ------------------
 3826|      4|    if (qdata[i].quark > quark)
  ------------------
  |  Branch (3826:9): [True: 0, False: 4]
  ------------------
 3827|      0|      break;
 3828|    106|  memmove (qdata + i + 1, qdata + i, sizeof (qdata[0]) * (gdata->n_qdatas - i - 1));
 3829|    106|  qdata[i].quark = quark;
 3830|    106|  qdata[i].data = data;
 3831|    106|}
gtype.c:type_add_flags_W:
 3864|    102|{
 3865|    102|  guint dflags;
 3866|       |  
 3867|    102|  g_return_if_fail ((flags & ~TYPE_FLAG_MASK) == 0);
  ------------------
  |  |  650|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    102|      { } \
  |  |  653|    102|    else \
  |  |  654|    102|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3868|    102|  g_return_if_fail (node != NULL);
  ------------------
  |  |  650|    102|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    102|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|    102|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    102|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    102|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    102| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    102|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    102|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    102|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 102, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    102|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    102|   else                                         \
  |  |  |  |  |  |  |  | 1240|    102|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    102|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    102|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    102|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    102|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 102, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|    102|      { } \
  |  |  653|    102|    else \
  |  |  654|    102|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  656|      0|                                  G_STRFUNC, \
  |  |  ------------------
  |  |  |  |  893|      0|#define G_STRFUNC     ((const char*) (__func__))
  |  |  ------------------
  |  |  657|      0|                                  #expr); \
  |  |  658|      0|        return; \
  |  |  659|      0|      } \
  |  |  660|    102|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    102|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 102]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3869|       |  
 3870|    102|  if ((flags & TYPE_FLAG_MASK) && node->is_classed && node->data && node->data->class.class)
  ------------------
  |  |  106|    102|#define	TYPE_FLAG_MASK		   (G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT | G_TYPE_FLAG_FINAL | G_TYPE_FLAG_DEPRECATED)
  ------------------
  |  Branch (3870:7): [True: 8, False: 94]
  |  Branch (3870:35): [True: 6, False: 2]
  |  Branch (3870:55): [True: 0, False: 6]
  |  Branch (3870:69): [True: 0, False: 0]
  ------------------
 3871|      0|    g_critical ("tagging type '%s' as abstract after class initialization", NODE_NAME (node));
  ------------------
  |  |  359|      0|#define g_critical(...) g_log (G_LOG_DOMAIN,         \
  |  |  360|      0|                               G_LOG_LEVEL_CRITICAL, \
  |  |  361|      0|                               __VA_ARGS__)
  ------------------
 3872|    102|  dflags = GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags));
  ------------------
  |  |  104|    102|#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
  ------------------
 3873|    102|  dflags |= flags;
 3874|    102|  type_set_qdata_W (node, static_quark_type_flags, GUINT_TO_POINTER (dflags));
  ------------------
  |  |  107|    102|#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
  ------------------
 3875|       |
 3876|    102|  node->is_abstract = (flags & G_TYPE_FLAG_ABSTRACT) != 0;
 3877|    102|  node->is_deprecated |= (flags & G_TYPE_FLAG_DEPRECATED) != 0;
 3878|    102|  node->is_final = (flags & G_TYPE_FLAG_FINAL) != 0;
 3879|    102|}
gtype.c:_g_type_test_flags:
 3957|    195|{
 3958|    195|  TypeNode *node;
 3959|    195|  gboolean result = FALSE;
  ------------------
  |  |  925|    195|#define	FALSE	(0)
  ------------------
 3960|       |  
 3961|    195|  node = lookup_type_node_I (type);
 3962|    195|  if (node)
  ------------------
  |  Branch (3962:7): [True: 195, False: 0]
  ------------------
 3963|    195|    {
 3964|    195|      if ((flags & ~NODE_FLAG_MASK) == 0)
  ------------------
  |  |  109|    195|#define	NODE_FLAG_MASK ( \
  |  |  110|    195|  G_TYPE_FLAG_ABSTRACT | \
  |  |  111|    195|  G_TYPE_FLAG_CLASSED | \
  |  |  112|    195|  G_TYPE_FLAG_DEPRECATED | \
  |  |  113|    195|  G_TYPE_FLAG_INSTANTIATABLE | \
  |  |  114|    195|  G_TYPE_FLAG_FINAL)
  ------------------
  |  Branch (3964:11): [True: 195, False: 0]
  ------------------
 3965|    195|        {
 3966|    195|          if ((flags & G_TYPE_FLAG_CLASSED) && !node->is_classed)
  ------------------
  |  Branch (3966:15): [True: 1, False: 194]
  |  Branch (3966:48): [True: 0, False: 1]
  ------------------
 3967|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3968|       |
 3969|    195|          if ((flags & G_TYPE_FLAG_INSTANTIATABLE) && !node->is_instantiatable)
  ------------------
  |  Branch (3969:15): [True: 5, False: 190]
  |  Branch (3969:55): [True: 0, False: 5]
  ------------------
 3970|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3971|       |
 3972|    195|          if ((flags & G_TYPE_FLAG_FINAL) && !node->is_final)
  ------------------
  |  Branch (3972:15): [True: 0, False: 195]
  |  Branch (3972:46): [True: 0, False: 0]
  ------------------
 3973|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3974|       |
 3975|    195|          if ((flags & G_TYPE_FLAG_ABSTRACT) && !node->is_abstract)
  ------------------
  |  Branch (3975:15): [True: 0, False: 195]
  |  Branch (3975:49): [True: 0, False: 0]
  ------------------
 3976|      0|            return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
 3977|       |
 3978|    195|          if ((flags & G_TYPE_FLAG_DEPRECATED) && !node->is_deprecated)
  ------------------
  |  Branch (3978:15): [True: 189, False: 6]
  |  Branch (3978:51): [True: 189, False: 0]
  ------------------
 3979|    189|            return FALSE;
  ------------------
  |  |  925|    189|#define	FALSE	(0)
  ------------------
 3980|       |
 3981|      6|          return TRUE;
  ------------------
  |  |  929|      6|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|      6|#define	FALSE	(0)
  |  |  ------------------
  ------------------
 3982|    195|        }
 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|    195|}
gtype.c:type_check_is_value_type_U:
 4278|    184|{
 4279|    184|  GTypeFlags tflags = G_TYPE_FLAG_VALUE_ABSTRACT;
 4280|    184|  TypeNode *node;
 4281|       |  
 4282|       |  /* common path speed up */
 4283|    184|  node = lookup_type_node_I (type);
 4284|    184|  if (node && node->mutatable_check_cache)
  ------------------
  |  Branch (4284:7): [True: 184, False: 0]
  |  Branch (4284:15): [True: 183, False: 1]
  ------------------
 4285|    183|    return TRUE;
  ------------------
  |  |  929|    183|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    183|#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|     92|{
   84|     92|  GTypeValueTable *value_table;
   85|       |  /* g_return_val_if_fail (G_TYPE_IS_VALUE (g_type), NULL);	be more elaborate below */
   86|     92|  g_return_val_if_fail (value != NULL, NULL);
  ------------------
  |  |  663|     92|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     92|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     92|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     92|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     92|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     92| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     92|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     92|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     92|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 92, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     92|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     92|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     92|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     92|   else                                         \
  |  |  |  |  |  |  |  | 1240|     92|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     92|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     92|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     92|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     92|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 92, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     92|      { } \
  |  |  666|     92|    else \
  |  |  667|     92|      { \
  |  |  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|     92|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     92|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 92]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   87|       |  /* g_return_val_if_fail (G_VALUE_TYPE (value) == 0, NULL);	be more elaborate below */
   88|       |
   89|     92|  value_table = g_type_value_table_peek (g_type);
   90|       |
   91|     92|  if (value_table && G_VALUE_TYPE (value) == 0)
  ------------------
  |  |   62|     92|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (91:7): [True: 92, False: 0]
  |  Branch (91:22): [True: 92, False: 0]
  ------------------
   92|     92|    {
   93|       |      /* setup and init */
   94|     92|      value_meminit (value, g_type);
   95|     92|      value_table->value_init (value);
   96|     92|    }
   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|     92|                G_STRLOC,
  105|     92|                g_type_name (g_type),
  106|     92|                value_table ? "this type is abstract with regards to GValue use, use a more specific (derived) type" : "this type has no GTypeValueTable implementation");
  107|     92|  return value;
  108|     92|}
g_value_copy:
  120|     91|{
  121|     91|  g_return_if_fail (src_value);
  ------------------
  |  |  650|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     91|      { } \
  |  |  653|     91|    else \
  |  |  654|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  122|     91|  g_return_if_fail (dest_value);
  ------------------
  |  |  650|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     91|      { } \
  |  |  653|     91|    else \
  |  |  654|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  123|     91|  g_return_if_fail (g_value_type_compatible (G_VALUE_TYPE (src_value), G_VALUE_TYPE (dest_value)));
  ------------------
  |  |  650|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     91|      { } \
  |  |  653|     91|    else \
  |  |  654|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  124|       |  
  125|     91|  if (src_value != dest_value)
  ------------------
  |  Branch (125:7): [True: 91, False: 0]
  ------------------
  126|     91|    {
  127|     91|      GType dest_type = G_VALUE_TYPE (dest_value);
  ------------------
  |  |   62|     91|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  128|     91|      GTypeValueTable *value_table = g_type_value_table_peek (dest_type);
  129|       |
  130|     91|      g_return_if_fail (value_table);
  ------------------
  |  |  650|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     91|      { } \
  |  |  653|     91|    else \
  |  |  654|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  131|       |
  132|       |      /* make sure dest_value's value is free()d */
  133|     91|      if (value_table->value_free)
  ------------------
  |  Branch (133:11): [True: 91, False: 0]
  ------------------
  134|     91|	value_table->value_free (dest_value);
  135|       |
  136|       |      /* setup and copy */
  137|     91|      value_meminit (dest_value, dest_type);
  138|     91|      value_table->value_copy (src_value, dest_value);
  139|     91|    }
  140|     91|}
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|     91|{
  186|     91|  GTypeValueTable *value_table;
  187|       |  
  188|     91|  if (value->g_type == 0)
  ------------------
  |  Branch (188:7): [True: 0, False: 91]
  ------------------
  189|      0|    return;
  190|       |
  191|     91|  g_return_if_fail (value);
  ------------------
  |  |  650|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     91|      { } \
  |  |  653|     91|    else \
  |  |  654|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  192|       |
  193|     91|  value_table = g_type_value_table_peek (G_VALUE_TYPE (value));
  ------------------
  |  |   62|     91|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  194|     91|  g_return_if_fail (value_table);
  ------------------
  |  |  650|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     91|      { } \
  |  |  653|     91|    else \
  |  |  654|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  195|       |
  196|     91|  if (value_table->value_free)
  ------------------
  |  Branch (196:7): [True: 91, False: 0]
  ------------------
  197|     91|    value_table->value_free (value);
  198|     91|  memset (value, 0, sizeof (*value));
  199|     91|}
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|    273|{
  502|    273|  g_return_val_if_fail (src_type, FALSE);
  ------------------
  |  |  663|    273|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    273|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    273|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    273|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    273|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    273| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    273|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    273|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    273|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 273, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    273|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    273|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    273|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    273|   else                                         \
  |  |  |  |  |  |  |  | 1240|    273|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    273|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    273|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    273|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    273|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 273, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    273|      { } \
  |  |  666|    273|    else \
  |  |  667|    273|      { \
  |  |  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|    273|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    273|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 273]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  503|    273|  g_return_val_if_fail (dest_type, FALSE);
  ------------------
  |  |  663|    273|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|    273|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|    273|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|    273|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|    273|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|    273| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|    273|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|    273|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|    273|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 273, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|    273|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    273|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    273|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|    273|   else                                         \
  |  |  |  |  |  |  |  | 1240|    273|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|    273|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|    273|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|    273|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|    273|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 273, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|    273|      { } \
  |  |  666|    273|    else \
  |  |  667|    273|      { \
  |  |  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|    273|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|    273|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 273]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  504|       |
  505|       |  /* Fast path */
  506|    273|  if (src_type == dest_type)
  ------------------
  |  Branch (506:7): [True: 273, False: 0]
  ------------------
  507|    273|    return TRUE;
  ------------------
  |  |  929|    273|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|    273|#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|    273|}
g_value_transform:
  532|     91|{
  533|     91|  GType dest_type;
  534|       |
  535|     91|  g_return_val_if_fail (src_value, FALSE);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  536|     91|  g_return_val_if_fail (dest_value, FALSE);
  ------------------
  |  |  663|     91|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     91|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     91|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     91|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     91|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     91| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     91|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     91|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 91, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     91|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     91|   else                                         \
  |  |  |  |  |  |  |  | 1240|     91|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     91|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     91|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     91|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     91|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 91, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     91|      { } \
  |  |  666|     91|    else \
  |  |  667|     91|      { \
  |  |  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|     91|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     91|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 91]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  537|       |
  538|     91|  dest_type = G_VALUE_TYPE (dest_value);
  ------------------
  |  |   62|     91|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  539|     91|  if (g_value_type_compatible (G_VALUE_TYPE (src_value), dest_type))
  ------------------
  |  |   62|     91|#define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
  ------------------
  |  Branch (539:7): [True: 91, False: 0]
  ------------------
  540|     91|    {
  541|     91|      g_value_copy (src_value, dest_value);
  542|       |      
  543|     91|      return TRUE;
  ------------------
  |  |  929|     91|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     91|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  544|     91|    }
  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|     91|}
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|    184|{
   67|    184|  value->g_type = value_type;
   68|    184|  memset (value->data, 0, sizeof (value->data));
   69|    184|}

_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_cbor_tag_to_string:
   28|    724|{
   29|    724|    if (val == FU_CBOR_TAG_POS_INT)
  ------------------
  |  Branch (29:9): [True: 378, False: 346]
  ------------------
   30|    378|        return "pos-int";
   31|    346|    if (val == FU_CBOR_TAG_NEG_INT)
  ------------------
  |  Branch (31:9): [True: 40, False: 306]
  ------------------
   32|     40|        return "neg-int";
   33|    306|    if (val == FU_CBOR_TAG_BYTES)
  ------------------
  |  Branch (33:9): [True: 41, False: 265]
  ------------------
   34|     41|        return "bytes";
   35|    265|    if (val == FU_CBOR_TAG_STRING)
  ------------------
  |  Branch (35:9): [True: 11, False: 254]
  ------------------
   36|     11|        return "string";
   37|    254|    if (val == FU_CBOR_TAG_ARRAY)
  ------------------
  |  Branch (37:9): [True: 36, False: 218]
  ------------------
   38|     36|        return "array";
   39|    218|    if (val == FU_CBOR_TAG_MAP)
  ------------------
  |  Branch (39:9): [True: 217, False: 1]
  ------------------
   40|    217|        return "map";
   41|      1|    if (val == FU_CBOR_TAG_SEMANTIC)
  ------------------
  |  Branch (41:9): [True: 0, False: 1]
  ------------------
   42|      0|        return "semantic";
   43|      1|    if (val == FU_CBOR_TAG_SPECIAL)
  ------------------
  |  Branch (43:9): [True: 1, False: 0]
  ------------------
   44|      1|        return "special";
   45|      0|    return NULL;
   46|      1|}
fu_cbor_mode_to_string:
   58|    251|{
   59|    251|    if (val == FU_CBOR_MODE_DEFINITE)
  ------------------
  |  Branch (59:9): [True: 251, False: 0]
  ------------------
   60|    251|        return "definite";
   61|      0|    if (val == FU_CBOR_MODE_INDEFINITE)
  ------------------
  |  Branch (61:9): [True: 0, False: 0]
  ------------------
   62|      0|        return "indefinite";
   63|      0|    return NULL;
   64|      0|}
fu_cbor_item_kind_to_string:
  109|      7|{
  110|      7|    if (val == FU_CBOR_ITEM_KIND_INTEGER)
  ------------------
  |  Branch (110:9): [True: 0, False: 7]
  ------------------
  111|      0|        return "integer";
  112|      7|    if (val == FU_CBOR_ITEM_KIND_BYTES)
  ------------------
  |  Branch (112:9): [True: 6, False: 1]
  ------------------
  113|      6|        return "bytes";
  114|      1|    if (val == FU_CBOR_ITEM_KIND_STRING)
  ------------------
  |  Branch (114:9): [True: 1, False: 0]
  ------------------
  115|      1|        return "string";
  116|      0|    if (val == FU_CBOR_ITEM_KIND_ARRAY)
  ------------------
  |  Branch (116:9): [True: 0, False: 0]
  ------------------
  117|      0|        return "array";
  118|      0|    if (val == FU_CBOR_ITEM_KIND_MAP)
  ------------------
  |  Branch (118:9): [True: 0, False: 0]
  ------------------
  119|      0|        return "map";
  120|      0|    if (val == FU_CBOR_ITEM_KIND_BOOLEAN)
  ------------------
  |  Branch (120:9): [True: 0, False: 0]
  ------------------
  121|      0|        return "boolean";
  122|      0|    return NULL;
  123|      0|}

fu_coswid_tag_to_string:
   28|    160|{
   29|    160|    if (val == FU_COSWID_TAG_TAG_ID)
  ------------------
  |  Branch (29:9): [True: 3, False: 157]
  ------------------
   30|      3|        return "tag-id";
   31|    157|    if (val == FU_COSWID_TAG_SOFTWARE_NAME)
  ------------------
  |  Branch (31:9): [True: 0, False: 157]
  ------------------
   32|      0|        return "software-name";
   33|    157|    if (val == FU_COSWID_TAG_ENTITY)
  ------------------
  |  Branch (33:9): [True: 0, False: 157]
  ------------------
   34|      0|        return "entity";
   35|    157|    if (val == FU_COSWID_TAG_EVIDENCE)
  ------------------
  |  Branch (35:9): [True: 0, False: 157]
  ------------------
   36|      0|        return "evidence";
   37|    157|    if (val == FU_COSWID_TAG_LINK)
  ------------------
  |  Branch (37:9): [True: 74, False: 83]
  ------------------
   38|     74|        return "link";
   39|     83|    if (val == FU_COSWID_TAG_SOFTWARE_META)
  ------------------
  |  Branch (39:9): [True: 0, False: 83]
  ------------------
   40|      0|        return "software-meta";
   41|     83|    if (val == FU_COSWID_TAG_PAYLOAD)
  ------------------
  |  Branch (41:9): [True: 2, False: 81]
  ------------------
   42|      2|        return "payload";
   43|     81|    if (val == FU_COSWID_TAG_HASH)
  ------------------
  |  Branch (43:9): [True: 28, False: 53]
  ------------------
   44|     28|        return "hash";
   45|     53|    if (val == FU_COSWID_TAG_CORPUS)
  ------------------
  |  Branch (45:9): [True: 0, False: 53]
  ------------------
   46|      0|        return "corpus";
   47|     53|    if (val == FU_COSWID_TAG_PATCH)
  ------------------
  |  Branch (47:9): [True: 0, False: 53]
  ------------------
   48|      0|        return "patch";
   49|     53|    if (val == FU_COSWID_TAG_MEDIA)
  ------------------
  |  Branch (49:9): [True: 0, False: 53]
  ------------------
   50|      0|        return "media";
   51|     53|    if (val == FU_COSWID_TAG_SUPPLEMENTAL)
  ------------------
  |  Branch (51:9): [True: 0, False: 53]
  ------------------
   52|      0|        return "supplemental";
   53|     53|    if (val == FU_COSWID_TAG_TAG_VERSION)
  ------------------
  |  Branch (53:9): [True: 0, False: 53]
  ------------------
   54|      0|        return "tag-version";
   55|     53|    if (val == FU_COSWID_TAG_SOFTWARE_VERSION)
  ------------------
  |  Branch (55:9): [True: 0, False: 53]
  ------------------
   56|      0|        return "software-version";
   57|     53|    if (val == FU_COSWID_TAG_VERSION_SCHEME)
  ------------------
  |  Branch (57:9): [True: 0, False: 53]
  ------------------
   58|      0|        return "version-scheme";
   59|     53|    if (val == FU_COSWID_TAG_LANG)
  ------------------
  |  Branch (59:9): [True: 0, False: 53]
  ------------------
   60|      0|        return "lang";
   61|     53|    if (val == FU_COSWID_TAG_DIRECTORY)
  ------------------
  |  Branch (61:9): [True: 2, False: 51]
  ------------------
   62|      2|        return "directory";
   63|     51|    if (val == FU_COSWID_TAG_FILE)
  ------------------
  |  Branch (63:9): [True: 0, False: 51]
  ------------------
   64|      0|        return "file";
   65|     51|    if (val == FU_COSWID_TAG_PROCESS)
  ------------------
  |  Branch (65:9): [True: 0, False: 51]
  ------------------
   66|      0|        return "process";
   67|     51|    if (val == FU_COSWID_TAG_RESOURCE)
  ------------------
  |  Branch (67:9): [True: 2, False: 49]
  ------------------
   68|      2|        return "resource";
   69|     49|    if (val == FU_COSWID_TAG_SIZE)
  ------------------
  |  Branch (69:9): [True: 2, False: 47]
  ------------------
   70|      2|        return "size";
   71|     47|    if (val == FU_COSWID_TAG_FILE_VERSION)
  ------------------
  |  Branch (71:9): [True: 0, False: 47]
  ------------------
   72|      0|        return "file-version";
   73|     47|    if (val == FU_COSWID_TAG_KEY)
  ------------------
  |  Branch (73:9): [True: 0, False: 47]
  ------------------
   74|      0|        return "key";
   75|     47|    if (val == FU_COSWID_TAG_LOCATION)
  ------------------
  |  Branch (75:9): [True: 0, False: 47]
  ------------------
   76|      0|        return "location";
   77|     47|    if (val == FU_COSWID_TAG_FS_NAME)
  ------------------
  |  Branch (77:9): [True: 0, False: 47]
  ------------------
   78|      0|        return "fs-name";
   79|     47|    if (val == FU_COSWID_TAG_ROOT)
  ------------------
  |  Branch (79:9): [True: 0, False: 47]
  ------------------
   80|      0|        return "root";
   81|     47|    if (val == FU_COSWID_TAG_PATH_ELEMENTS)
  ------------------
  |  Branch (81:9): [True: 1, False: 46]
  ------------------
   82|      1|        return "path-elements";
   83|     46|    if (val == FU_COSWID_TAG_PROCESS_NAME)
  ------------------
  |  Branch (83:9): [True: 0, False: 46]
  ------------------
   84|      0|        return "process-name";
   85|     46|    if (val == FU_COSWID_TAG_PID)
  ------------------
  |  Branch (85:9): [True: 0, False: 46]
  ------------------
   86|      0|        return "pid";
   87|     46|    if (val == FU_COSWID_TAG_TYPE)
  ------------------
  |  Branch (87:9): [True: 0, False: 46]
  ------------------
   88|      0|        return "type";
   89|     46|    if (val == FU_COSWID_TAG_MISSING30)
  ------------------
  |  Branch (89:9): [True: 0, False: 46]
  ------------------
   90|      0|        return "missing30";
   91|     46|    if (val == FU_COSWID_TAG_ENTITY_NAME)
  ------------------
  |  Branch (91:9): [True: 30, False: 16]
  ------------------
   92|     30|        return "entity-name";
   93|     16|    if (val == FU_COSWID_TAG_REG_ID)
  ------------------
  |  Branch (93:9): [True: 0, False: 16]
  ------------------
   94|      0|        return "reg-id";
   95|     16|    if (val == FU_COSWID_TAG_ROLE)
  ------------------
  |  Branch (95:9): [True: 0, False: 16]
  ------------------
   96|      0|        return "role";
   97|     16|    if (val == FU_COSWID_TAG_THUMBPRINT)
  ------------------
  |  Branch (97:9): [True: 0, False: 16]
  ------------------
   98|      0|        return "thumbprint";
   99|     16|    if (val == FU_COSWID_TAG_DATE)
  ------------------
  |  Branch (99:9): [True: 4, False: 12]
  ------------------
  100|      4|        return "date";
  101|     12|    if (val == FU_COSWID_TAG_DEVICE_ID)
  ------------------
  |  Branch (101:9): [True: 0, False: 12]
  ------------------
  102|      0|        return "device-id";
  103|     12|    if (val == FU_COSWID_TAG_ARTIFACT)
  ------------------
  |  Branch (103:9): [True: 0, False: 12]
  ------------------
  104|      0|        return "artifact";
  105|     12|    if (val == FU_COSWID_TAG_HREF)
  ------------------
  |  Branch (105:9): [True: 0, False: 12]
  ------------------
  106|      0|        return "href";
  107|     12|    if (val == FU_COSWID_TAG_OWNERSHIP)
  ------------------
  |  Branch (107:9): [True: 0, False: 12]
  ------------------
  108|      0|        return "ownership";
  109|     12|    if (val == FU_COSWID_TAG_REL)
  ------------------
  |  Branch (109:9): [True: 0, False: 12]
  ------------------
  110|      0|        return "rel";
  111|     12|    if (val == FU_COSWID_TAG_MEDIA_TYPE)
  ------------------
  |  Branch (111:9): [True: 0, False: 12]
  ------------------
  112|      0|        return "media-type";
  113|     12|    if (val == FU_COSWID_TAG_USE)
  ------------------
  |  Branch (113:9): [True: 0, False: 12]
  ------------------
  114|      0|        return "use";
  115|     12|    if (val == FU_COSWID_TAG_ACTIVATION_STATUS)
  ------------------
  |  Branch (115:9): [True: 0, False: 12]
  ------------------
  116|      0|        return "activation-status";
  117|     12|    if (val == FU_COSWID_TAG_CHANNEL_TYPE)
  ------------------
  |  Branch (117:9): [True: 0, False: 12]
  ------------------
  118|      0|        return "channel-type";
  119|     12|    if (val == FU_COSWID_TAG_COLLOQUIAL_VERSION)
  ------------------
  |  Branch (119:9): [True: 3, False: 9]
  ------------------
  120|      3|        return "colloquial-version";
  121|      9|    if (val == FU_COSWID_TAG_DESCRIPTION)
  ------------------
  |  Branch (121:9): [True: 7, False: 2]
  ------------------
  122|      7|        return "description";
  123|      2|    if (val == FU_COSWID_TAG_EDITION)
  ------------------
  |  Branch (123:9): [True: 0, False: 2]
  ------------------
  124|      0|        return "edition";
  125|      2|    if (val == FU_COSWID_TAG_ENTITLEMENT_DATA_REQUIRED)
  ------------------
  |  Branch (125:9): [True: 0, False: 2]
  ------------------
  126|      0|        return "entitlement-data-required";
  127|      2|    if (val == FU_COSWID_TAG_ENTITLEMENT_KEY)
  ------------------
  |  Branch (127:9): [True: 0, False: 2]
  ------------------
  128|      0|        return "entitlement-key";
  129|      2|    if (val == FU_COSWID_TAG_GENERATOR)
  ------------------
  |  Branch (129:9): [True: 0, False: 2]
  ------------------
  130|      0|        return "generator";
  131|      2|    if (val == FU_COSWID_TAG_PERSISTENT_ID)
  ------------------
  |  Branch (131:9): [True: 0, False: 2]
  ------------------
  132|      0|        return "persistent-id";
  133|      2|    if (val == FU_COSWID_TAG_PRODUCT)
  ------------------
  |  Branch (133:9): [True: 0, False: 2]
  ------------------
  134|      0|        return "product";
  135|      2|    if (val == FU_COSWID_TAG_PRODUCT_FAMILY)
  ------------------
  |  Branch (135:9): [True: 0, False: 2]
  ------------------
  136|      0|        return "product-family";
  137|      2|    if (val == FU_COSWID_TAG_REVISION)
  ------------------
  |  Branch (137:9): [True: 0, False: 2]
  ------------------
  138|      0|        return "revision";
  139|      2|    if (val == FU_COSWID_TAG_SUMMARY)
  ------------------
  |  Branch (139:9): [True: 0, False: 2]
  ------------------
  140|      0|        return "summary";
  141|      2|    if (val == FU_COSWID_TAG_UNSPSC_CODE)
  ------------------
  |  Branch (141:9): [True: 0, False: 2]
  ------------------
  142|      0|        return "unspsc-code";
  143|      2|    if (val == FU_COSWID_TAG_UNSPSC_VERSION)
  ------------------
  |  Branch (143:9): [True: 0, False: 2]
  ------------------
  144|      0|        return "unspsc-version";
  145|      2|    return NULL;
  146|      2|}

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

fu_struct_uswid_unref:
  149|     28|{
  150|     28|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|     28|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     28|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|     28|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     28|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     28|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     28| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     28|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     28|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     28|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 28, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     28|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     28|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     28|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     28|   else                                         \
  |  |  |  |  |  |  |  | 1240|     28|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     28|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     28|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     28|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     28|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 28, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|     28|      { } \
  |  |  653|     28|    else \
  |  |  654|     28|      { \
  |  |  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|     28|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     28|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 28]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  151|     28|    if (st->refcount == 0) {
  ------------------
  |  Branch (151:9): [True: 0, False: 28]
  ------------------
  152|      0|        g_critical("FuStructUswid 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__)
  ------------------
  153|      0|        return;
  154|      0|    }
  155|     28|    if (--st->refcount > 0)
  ------------------
  |  Branch (155:9): [True: 0, False: 28]
  ------------------
  156|      0|        return;
  157|     28|    if (st->buf != NULL)
  ------------------
  |  Branch (157:9): [True: 26, False: 2]
  ------------------
  158|     26|        g_byte_array_unref(st->buf);
  159|     28|    g_free(st);
  160|     28|}
fu_struct_uswid_get_hdrver:
  187|     13|{
  188|     13|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     13|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  189|     13|    return st->buf->data[16];
  190|     13|}
fu_struct_uswid_get_hdrsz:
  196|     13|{
  197|     13|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     13|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  198|     13|    return fu_memread_uint16(st->buf->data + 17, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|     13|#define G_LITTLE_ENDIAN 1234
  ------------------
  199|     13|}
fu_struct_uswid_get_payloadsz:
  205|     13|{
  206|     13|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     13|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  207|     13|    return fu_memread_uint32(st->buf->data + 19, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|     13|#define G_LITTLE_ENDIAN 1234
  ------------------
  208|     13|}
fu_struct_uswid_get_flags:
  214|     10|{
  215|     10|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|     10|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     10|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     10|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     10|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     10|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     10| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     10|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     10|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     10|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 10, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     10|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     10|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     10|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     10|   else                                         \
  |  |  |  |  |  |  |  | 1240|     10|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     10|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     10|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     10|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     10|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 10, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     10|      { } \
  |  |  666|     10|    else \
  |  |  667|     10|      { \
  |  |  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|     10|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     10|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 10]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  216|     10|    return st->buf->data[23];
  217|     10|}
fu_struct_uswid_get_compression:
  223|      5|{
  224|      5|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  663|      5|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      5|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|      5|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      5|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      5|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      5| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      5|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      5|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      5|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 5, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      5|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      5|   else                                         \
  |  |  |  |  |  |  |  | 1240|      5|      G_PASTE (_g_boolean_var_, uniq) = 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|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      5|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      5|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      5|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 5, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|      5|      { } \
  |  |  666|      5|    else \
  |  |  667|      5|      { \
  |  |  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|      5|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      5|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 5]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  225|      5|    return st->buf->data[24];
  226|      5|}
fu_struct_uswid_get_format:
  232|      3|{
  233|      3|    g_return_val_if_fail(st != NULL, 0x0);
  ------------------
  |  |  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, \
  |  |  ------------------
  |  |  |  |   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|      3|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      3|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 3]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|      3|    return st->buf->data[25];
  235|      3|}
fu_struct_uswid_set_hdrver:
  253|      4|{
  254|      4|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  255|      4|    st->buf->data[16] = value;
  256|      4|}
fu_struct_uswid_set_hdrsz:
  262|      4|{
  263|      4|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|      4|    fu_memwrite_uint16(st->buf->data + 17, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|      4|#define G_LITTLE_ENDIAN 1234
  ------------------
  265|      4|}
fu_struct_uswid_set_payloadsz:
  271|      2|{
  272|      2|    g_return_if_fail(st != 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, \
  |  |  ------------------
  |  |  |  |   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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  273|      2|    fu_memwrite_uint32(st->buf->data + 19, value, G_LITTLE_ENDIAN);
  ------------------
  |  |  211|      2|#define G_LITTLE_ENDIAN 1234
  ------------------
  274|      2|}
fu_struct_uswid_set_flags:
  280|      2|{
  281|      2|    g_return_if_fail(st != 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, \
  |  |  ------------------
  |  |  |  |   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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  282|      2|    st->buf->data[23] = value;
  283|      2|}
fu_struct_uswid_set_compression:
  289|      4|{
  290|      4|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  291|      4|    st->buf->data[24] = value;
  292|      4|}
fu_struct_uswid_set_format:
  298|      4|{
  299|      4|    g_return_if_fail(st != NULL);
  ------------------
  |  |  650|      4|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|      4|#define G_STMT_START  do
  |  |  ------------------
  |  |  651|      4|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|      4|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|      4|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|      4| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|      4|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|      4|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|      4|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 4, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|      4|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|      4|   else                                         \
  |  |  |  |  |  |  |  | 1240|      4|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|      4|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      4|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      4|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|      4|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 4, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  652|      4|      { } \
  |  |  653|      4|    else \
  |  |  654|      4|      { \
  |  |  655|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|      4|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      4|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 4]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  300|      4|    st->buf->data[25] = value;
  301|      4|}
fu_struct_uswid_new:
  307|      2|{
  308|      2|    FuStructUswid *st = fu_struct_uswid_new_internal();
  309|      2|    st->buf = g_byte_array_sized_new(26);
  310|      2|    fu_byte_array_set_size(st->buf, 26, 0x0);
  311|      2|    fu_struct_uswid_set_magic(st, (fwupd_guid_t *) "\x53\x42\x4f\x4d\xd6\xba\x2e\xac\xa3\xe6\x7a\x52\xaa\xee\x3b\xaf");
  312|      2|    fu_struct_uswid_set_hdrver(st, 0x04);
  313|      2|    fu_struct_uswid_set_hdrsz(st, 26);
  314|      2|    fu_struct_uswid_set_compression(st, FU_USWID_PAYLOAD_COMPRESSION_NONE);
  315|      2|    fu_struct_uswid_set_format(st, FU_USWID_PAYLOAD_FORMAT_COSWID);
  316|      2|    return st;
  317|      2|}
fu_struct_uswid_validate_stream:
  382|     13|{
  383|     13|    g_autoptr(FuStructUswid) st = fu_struct_uswid_new_internal();
  ------------------
  |  | 1381|     13|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     13|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  384|     13|    g_return_val_if_fail(FU_IS_INPUT_STREAM(stream), FALSE);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     13|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  385|     13|    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
  ------------------
  |  |  663|     13|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     13|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     13|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     13|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     13|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     13| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     13|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     39|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 0, False: 13]
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 13, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     13|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     13|   else                                         \
  |  |  |  |  |  |  |  | 1240|     13|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     13|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     13|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     13|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     13|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 13, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     13|      { } \
  |  |  666|     13|    else \
  |  |  667|     13|      { \
  |  |  668|      0|        g_return_if_fail_warning (G_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   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|     13|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     13|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 13]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  386|     13|    st->buf = fu_input_stream_read_byte_array(stream, offset, 26, NULL, error);
  387|     13|    if (st->buf == NULL) {
  ------------------
  |  Branch (387:9): [True: 0, False: 13]
  ------------------
  388|      0|        g_prefix_error(error, "FuStructUswid failed read of 0x%x: ", (guint) 26);
  389|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  390|      0|    }
  391|     13|    if (st->buf->len != 26) {
  ------------------
  |  Branch (391:9): [True: 0, False: 13]
  ------------------
  392|      0|        g_set_error(error,
  393|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  394|      0|                    FWUPD_ERROR_INVALID_DATA,
  395|      0|                    "FuStructUswid requested 0x%x and got 0x%x",
  396|      0|                    (guint) 26,
  397|      0|                    (guint) st->buf->len);
  398|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  399|      0|    }
  400|     13|    return fu_struct_uswid_validate_internal(st, error);
  401|     13|}
fu_struct_uswid_parse_stream:
  418|     13|{
  419|     13|    g_autoptr(FuStructUswid) st = fu_struct_uswid_new_internal();
  ------------------
  |  | 1381|     13|#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
  |  |  ------------------
  |  |  |  | 1348|     13|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  420|     13|    st->buf = fu_input_stream_read_byte_array(stream, offset, 26, NULL, error);
  421|     13|    if (st->buf == NULL) {
  ------------------
  |  Branch (421:9): [True: 0, False: 13]
  ------------------
  422|      0|        g_prefix_error(error, "FuStructUswid failed read of 0x%x: ", (guint) 26);
  423|      0|        return NULL;
  424|      0|    }
  425|     13|    if (st->buf->len != 26) {
  ------------------
  |  Branch (425:9): [True: 0, False: 13]
  ------------------
  426|      0|        g_set_error(error,
  427|      0|                    FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  428|      0|                    FWUPD_ERROR_INVALID_DATA,
  429|      0|                    "FuStructUswid requested 0x%x and got 0x%x",
  430|      0|                    (guint) 26,
  431|      0|                    (guint) st->buf->len);
  432|      0|        return NULL;
  433|      0|    }
  434|     13|    if (!fu_struct_uswid_parse_internal(st, error))
  ------------------
  |  Branch (434:9): [True: 0, False: 13]
  ------------------
  435|      0|        return NULL;
  436|     13|    return g_steal_pointer(&st);
  ------------------
  |  |  247|     13|#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp))
  ------------------
  437|     13|}
fu-uswid-struct.c:fu_struct_uswid_new_internal:
  166|     28|{
  167|       |    FuStructUswid *st = g_new0(FuStructUswid, 1);
  ------------------
  |  |  332|     28|#define g_new0(struct_type, n_structs)			_G_NEW (struct_type, n_structs, malloc0)
  |  |  ------------------
  |  |  |  |  260|     28|	(struct_type *) (G_GNUC_EXTENSION ({			\
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     28|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  |  261|     28|	  gsize __n = (gsize) (n_structs);			\
  |  |  |  |  262|     28|	  gsize __s = sizeof (struct_type);			\
  |  |  |  |  263|     28|	  gpointer __p;						\
  |  |  |  |  264|     28|	  if (__s == 1)						\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (264:8): [True: 0, False: 28]
  |  |  |  |  ------------------
  |  |  |  |  265|     28|	    __p = g_##func (__n);				\
  |  |  |  |  266|     28|	  else if (__builtin_constant_p (__n) &&		\
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (266:13): [True: 28, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  267|     28|	           (__s == 0 || __n <= G_MAXSIZE / __s))	\
  |  |  |  |  ------------------
  |  |  |  |  |  |   89|     28|#define G_MAXSIZE	G_MAXULONG
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|     28|#define G_MAXULONG	ULONG_MAX
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (267:14): [True: 0, False: 28]
  |  |  |  |  |  Branch (267:26): [True: 28, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  268|     28|	    __p = g_##func (__n * __s);				\
  |  |  |  |  269|     28|	  else							\
  |  |  |  |  270|     28|	    __p = g_##func##_n (__n, __s);			\
  |  |  |  |  271|     28|	  __p;							\
  |  |  |  |  272|     28|	}))
  |  |  ------------------
  ------------------
  168|     28|    st->refcount = 1;
  169|     28|    return st;
  170|     28|}
fu-uswid-struct.c:fu_struct_uswid_set_magic:
  243|      2|{
  244|      2|    g_return_if_fail(st != 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, \
  |  |  ------------------
  |  |  |  |   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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  245|      2|    g_return_if_fail(value != 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, \
  |  |  ------------------
  |  |  |  |   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|      2|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|      2|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 2]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  246|      2|    memcpy(st->buf->data + 0, value, sizeof(*value)); /* nocheck:blocked */
  247|      2|}
fu-uswid-struct.c:fu_struct_uswid_validate_internal:
  366|     26|{
  367|     26|    g_return_val_if_fail(st != NULL, FALSE);
  ------------------
  |  |  663|     26|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     26|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     26|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     26|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     26|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     26| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     26|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     26|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     26|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 26, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     26|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     26|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     26|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     26|   else                                         \
  |  |  |  |  |  |  |  | 1240|     26|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     26|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     26|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     26|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     26|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 26, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     26|      { } \
  |  |  666|     26|    else \
  |  |  667|     26|      { \
  |  |  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|     26|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     26|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 26]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|     26|    if (memcmp(fu_struct_uswid_get_magic(st), "\x53\x42\x4f\x4d\xd6\xba\x2e\xac\xa3\xe6\x7a\x52\xaa\xee\x3b\xaf", 16) != 0) {
  ------------------
  |  Branch (368:9): [True: 0, False: 26]
  ------------------
  369|      0|        g_set_error_literal(error,
  370|      0|                            FWUPD_ERROR,
  ------------------
  |  |   15|      0|#define FWUPD_ERROR fwupd_error_quark()
  ------------------
  371|      0|                            FWUPD_ERROR_INVALID_DATA,
  372|      0|                            "constant FuStructUswid.magic was not valid");
  373|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  374|      0|    }
  375|     26|    return TRUE;
  ------------------
  |  |  929|     26|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     26|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  376|     26|}
fu-uswid-struct.c:fu_struct_uswid_get_magic:
  178|     26|{
  179|     26|    g_return_val_if_fail(st != NULL, NULL);
  ------------------
  |  |  663|     26|  G_STMT_START { \
  |  |  ------------------
  |  |  |  |  985|     26|#define G_STMT_START  do
  |  |  ------------------
  |  |  664|     26|    if (G_LIKELY (expr)) \
  |  |  ------------------
  |  |  |  | 1244|     26|#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
  |  |  |  |  ------------------
  |  |  |  |  |  | 1243|     26|#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1235|     26| G_GNUC_EXTENSION ({                            \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   62|     26|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1236|     26|   int G_PASTE (_g_boolean_var_, uniq);         \
  |  |  |  |  |  |  |  | 1237|     26|   if (expr)                                    \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (1237:8): [True: 26, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1238|     26|      G_PASTE (_g_boolean_var_, uniq) = 1;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     26|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     26|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1239|     26|   else                                         \
  |  |  |  |  |  |  |  | 1240|     26|      G_PASTE (_g_boolean_var_, uniq) = 0;      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|      0|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|      0|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1241|     26|   G_PASTE (_g_boolean_var_, uniq);             \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  866|     26|#define G_PASTE(identifier1,identifier2)      G_PASTE_ARGS (identifier1, identifier2)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  865|     26|#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1242|     26|})
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (1244:24): [True: 26, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  665|     26|      { } \
  |  |  666|     26|    else \
  |  |  667|     26|      { \
  |  |  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|     26|  } G_STMT_END
  |  |  ------------------
  |  |  |  |  993|     26|#define G_STMT_END    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (993:30): [Folded, False: 26]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  180|     26|    return (const fwupd_guid_t *) (st->buf->data + 0);
  181|     26|}
fu-uswid-struct.c:fu_struct_uswid_parse_internal:
  404|     13|{
  405|     13|    if (g_log_get_debug_enabled()) {
  ------------------
  |  Branch (405:9): [True: 0, False: 13]
  ------------------
  406|      0|        g_autofree gchar *str = fu_struct_uswid_to_string(st);
  ------------------
  |  | 1386|      0|#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
  |  |  ------------------
  |  |  |  | 1348|      0|#define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
  |  |  ------------------
  ------------------
  407|      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__)
  ------------------
  408|      0|    }
  409|     13|    if (!fu_struct_uswid_validate_internal(st, error))
  ------------------
  |  Branch (409:9): [True: 0, False: 13]
  ------------------
  410|      0|        return FALSE;
  ------------------
  |  |  925|      0|#define	FALSE	(0)
  ------------------
  411|     13|    return TRUE;
  ------------------
  |  |  929|     13|#define	TRUE	(!FALSE)
  |  |  ------------------
  |  |  |  |  925|     13|#define	FALSE	(0)
  |  |  ------------------
  ------------------
  412|     13|}

fu-cbor-item.c:g_autoptr_cleanup_generic_gfree:
   30|    286|{
   31|    286|  void **pp = (void**)p;
   32|    286|  g_free (*pp);
   33|    286|}
fu-cbor-common.c:g_autoptr_cleanup_generic_gfree:
   30|     11|{
   31|     11|  void **pp = (void**)p;
   32|     11|  g_free (*pp);
   33|     11|}
fu-coswid-firmware.c:g_autoptr_cleanup_generic_gfree:
   30|     29|{
   31|     29|  void **pp = (void**)p;
   32|     29|  g_free (*pp);
   33|     29|}
fu-firmware.c:g_autoptr_cleanup_generic_gfree:
   30|     20|{
   31|     20|  void **pp = (void**)p;
   32|     20|  g_free (*pp);
   33|     20|}

fu-fuzzer-firmware.c:glib_autoptr_cleanup_GObject:
 1358|     20|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     20|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-fuzzer-firmware.c:glib_autoptr_clear_GObject:
 1356|     20|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 20, False: 0]
  ------------------
fu-uswid-struct.c:glib_autoptr_cleanup_FuStructUswid:
 1358|     26|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     26|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-uswid-struct.c:glib_autoptr_clear_FuStructUswid:
 1356|     26|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 13, False: 13]
  ------------------
fu-cbor-common.c:glib_autoptr_cleanup_FuCborItem:
 1358|    978|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    978|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-cbor-common.c:glib_autoptr_clear_FuCborItem:
 1356|    978|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 662, False: 316]
  ------------------
fu-cbor-common.c:glib_autoptr_cleanup_GBytes:
 1358|     41|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     41|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-cbor-common.c:glib_autoptr_clear_GBytes:
 1356|     41|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 40, False: 1]
  ------------------
fu-coswid-common.c:glib_autoptr_cleanup_GBytes:
 1358|     29|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     29|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-coswid-common.c:glib_autoptr_clear_GBytes:
 1356|     29|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 29, False: 0]
  ------------------
fu-coswid-firmware.c:glib_autoptr_cleanup_FuCborItem:
 1358|     69|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     69|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-coswid-firmware.c:glib_autoptr_clear_FuCborItem:
 1356|     69|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 60, False: 9]
  ------------------
fu-coswid-firmware.c:glib_autoptr_cleanup_FuCoswidFirmwareLink:
 1358|     60|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     60|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-coswid-firmware.c:glib_autoptr_clear_FuCoswidFirmwareLink:
 1356|     60|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 60]
  ------------------
fu-coswid-firmware.c:glib_autoptr_cleanup_FuCoswidFirmwarePayload:
 1358|     26|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     26|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-coswid-firmware.c:glib_autoptr_clear_FuCoswidFirmwarePayload:
 1356|     26|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 26]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GByteArray:
 1358|     22|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     22|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GByteArray:
 1356|     22|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 4, False: 18]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GPtrArray:
 1358|      2|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|      2|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GPtrArray:
 1356|      2|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 2]
  ------------------
fu-firmware.c:glib_autoptr_clear_GObject:
 1356|    266|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 266, False: 0]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GBytes:
 1358|     95|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     95|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GBytes:
 1356|     95|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 84, False: 11]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_GError:
 1358|     20|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     20|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_GError:
 1356|     20|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 7, False: 13]
  ------------------
fu-firmware.c:glib_autoptr_cleanup_FuInputStream:
 1358|    273|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    273|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-firmware.c:glib_autoptr_clear_FuInputStream:
 1356|    273|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 266, False: 7]
  ------------------
fu-input-stream.c:glib_autoptr_cleanup_GByteArray:
 1358|    588|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    588|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-input-stream.c:glib_autoptr_clear_GByteArray:
 1356|    588|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 154, False: 434]
  ------------------
fu-input-stream.c:glib_autoptr_cleanup_GError:
 1358|    419|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|    419|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-input-stream.c:glib_autoptr_clear_GError:
 1356|    419|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 7, False: 412]
  ------------------
fu-memory-input-stream.c:glib_autoptr_cleanup_FuMemoryInputStream:
 1358|     91|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     91|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-memory-input-stream.c:glib_autoptr_clear_FuMemoryInputStream:
 1356|     91|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 91]
  ------------------
fu-memory-input-stream.c:glib_autoptr_cleanup_GBytes:
 1358|     20|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     20|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-memory-input-stream.c:glib_autoptr_clear_GBytes:
 1356|     20|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 20, False: 0]
  ------------------
fu-partial-input-stream.c:glib_autoptr_cleanup_FuPartialInputStream:
 1358|      6|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|      6|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-partial-input-stream.c:glib_autoptr_clear_FuPartialInputStream:
 1356|      6|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 0, False: 6]
  ------------------
fu-uswid-firmware.c:glib_autoptr_cleanup_FuStructUswid:
 1358|     15|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     15|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-uswid-firmware.c:glib_autoptr_clear_FuStructUswid:
 1356|     15|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 15, False: 0]
  ------------------
fu-uswid-firmware.c:glib_autoptr_cleanup_GBytes:
 1358|     86|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     86|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-uswid-firmware.c:glib_autoptr_clear_GBytes:
 1356|     86|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 86, False: 0]
  ------------------
fu-uswid-firmware.c:glib_autoptr_clear_GObject:
 1356|     71|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 71, False: 0]
  ------------------
fu-uswid-firmware.c:glib_autoptr_cleanup_FuFirmware:
 1358|     71|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|     71|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-uswid-firmware.c:glib_autoptr_clear_FuFirmware:
 1356|     71|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 71, False: 0]
  ------------------
fu-uswid-firmware.c:glib_autoptr_cleanup_GByteArray:
 1358|      4|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|      4|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-uswid-firmware.c:glib_autoptr_clear_GByteArray:
 1356|      4|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 4, False: 0]
  ------------------
fu-uswid-firmware.c:glib_autoptr_cleanup_GPtrArray:
 1358|      2|    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
  ------------------
  |  | 1339|      2|#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
  ------------------
fu-uswid-firmware.c:glib_autoptr_clear_GPtrArray:
 1356|      2|    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
  ------------------
  |  Branch (1356:11): [True: 2, False: 0]
  ------------------

fu-uswid-struct.c:g_steal_pointer:
  235|     13|{
  236|     13|  gpointer *ptr = (gpointer *) pp;
  237|     13|  gpointer ref;
  238|       |
  239|     13|  ref = *ptr;
  240|     13|  *ptr = NULL;
  241|       |
  242|     13|  return ref;
  243|     13|}
fu-cbor-item.c:g_steal_pointer:
  235|    286|{
  236|    286|  gpointer *ptr = (gpointer *) pp;
  237|    286|  gpointer ref;
  238|       |
  239|    286|  ref = *ptr;
  240|    286|  *ptr = NULL;
  241|       |
  242|    286|  return ref;
  243|    286|}
fu-cbor-common.c:g_steal_pointer:
  235|    315|{
  236|    315|  gpointer *ptr = (gpointer *) pp;
  237|    315|  gpointer ref;
  238|       |
  239|    315|  ref = *ptr;
  240|    315|  *ptr = NULL;
  241|       |
  242|    315|  return ref;
  243|    315|}
fu-coswid-firmware.c:g_steal_pointer:
  235|     86|{
  236|     86|  gpointer *ptr = (gpointer *) pp;
  237|     86|  gpointer ref;
  238|       |
  239|     86|  ref = *ptr;
  240|     86|  *ptr = NULL;
  241|       |
  242|     86|  return ref;
  243|     86|}
fu-firmware.c:g_steal_pointer:
  235|     24|{
  236|     24|  gpointer *ptr = (gpointer *) pp;
  237|     24|  gpointer ref;
  238|       |
  239|     24|  ref = *ptr;
  240|     24|  *ptr = NULL;
  241|       |
  242|     24|  return ref;
  243|     24|}
fu-input-stream.c:g_steal_pointer:
  235|    426|{
  236|    426|  gpointer *ptr = (gpointer *) pp;
  237|    426|  gpointer ref;
  238|       |
  239|    426|  ref = *ptr;
  240|    426|  *ptr = NULL;
  241|       |
  242|    426|  return ref;
  243|    426|}
fu-memory-input-stream.c:g_steal_pointer:
  235|     91|{
  236|     91|  gpointer *ptr = (gpointer *) pp;
  237|     91|  gpointer ref;
  238|       |
  239|     91|  ref = *ptr;
  240|     91|  *ptr = NULL;
  241|       |
  242|     91|  return ref;
  243|     91|}
fu-partial-input-stream.c:g_steal_pointer:
  235|      6|{
  236|      6|  gpointer *ptr = (gpointer *) pp;
  237|      6|  gpointer ref;
  238|       |
  239|      6|  ref = *ptr;
  240|      6|  *ptr = NULL;
  241|       |
  242|      6|  return ref;
  243|      6|}
fu-uswid-firmware.c:g_steal_pointer:
  235|      2|{
  236|      2|  gpointer *ptr = (gpointer *) pp;
  237|      2|  gpointer ref;
  238|       |
  239|      2|  ref = *ptr;
  240|      2|  *ptr = NULL;
  241|       |
  242|      2|  return ref;
  243|      2|}

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

fu-fuzzer-firmware.c:FU_FUZZER:
 1805|     20|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                         \
 1806|     20|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }               \
  ------------------
  |  |  528|     20|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|     20|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-uswid-struct.c:FU_IS_INPUT_STREAM:
 1719|     13|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|     13|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|     13|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|     13|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     13|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|     13|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|     13|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 13]
  |  |  |  |  ------------------
  |  |  |  | 2674|     13|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|     13|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 13, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 13]
  |  |  |  |  ------------------
  |  |  |  | 2676|     13|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|     13|  else \
  |  |  |  | 2678|     13|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|     13|  __r; \
  |  |  |  | 2680|     13|}))
  |  |  ------------------
  ------------------
fu-cbor-common.c:FU_IS_INPUT_STREAM:
 1719|     69|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|     69|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|     69|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|     69|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     69|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|     69|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|     69|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 69]
  |  |  |  |  ------------------
  |  |  |  | 2674|     69|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|     69|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 69, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 69]
  |  |  |  |  ------------------
  |  |  |  | 2676|     69|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|     69|  else \
  |  |  |  | 2678|     69|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|     69|  __r; \
  |  |  |  | 2680|     69|}))
  |  |  ------------------
  ------------------
fu-coswid-firmware.c:fu_coswid_firmware_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-coswid-firmware.c:fu_coswid_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-coswid-firmware.c:FU_FIRMWARE_CLASS:
 1717|      1|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_CLASS (gpointer ptr) {        \
 1718|      1|    return G_TYPE_CHECK_CLASS_CAST (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }         \
  ------------------
  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  ------------------
  ------------------
fu-coswid-firmware.c:FU_COSWID_FIRMWARE:
 1715|    253|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|    253|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|    253|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    253|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-coswid-firmware.c:fu_coswid_firmware_get_instance_private:
 2293|    293|type_name##_get_instance_private (TypeName *self) \
 2294|    293|{ \
 2295|    293|  return (G_STRUCT_MEMBER_P (self, TypeName##_private_offset)); \
  ------------------
  |  |  971|    293|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2296|    293|} \
fu-coswid-firmware.c:FU_FIRMWARE:
 1715|     69|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|     69|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|     69|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|     69|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-firmware.c:fu_firmware_get_type_once:
 2047|      2|#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2338|      2|  _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
  |  |  ------------------
  |  |  |  | 2316|      2|type_name##_get_type_once (void) \
  |  |  |  | 2317|      2|{ \
  |  |  |  | 2318|      2|  GType g_define_type_id = \
  |  |  |  | 2319|      2|        g_type_register_static_simple (TYPE_PARENT, \
  |  |  |  | 2320|      2|                                       g_intern_static_string (#TypeName), \
  |  |  |  | 2321|      2|                                       sizeof (TypeName##Class), \
  |  |  |  | 2322|      2|                                       (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \
  |  |  |  | 2323|      2|                                       sizeof (TypeName), \
  |  |  |  | 2324|      2|                                       (GInstanceInitFunc)(void (*)(void)) type_name##_init, \
  |  |  |  | 2325|      2|                                       (GTypeFlags) flags); \
  |  |  |  | 2326|      2|    { /* custom code follows */
  |  |  ------------------
  ------------------
              #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	    _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
  ------------------
  |  | 2329|      2|    }					\
  |  | 2330|      2|  return g_define_type_id; \
  |  | 2331|      2|} /* closes type_name##_get_type_once() */
  ------------------
fu-firmware.c:fu_firmware_class_intern_init:
 2253|      1|static void     type_name##_class_intern_init (gpointer klass) \
 2254|      1|{ \
 2255|      1|  type_name##_parent_class = g_type_class_peek_parent (klass); \
 2256|      1|  if (TypeName##_private_offset != 0) \
  ------------------
  |  Branch (2256:7): [True: 1, False: 0]
  ------------------
 2257|      1|    g_type_class_adjust_private_offset (klass, &TypeName##_private_offset); \
 2258|      1|  type_name##_class_init ((TypeName##Class*) klass); \
 2259|      1|}
fu-firmware.c:fu_firmware_get_instance_private:
 2293|  1.47k|type_name##_get_instance_private (TypeName *self) \
 2294|  1.47k|{ \
 2295|  1.47k|  return (G_STRUCT_MEMBER_P (self, TypeName##_private_offset)); \
  ------------------
  |  |  971|  1.47k|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2296|  1.47k|} \
fu-firmware.c:FU_IS_FIRMWARE:
 1719|  1.33k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|  1.33k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  1.33k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  1.33k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  1.33k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  1.33k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  1.33k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 1.33k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  1.33k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  1.33k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 1.33k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 28, False: 1.30k]
  |  |  |  |  ------------------
  |  |  |  | 2676|  1.33k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|     28|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|     28|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  1.33k|  else \
  |  |  |  | 2678|  1.33k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  1.33k|  __r; \
  |  |  |  | 2680|  1.33k|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_FIRMWARE_GET_CLASS:
 1723|    501|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_GET_CLASS (gpointer ptr) {    \
 1724|    501|    return G_TYPE_INSTANCE_GET_CLASS (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }       \
  ------------------
  |  |  571|    501|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2667|    501|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_IS_INPUT_STREAM:
 1719|     91|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|     91|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|     91|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|     91|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|     91|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|     91|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|     91|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 91]
  |  |  |  |  ------------------
  |  |  |  | 2674|     91|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|     91|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 91, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 91]
  |  |  |  |  ------------------
  |  |  |  | 2676|     91|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|     91|  else \
  |  |  |  | 2678|     91|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|     91|  __r; \
  |  |  |  | 2680|     91|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_IS_FIRMWARE_CLASS:
 1721|      2|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME##_CLASS (gpointer ptr) {                   \
 1722|      2|    return G_TYPE_CHECK_CLASS_TYPE (ptr, module_obj_name##_get_type ()); }                               \
  ------------------
  |  |  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|}))
  |  |  ------------------
  ------------------
fu-firmware.c:FU_FIRMWARE:
 1715|    293|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|    293|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|    293|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    293|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-fuzzer.c:FU_FUZZER_GET_IFACE:
 1809|     20|  G_GNUC_UNUSED static inline ModuleObjName##Interface * MODULE##_##OBJ_NAME##_GET_IFACE (gpointer ptr) {  \
 1810|     20|    return G_TYPE_INSTANCE_GET_INTERFACE (ptr, module_obj_name##_get_type (), ModuleObjName##Interface); } \
  ------------------
  |  |  584|     20|#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2668|     20|#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.03k|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|  5.03k|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|  5.03k|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|  5.03k|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|  5.03k|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|  5.03k|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|  5.03k|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 5.03k]
  |  |  |  |  ------------------
  |  |  |  | 2674|  5.03k|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|  5.03k|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 5.03k, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 5.03k]
  |  |  |  |  ------------------
  |  |  |  | 2676|  5.03k|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|  5.03k|  else \
  |  |  |  | 2678|  5.03k|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|  5.03k|  __r; \
  |  |  |  | 2680|  5.03k|}))
  |  |  ------------------
  ------------------
fu-input-stream.c:FU_INPUT_STREAM_GET_CLASS:
 1723|  4.89k|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_GET_CLASS (gpointer ptr) {    \
 1724|  4.89k|    return G_TYPE_INSTANCE_GET_CLASS (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }       \
  ------------------
  |  |  571|  4.89k|#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2667|  4.89k|#define _G_TYPE_IGC(ip, gt, ct)         ((ct*) (((GTypeInstance*) ip)->g_class))
  |  |  ------------------
  ------------------
fu-input-stream.c:FU_INPUT_STREAM:
 1715|  2.01k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|  2.01k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  2.01k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  2.01k|#  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|  4.69k|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1612|  4.69k|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|  4.69k|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|  4.69k|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-memory-input-stream.c:FU_INPUT_STREAM:
 1715|     91|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|     91|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|     91|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|     91|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-partial-input-stream.c:fu_partial_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-partial-input-stream.c:fu_partial_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-partial-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-partial-input-stream.c:FU_PARTIAL_INPUT_STREAM:
 1611|    196|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1612|    196|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|    196|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|    196|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-partial-input-stream.c:FU_IS_INPUT_STREAM:
 1719|      6|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1720|      6|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|      6|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|      6|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|      6|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|      6|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|      6|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 6]
  |  |  |  |  ------------------
  |  |  |  | 2674|      6|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|      6|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 6, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 0, False: 6]
  |  |  |  |  ------------------
  |  |  |  | 2676|      6|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|      0|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|      6|  else \
  |  |  |  | 2678|      6|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|      6|  __r; \
  |  |  |  | 2680|      6|}))
  |  |  ------------------
  ------------------
fu-partial-input-stream.c:FU_INPUT_STREAM:
 1715|      6|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|      6|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|      6|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|      6|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-partial-input-stream.c:FU_IS_PARTIAL_INPUT_STREAM:
 1613|    172|  G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) {                           \
 1614|    172|    return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); }                            \
  ------------------
  |  |  541|    172|#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
  |  |  ------------------
  |  |  |  | 2671|    172|#  define _G_TYPE_CIT(ip, gt)             (G_GNUC_EXTENSION ({ \
  |  |  |  |  ------------------
  |  |  |  |  |  |   62|    172|#define G_GNUC_EXTENSION __extension__
  |  |  |  |  ------------------
  |  |  |  | 2672|    172|  GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \
  |  |  |  | 2673|    172|  if (!__inst) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2673:7): [True: 0, False: 172]
  |  |  |  |  ------------------
  |  |  |  | 2674|    172|    __r = FALSE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  925|      0|#define	FALSE	(0)
  |  |  |  |  ------------------
  |  |  |  | 2675|    172|  else if (__inst->g_class && __inst->g_class->g_type == __t) \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (2675:12): [True: 172, False: 0]
  |  |  |  |  |  Branch (2675:31): [True: 172, False: 0]
  |  |  |  |  ------------------
  |  |  |  | 2676|    172|    __r = TRUE; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  929|    172|#define	TRUE	(!FALSE)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  925|    172|#define	FALSE	(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  | 2677|    172|  else \
  |  |  |  | 2678|    172|    __r = g_type_check_instance_is_a (__inst, __t); \
  |  |  |  | 2679|    172|  __r; \
  |  |  |  | 2680|    172|}))
  |  |  ------------------
  ------------------
fu-uswid-firmware.c:fu_uswid_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-uswid-firmware.c:fu_uswid_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-uswid-firmware.c:FU_FIRMWARE_CLASS:
 1717|      1|  G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_CLASS (gpointer ptr) {        \
 1718|      1|    return G_TYPE_CHECK_CLASS_CAST (ptr, module_obj_name##_get_type (), ModuleObjName##Class); }         \
  ------------------
  |  |  597|      1|#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2657|      1|#  define _G_TYPE_CCC(cp, gt, ct)       ((ct*) (void *) cp)
  |  |  ------------------
  ------------------
fu-uswid-firmware.c:FU_USWID_FIRMWARE:
 1715|     15|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|     15|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|     15|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|     15|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------
fu-uswid-firmware.c:fu_uswid_firmware_get_instance_private:
 2293|     35|type_name##_get_instance_private (TypeName *self) \
 2294|     35|{ \
 2295|     35|  return (G_STRUCT_MEMBER_P (self, TypeName##_private_offset)); \
  ------------------
  |  |  971|     35|    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
  ------------------
 2296|     35|} \
fu-uswid-firmware.c:FU_FIRMWARE:
 1715|     40|  G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) {                       \
 1716|     40|    return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); }             \
  ------------------
  |  |  528|     40|#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
  |  |  ------------------
  |  |  |  | 2656|     40|#  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
  |  |  ------------------
  ------------------

